Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse 4 » Application Model Evolution
Application Model Evolution [message #1404093] Tue, 29 July 2014 15:10 Go to next message
Roman Flückiger is currently offline Roman FlückigerFriend
Messages: 6
Registered: March 2013
Junior Member
I'm currently wondering about the state of "model evolution" in Eclipse 4.

It seems that currently one has to choose between the following two options:

a) Use -clearPersistedState and loose all the changes users have made to the model
b) Don't use -clearPersistedState and never see stuff that was newly added to the model by fragments etc (e.g. new application release).

Both options are undesirable.

I'd say, user's want to keep the changes they made, if possible, while still, for example, get the new show view menu item that was added to the model with a new release.

I'm aware, that this affects many different types of contributions (parts, commands, descriptors, menu items, etc.) and maybe not all of them can easily be "merged" into the persisted model. Maybe some need special handling.

But, the fact, that new stuff needs to be merged into the persisted model (or the other way round), seems very obvious to me. However, I find it hard to get information about this topic in the forums or anywhere.

I stumbled over the following discussion along the way, which sounds very promising - is this the main "thread" about this topic? - https://bugs.eclipse.org/bugs/show_bug.cgi?id=389663

Therefore - finally - my question: Where can I find information about this topic? Is there a place where the current state is discussed, or why it isn't discussed... What is the current best practice? Should application developers implement the merge process themselves somehow?

Thanks for any help!

Regards,
Roman
Re: Application Model Evolution [message #1404161 is a reply to message #1404093] Wed, 30 July 2014 07:05 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6599
Registered: July 2009
Senior Member
In Luna we added "notexits" which should act exactly as you describe,
another option I developed is that you only clear the persisted model on
request.

See
http://tomsondev.bestsolution.at/2014/06/17/restarting-an-e4-application-with-the-intial-workbench-e4xmi/
- the JavaFX workbench implementation has this feature on board by default.

The only other option you have which gives you super power is to make
the contributions not through fragments but processors which gives you
extra super power ;-)

Tom

On 29.07.14 17:10, Roman Flückiger wrote:
> I'm currently wondering about the state of "model evolution" in Eclipse 4.
>
> It seems that currently one has to choose between the following two
> options:
>
> a) Use -clearPersistedState and loose all the changes users have made to
> the model
> b) Don't use -clearPersistedState and never see stuff that was newly
> added to the model by fragments etc (e.g. new application release).
>
> Both options are undesirable.
>
> I'd say, user's want to keep the changes they made, if possible, while
> still, for example, get the new show view menu item that was added to
> the model with a new release.
>
> I'm aware, that this affects many different types of contributions
> (parts, commands, descriptors, menu items, etc.) and maybe not all of
> them can easily be "merged" into the persisted model. Maybe some need
> special handling.
>
> But, the fact, that new stuff needs to be merged into the persisted
> model (or the other way round), seems very obvious to me. However, I
> find it hard to get information about this topic in the forums or anywhere.
>
> I stumbled over the following discussion along the way, which sounds
> very promising - is this the main "thread" about this topic? -
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=389663
>
> Therefore - finally - my question: Where can I find information about
> this topic? Is there a place where the current state is discussed, or
> why it isn't discussed... What is the current best practice? Should
> application developers implement the merge process themselves somehow?
>
> Thanks for any help!
>
> Regards,
> Roman
>
Re: Application Model Evolution [message #1404320 is a reply to message #1404093] Thu, 31 July 2014 08:54 Go to previous message
Roman Flückiger is currently offline Roman FlückigerFriend
Messages: 6
Registered: March 2013
Junior Member
Thanks for your answer, Tom. The new options really open a world of possibilities.

I think we need to figure out which contributions types need which flag (e.g. notexists, always, initial) set to achieve our goal, which I'd call a "merge" between persisted state and calculated model. Maybe a good practice would be to split model fragments by type from the start. Meaning, all descriptors are in a fragment that can then be added using the "always" flag, opposed to a fragment with all parts that would be added with "notexists". If there are sensible defaults for all the contributions types, we could set the flag "behind" the scene somehow, so the developers need not to worry about them...

Or e4 could choose sensible defaults by itself if no type is specified. This way the developers could still override it on demand, but still get a decent standard behaviour. Are there any discussions ongoing in this direction?

Regards,
Roman

PS.: I'm really looking forward to those extra super powers you mentioned Wink
Previous Topic:CSS Problems RCP
Next Topic:Extending the Application Model from fragment project
Goto Forum:
  


Current Time: Wed Jun 16 11:34:14 GMT 2021

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

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

Back to the top