Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [Edapt] Handling evolution of metamodel with mutliple packages
[Edapt] Handling evolution of metamodel with mutliple packages [message #1414432] |
Sun, 31 August 2014 09:19 |
Cedric Moonen Messages: 274 Registered: August 2009 |
Senior Member |
|
|
Hello,
I'm looking at Edapt as a way to handle evolution of my metamodel. However, my use case is quite complex since my metmodel is made of several packages. Furthermore, this metamodel is used to create models with different top-level elements.
Let me explain in more détails:
- I have libraries files, having a top-level element called "Library" (from a specific Library package). This files are provided with the tool itself, but the user is also able to create it's own using some special editors.
- I have session files, having a top-level element called "Session" (from a specific Session package). This file is defined by the user and references elements contained in Library files (either the ones supplied with the tool or the ones supplied by himself; or both).
What makes things even more complex is that I have one package ("Utilities") which is referenced (with containement references) by both packages. Furthermore, my "Library" package is actually several packages, because there's too much elements there.
From what I saw, Edapt is looking at the nsURI of the package from the top-level element of your file, is that correct ? How can I handle the situation where I use several packages ? Furthermore, I would like to have one migrator for my session files and one migrator for my Library files. How can I handle that ? Would it be advised to split the metamodel in 2 ?
Another option would be to use XSLT but I would prefer Edpat, since it's much easier to use and can handle more complex scenarios.
Any idea ?
Thanks
[Updated on: Sun, 31 August 2014 09:20] Report message to a moderator
|
|
| |
Re: [Edapt] Handling evolution of metamodel with mutliple packages [message #1414959 is a reply to message #1414952] |
Mon, 01 September 2014 18:24 |
Cedric Moonen Messages: 274 Registered: August 2009 |
Senior Member |
|
|
Hi Maximilian,
Thanks for the reply. Actually, this more a question on how to proceed rather than something which doesn't work.
But if I look at your reply, the text which is quoted from my message is truncated. I had an issue while posting my message (bug due to the soltice theme ?) and only a part of my message was posted. I updated the message afterwards but apparently you didn't see the full message. Here is the complete one:
Quote:I'm looking at Edapt as a way to handle evolution of my metamodel. However, my use case is quite complex since my metmodel is made of several packages. Furthermore, this metamodel is used to create models with different top-level elements.
Let me explain in more détails:
- I have libraries files, having a top-level element called "Library" (from a specific Library package). This files are provided with the tool itself, but the user is also able to create it's own using some special editors.
- I have session files, having a top-level element called "Session" (from a specific Session package). This file is defined by the user and references elements contained in Library files (either the ones supplied with the tool or the ones supplied by himself; or both).
What makes things even more complex is that I have one package ("Utilities") which is referenced (with containement references) by both packages. Furthermore, my "Library" package is actually several packages, because there's too much elements there.
From what I saw, Edapt is looking at the nsURI of the package from the top-level element of your file, is that correct ? How can I handle the situation where I use several packages ? Furthermore, I would like to have one migrator for my session files and one migrator for my Library files. How can I handle that ? Would it be advised to split the metamodel in 2 ?
Another option would be to use XSLT but I would prefer Edpat, since it's much easier to use and can handle more complex scenarios.
You say that multiple packages are supported. Suppose that I have the following scenario (based on my example: I modify the "Utility" package. Now when the program starts, I open a Library file but I suppose that I only check whether the nsURI of the "Library" package changed (which is not the case here). So, in this case, I need to also increase the nsURI of my "Library" package ?
How can I have two independant migrators (one for when loading Library files and one when loading session files) ?
|
|
| |
Re: [Edapt] Handling evolution of metamodel with mutliple packages [message #1421548 is a reply to message #1417539] |
Thu, 11 September 2014 14:07 |
Christophe Bouhier Messages: 937 Registered: July 2009 |
Senior Member |
|
|
On 05-09-14 19:11, Maximilian Koegel wrote:
> Hi Cedric,
>
> comments inline...
>
> Cheers,
> Maximilian
>
>> You say that multiple packages are supported. Suppose that I have the
>> following scenario (based on my example: I modify the "Utility" package.
>> Now when the program starts, I open a Library file but I suppose that I
>> only check whether the nsURI of the "Library" package changed (which is
>> not the case here). So, in this case, I need to also increase the nsURI
>> of my "Library" package ?
> Yes this is correct.
>
>> How can I have two independant migrators (one for when loading Library
>> files and one when loading session files) ?
> No you cannot have two independant migrators, for the reasons you
> pointed out.
>
Hi Guys, This sounds like a very reasonable use case.
Perhaps this can be logged as a bug (Feature request). "Migrate model
parts" - considering the sum of all ecore (EPackages and references to
one another) is currently under migration scope, but could be broken in
pieces (With a single migrator). We could do this by walking the
EPackage references, and looking for nsURI changes. (So not only the
root EPackage nsURI).
>
|
|
|
Re: [Edapt] Handling evolution of metamodel with mutliple packages [message #1422154 is a reply to message #1421548] |
Fri, 12 September 2014 11:55 |
Maximilian Koegel Messages: 253 Registered: July 2009 |
Senior Member |
|
|
Hi,
a feature request would be good, a contribution even better ;).
Cheers,
Maximilian
Am 11.09.2014 16:07, schrieb Christophe Bouhier:
> On 05-09-14 19:11, Maximilian Koegel wrote:
>> Hi Cedric,
>>
>> comments inline...
>>
>> Cheers,
>> Maximilian
>>
>>> You say that multiple packages are supported. Suppose that I have the
>>> following scenario (based on my example: I modify the "Utility" package.
>>> Now when the program starts, I open a Library file but I suppose that I
>>> only check whether the nsURI of the "Library" package changed (which is
>>> not the case here). So, in this case, I need to also increase the nsURI
>>> of my "Library" package ?
>> Yes this is correct.
>>
>>> How can I have two independant migrators (one for when loading Library
>>> files and one when loading session files) ?
>> No you cannot have two independant migrators, for the reasons you
>> pointed out.
>>
> Hi Guys, This sounds like a very reasonable use case.
> Perhaps this can be logged as a bug (Feature request). "Migrate model
> parts" - considering the sum of all ecore (EPackages and references to
> one another) is currently under migration scope, but could be broken in
> pieces (With a single migrator). We could do this by walking the
> EPackage references, and looking for nsURI changes. (So not only the
> root EPackage nsURI).
>
>>
>
--
Maximilian Kögel
Get Professional Eclipse Support: http://eclipsesource.com/munich
|
|
|
Goto Forum:
Current Time: Thu Sep 19 11:42:37 GMT 2024
Powered by FUDForum. Page generated in 0.04599 seconds
|