Skip to main content



      Home
Home » Eclipse Projects » Rich Client Platform (RCP) » migrate existing 3.x RCP to e4
migrate existing 3.x RCP to e4 [message #886866] Fri, 15 June 2012 14:48 Go to next message
Eclipse UserFriend
Hi,

I have a feature based RCP using the application org.eclipse.ui.ide.workbench and my own product
definition. In this way I could reuse quite a few existing plugins, e.g. Console View, Creating
Projects, Team, Search, etc.
Additional I wrote some plugins in 3.x style.

Now I will further extend the RCP by new features and I came across a few questions.
- Should I migrate from 3.x to e4 before writing new plugins and features? I think the injection
technology is quite useful and I use also ecore based models.
- How to migrate to get the advantages of e4? I know there is a compatibility layer but I read I
cant combine the e4 fragment.e4xmi by using the compatibility layer.
- If possible I would like to leave the existing plugins untouched as much as possible and could get
use of the e4 enhancements by the new features.

any help is appreciated, Martin
Re: migrate existing 3.x RCP to e4 [message #887220 is a reply to message #886866] Sat, 16 June 2012 04:11 Go to previous messageGo to next message
Eclipse UserFriend
The migration question is not trivial and nobody can tell to you, you have to migrate or not.
You have to evaluate the whole new e4 features and decide after than, if this features are usefull for you or not.
This process is not easy but necessary.

Yes, e4 have a compatibility layer which is downward compatible and it's supports the whole 3.x API.
So you can use the old 3.X Code (untouched) and write your own new code based on e4 (features). That's very nice!
Re: migrate existing 3.x RCP to e4 [message #888446 is a reply to message #887220] Mon, 18 June 2012 02:09 Go to previous messageGo to next message
Eclipse UserFriend
Thanks Tim!
If I understand correct what I read before I have to migrate the RCP feature resp. product
definition to e4 and can use the existing 3.x features as is. New 4.x features can use the
feature.e4xmi to extend the UI.
Is this right?

Right now I use the application "org.eclipse.ui.ide.workbench" in the product definition. Do I need
to change this to "org.eclipse.e4.ui.workbench.swt.E4Application" or to another application?

My main target is to leave my existing features untouched and to make use of the UI extension via
the feature.e4xmi in new features.


Tim A. wrote, On 16.06.2012 10:11:
> The migration question is not trivial and nobody can tell to you, you have to migrate or not. You
> have to evaluate the whole new e4 features and decide after than, if this features are usefull for
> you or not. This process is not easy but necessary.
> Yes, e4 have a compatibility layer which is downward compatible and it's supports the whole 3.x API.
> So you can use the old 3.X Code (untouched) and write your own new code based on e4 (features).
> That's very nice!
Re: migrate existing 3.x RCP to e4 [message #888764 is a reply to message #888446] Mon, 18 June 2012 11:41 Go to previous messageGo to next message
Eclipse UserFriend
To use any of the 3.x APIs you will be using the 4.2 Workbench (3.x APIs implemented on top of Eclipse 4). A 3.x RCP app will run on top of the 4.2 workbench, with some functionality not yet supported.

You could then access some of the Eclipse4 APIs (the bundles will all be there) but ... we're using the 4.2 Workbench to drive that instance of Eclipse4, and you'll have to experiment to see what parts of Eclipse4 work for you, and what parts don't.

PW
Re: migrate existing 3.x RCP to e4 [message #889759 is a reply to message #888764] Tue, 19 June 2012 10:37 Go to previous messageGo to next message
Eclipse UserFriend
In the mean time I am able to run the existing 3.x RCP on top of e4. I am even able to add a new
menu and menu items. For the additional menu I created a new feature and plugin project. The plugin
project contains the fragment.e4xmi. The e4xmi defines a model fragment using the element ID
"org.eclipse.e4.legacy.ide.application" and feature name "menuContributions".
Unfortunately I have problems with my 3.x Perspective and would like to port the perspective
definition to e4. How can I do this? I can not find a suitable element ID and feature name for the
model fragment in the fragment.e4xmi.

I check with the live editor and see the perspective stack does not have an ID. So I see no way to
reference to the perspective stack to add a new perspective.

any hints would be appreciated, Martin

Paul Webster wrote, On 18.06.2012 17:41:
> To use any of the 3.x APIs you will be using the 4.2 Workbench (3.x APIs implemented on top of
> Eclipse 4). A 3.x RCP app will run on top of the 4.2 workbench, with some functionality not yet
> supported.
>
> You could then access some of the Eclipse4 APIs (the bundles will all be there) but ... we're using
> the 4.2 Workbench to drive that instance of Eclipse4, and you'll have to experiment to see what
> parts of Eclipse4 work for you, and what parts don't.
>
> PW
>
Re: migrate existing 3.x RCP to e4 [message #890204 is a reply to message #889759] Thu, 21 June 2012 08:49 Go to previous messageGo to next message
Eclipse UserFriend
If memory serves me, the perspective code first looks to see if there's a snippet available (see MA00lication#snippets) and makes a copy of that. Otherwise it checks the perspective definitions. This is undocumented and may change, so beware.
Re: migrate existing 3.x RCP to e4 [message #890220 is a reply to message #890204] Thu, 21 June 2012 09:51 Go to previous message
Eclipse UserFriend
Yes you are right is below Application#snipped.
Here an example:

<?xml version="1.0" encoding="ASCII"?>
<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced"
xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic"
xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmi:id="_y6D_YLoOEeGpCLi1m273mw">
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_18RMILoOEeGpCLi1m273mw"
featurename="snippets" parentElementId="org.eclipse.e4.legacy.ide.application">
<elements xsi:type="advanced:Perspective" xmi:id="_qcuxQLoPEeGpCLi1m273mw"
elementId="dummy.ui.perspective.2" label="OPN 2 Perspective">
<children xsi:type="basic:PartSashContainer" xmi:id="_zrWc8LoPEeGpCLi1m273mw"
elementId="dummy.ui.partsashcontainer.up-down">
<children xsi:type="basic:PartSashContainer" xmi:id="_5BJc8LoPEeGpCLi1m273mw"
elementId="de.bahntechnik.dd.opn.ui.partsashcontainer.up-down.left-editor" horizontal="true">
<children xsi:type="basic:PartStack" xmi:id="_7eAg8LoPEeGpCLi1m273mw" elementId="topLeft">
<children xsi:type="advanced:Placeholder" xmi:id="_FPMuMLoQEeGpCLi1m273mw"
elementId="org.eclipse.ui.navigator.ProjectExplorer"/>
</children>
<children xsi:type="basic:PartStack" xmi:id="_4lqAYLunEeGB2NLRSh_v_g" elementId="topRight">
<children xsi:type="advanced:Placeholder" xmi:id="_JpVXMLoQEeGpCLi1m273mw"
elementId="org.eclipse.ui.views.BookmarkView"/>
</children>
</children>
</children>
</elements>
</fragments>
</fragment:ModelFragments>


Brian de Alwis wrote, On 21.06.2012 14:49:
> If memory serves me, the perspective code first looks to see if there's a snippet available (see
> MA00lication#snippets) and makes a copy of that. Otherwise it checks the perspective definitions.
> This is undocumented and may change, so beware.
Previous Topic:Using third-party jars bundled inside another plugin.
Next Topic:Red exclamation in PDE project icon
Goto Forum:
  


Current Time: Mon Apr 28 16:26:25 EDT 2025

Powered by FUDForum. Page generated in 0.02986 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top