| Summary: | New Acceleo module file cannot find my custom ecore metamodel | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] Acceleo | Reporter: | Guido Pennella <guido.pennella> | ||||||
| Component: | Core | Assignee: | Project Inbox <acceleo-inbox> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | major | ||||||||
| Priority: | P3 | CC: | stephane.begaudeau | ||||||
| Version: | 3.1.0 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows XP | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Guido Pennella
Created attachment 203388 [details]
Use of a custom metamodel
Acceleo uses the standard EMF view of the metamodels available and while Acceleo can work with metamodels in the workspace, EMF requires that a metamodel should be in a plugin to appear in this view. I've extended the regular EMF dialog to use our own Package Registry. The custom metamodel will only be visible by selecting the "runtime versions" since "development time version" should only be for metamodel registered as a plugin with their dedicated genmodel. The fix has been contributed on HEAD, it will be available in Acceleo 3.2.0.
A screenshot of the result is available in the attachments. Created attachment 203434 [details]
Screenshot that show that the metamodel cannot be seen
Hi I do always create the metamodel + genmodel and in HELIOS I was able to see it in the "runtime versions". In INDIGO I cannot see my metamodel (see my attachment) in "runtime versions". Since we are using the default EMF view that uses the global EMF package registry, and since this package registry does *not* follow any ".ecore" metamodel from the workspace. It just keep track of ".ecore" metamodels registered thanks to the dedicated extension point with or without their genmodels (dev vs runtime versions). What you saw before was the consequence of a bug from Acceleo since we were putting your metamodel from the workspace in the global EMF package registry. It could create several problems with other Eclipse tools. Starting with Acceleo 3.1.0 we now have our own package registry and we do not *ever* register anything in the global EMF package registry (we can read from it but we only store things in our package registry). That's why it "worked" in Acceleo 3.0.x and why it won't work in Acceleo 3.1.x So what you saw was the consequence of an old bad behavior that could prevent other EMF based tools from working with metamodels registered that way. Now other EMF based tools won't see this metamodel (if they want to work with the metamodels in the workspace, they'll have to do it by themself) but since this view still use the default EMF package registry, you can't see workspace metamodels like in any other regular EMF based tools. For Acceleo 3.2.9, I have created a fix to plug this view to our own package registry so now you'll be able to see all the metamodels that we have registered + those registered using the regular way in the EMF package registry. The fix will be available in Acceleo 3.2.0. If you want to try it right now, you can download a nightly build right here: https://hudson.eclipse.org/hudson/job/m2t-acceleo-master/43/artifact/Acceleo.p2.repository/ It's a nightly build so use it with caution. Closing resolved bugs |