Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 370744

Summary: [sashEditor] SashEditor should run on both 3.8 and 4.x
Product: [Modeling] Papyrus Reporter: Cedric Dumoulin <cedric.dumoulin>
Component: CoreAssignee: Cedric Dumoulin <cedric.dumoulin>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: P3 CC: cletavernier
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on:    
Bug Blocks: 366166    

Description Cedric Dumoulin CLA 2012-02-06 12:07:46 EST
The SashEditor can't be updated to compile on both 3.8 and 4.x.
This come from incompatible changes from org.eclipse.ui.part.MultiPageEditorSite. 
This class is duplicated in Papyrus: org.eclipse.papyrus.infra.core.sasheditor.internal.eclipsecopy.MultiPageEditorSite

We can update the code, but in this case, it doesn't compile on Eclipse 4.x.

The proposed temporary solution is to have the 2 implementations for the site:
- org.eclipse.papyrus.infra.core.sasheditor.internal.eclipsecopy.MultiPageEditorSite
   - this one compile under 3.8, but doesn't work on 4.x
   - this later is slightly modified in order to compile on 4.x
- org.eclipse.papyrus.infra.core.sasheditor.internal.eclipsecopy.MultiPageEditorSite4x
   - This one work for 4.x, but doesn't compile under 3.8
   
The Site class is only instanciated from:
- org.eclipse.papyrus.infra.core.sasheditor.internal.EditorPart.createSite(IEditorPart)
   - The code is modified in order to catch the exception when the wrong class is used. In this case, the other implementation is used.
   
   As a consequence, the code :
- only compile under 4.2
- run on both 3.8 and 4.2
Comment 1 Camille Letavernier CLA 2012-04-11 04:45:16 EDT
The problem has been fixed, I close the bug.
Comment 2 Camille Letavernier CLA 2013-01-18 08:55:27 EST
Since SR2 (Eclipse 4.2.2), the MultiPageEditorSite/MultiPageEditorSite4x do not compile anymore. The internal classes have changed.

Internal method signatures are not consistent anymore between 3.X and 4.2.2. In r9812 (Branches/0.9.X), I've changed the MultiPageEditorSite to invoke reflexively the right method, so that the code can compile under 4.2.2 and run under both 3.8.x and 4.2.2.

However, the modifications are not compatible with Eclipse 4.2.0 and Eclipse 4.2.2. This mean we won't be able to run Papyrus 0.9 SR2 on Eclipse 4.2 SR1.

Further changes will be need to either support the whole version range from Eclipse 3.X to Eclipse 4.2.2, or properly inform the users that he needs to update its platform to SR2 when he's using Eclipse 4.X
Comment 3 Camille Letavernier CLA 2013-01-28 07:21:44 EST
r9874, 9877, 9879:

Fixed on 0.9.X. The Core SashEditor now runs on all Juno versions (3.8.X, 4.2.0, 4.2.1, 4.2.2).

The same fix might be applied to 0.10.X if we want to make it compatible with Eclipse 3.8.X (Although we aren't supposed to). Currently, the SashEditor for Papyrus 0.10.X only works on Eclipse 4.2.2 and 4.3.X
Comment 4 Camille Letavernier CLA 2013-01-28 07:22:57 EST
> Fixed on 0.9.X. The Core SashEditor now runs on all Juno versions (3.8.X, 4.2.0, 4.2.1, 4.2.2).

However, the code can only be compiled on 4.2.2 and 4.3.X (Previously, we needed 4.2.0 or 4.2.1 to compile the SashEditor).