Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] More info about the project

Hi,

On Mon, Aug 2, 2010 at 23:48, Tom Schindl <tom.schindl@xxxxxxxxxxxxxxx> wrote:
> I proposed a talk for Eclipse Summit Europe about "SingleSourcing for
> Eclipse 4.x and Eclipse 3.x" and there's already an example available
> showing how this is done - I'm talking about my Formbased-ModelEditor
> who is written using the 4.0 Programing Model but runs ALSO in an
> Eclipse 3.x environment through the so called Forward Compat Layer.
>
> So if I'd have today to make the choice I'd go for the following
> bundle/project-structure:
>
> * org.myplugin: Only has depdendencies on core-bundles and equinox and
>                SWT/JFace. Components in there are POJOs and probably
>                uses DI-stuff from e4
>
> * org.myplugin.3x: Integrates the bundles into the Eclipse 3.x world

I asked a similar question on the forums, but they are unavailable at
the moment and I didn't get to read the answers. I'll write down the
way I understand the transition process for an existing code base,
please correct any misunderstandings.

* Start with UI plugin, plugin.ui, which is 3x based (the non-UI
plugins are unaffected by this)
* Rename it to plugin.ui.3x. Add a dependency to the forward
compatibility layer (FCL) (see
http://tomsondev.bestsolution.at/2010/06/08/e4-a-forward-compat-layer/).
This means that your update site must reference the e4 one, so that p2
can install the needed e4 bundles from there.
* Add an empty plugin.ui that depends on eclipse core bundles,
SWT/JFace and e4 DI (and your own core plugins, obviously).
* Choose a view and e4-ify it by using the FCL The resulting POJO will
reside in plugin.ui, while the view will remain in plugin.ui.3x. Keep
in mind that for the time being the compatibility layer is work in
progress, not everything can be moved to the POJO yet.
* Repeat for other views and editors. (I think this is about all that
works at the moment)
* As services from the "20 things" get implemented in e4 and get
supported in the FCL, they can also be moved from plugin.ui.3x to
plugin.ui. This might add more e4 bundles as dependencies for
plugin.ui.

* (later) In order to be able to run natively on 4x and to use the
modeling tools, create a plugin.ui.4x plugin where you can add model
fragments to define views/editors/etc the way they should be defined
in 4x. Until this is done, running on 4x will use the backwards
compatibility layer.
* (much later) When you don't need to support 3x anymore, plugin.ui
and plugin.ui.4x can be merged.

Regarding commands/keybindings/menus -- are they supported by the FCL
yet? Will they be?

Is this close to correct, or did I miss anything important?

best regards,
Vlad


Back to the top