Home » Modeling » TMF (Xtext) » GenModel when using imported ecore model
GenModel when using imported ecore model [message #813415] |
Mon, 05 March 2012 08:34 |
Stefano Zanotti Messages: 22 Registered: March 2012 |
Junior Member |
|
|
I have a model I import in my grammar. It looks like the import is working fine.
But when I run the workflow, it raises a "Could not find a GenModel for EPackage" error.
My model is already there, I don't need to create one, so why should it be generated?
(I also tried to comment out the fragment = ecore.EcoreGeneratorFragment part in the workflow, but nothing changed).
I tried to add a "generate" statement to my grammar, but it is underlined in red because "Generated package ... may not be empty" (I think this is because nothing has to be generated, and that's just what I want, since I already have my model).
The trace is
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'E:\Workspaces\Eclipse\Helios [Xtext]'
2609 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning E:\Workspaces\Eclipse\Helios [Xtext]\org.asmeta.asmeta_editor\..\org.asmeta.asmeta_editor\src-gen
2625 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning E:\Workspaces\Eclipse\Helios [Xtext]\org.asmeta.asmeta_editor\..\org.asmeta.asmeta_editor.ui\src-gen
2750 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for org.xtext.asmeta_editor.AsmetaE with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, JavaValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, JavaBasedContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, RefactorElementNameFragment, CompareFragment
9312 [main] ERROR enerator.CompositeGeneratorFragment - Could not find a GenModel for EPackage 'h_t_t_p://org.asmeta/asmm#ASMETA' from platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all_flattened.ecore
If the missing GenModel has been generated via EcoreGeneratorFragment make sure to run it first in the workflow.
If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String)
java.lang.RuntimeException: Could not find a GenModel for EPackage 'h_t_t_p://org.asmeta/asmm#ASMETA' from platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all_flattened.ecore
If the missing GenModel has been generated via EcoreGeneratorFragment make sure to run it first in the workflow.
If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String)
at org.eclipse.xtext.generator.GenModelAccess.getGenPackage(GenModelAccess.java:88)
at org.eclipse.xtext.generator.serializer.JavaEMFFile.importedGenTypeName(JavaEMFFile.java:76)
at org.eclipse.xtext.generator.serializer.JavaEMFFile.importedGenTypeLiteral(JavaEMFFile.java:50)
at org.eclipse.xtext.generator.serializer.AbstractSemanticSequencer.genMethodCreateSequence(AbstractSemanticSequencer.java:474)
at org.eclipse.xtext.generator.serializer.AbstractSemanticSequencer.getFileContents(AbstractSemanticSequencer.java:420)
at org.eclipse.xtext.generator.serializer.SerializerFragment.generate(SerializerFragment.java:122)
at org.eclipse.xtext.generator.Xtend2GeneratorFragment.generate(Xtend2GeneratorFragment.java:42)
at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:81)
at org.eclipse.xtext.generator.LanguageConfig.generate(LanguageConfig.java:69)
at org.eclipse.xtext.generator.Generator.generate(Generator.java:351)
at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:125)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:97)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:73)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:64)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:55)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
|
|
| |
Re: GenModel when using imported ecore model [message #814432 is a reply to message #813757] |
Tue, 06 March 2012 12:53 |
Stefano Zanotti Messages: 22 Registered: March 2012 |
Junior Member |
|
|
Thanks, Christian.
Now I have another problem: the genmodel is fine (I think) but I don't know where to put the Java classes I generated from the genmodel, in order for Xtext to use them.
Should I "register" them somewhere in the manifest, workflow,...?
Currently, these classes reside in a dedicated project (it would be nice to leave them in such a project, if possible); I tried to copy them inside my Xtext project, with no results.
The beginning of the trace is (after http there's actually a ':', but I can't post links yet):
1203 [main] ERROR ipse.xtext.generator.LanguageConfig - [XtextLinkingDiagnostic: null:6 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#PrimitiveTypes'., XtextLinkingDiagnostic: null:7 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#Structure'., XtextLinkingDiagnostic: null:8 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#Definitions'., XtextLinkingDiagnostic: null:9 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#Domains'., XtextLinkingDiagnostic: null:10 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#BasicTransitionRules'., XtextLinkingDiagnostic: null:11 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#DerivedTransitionRules'., XtextLinkingDiagnostic: null:12 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#TurboTransitionRules'., XtextLinkingDiagnostic: null:13 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#BasicTerms'., XtextLinkingDiagnostic: null:14 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#Expressions'., XtextLinkingDiagnostic: null:15 Couldn't resolve reference to EPackage 'http.//org.asmeta/asmm#FurtherTerms'., XtextLinkingDiagnostic: null:25 Couldn't resolve reference to AbstractMetamodelDeclaration 'asmeta'., XtextLinkingDiagnostic: null:25 Cannot find meta model for type 'Asm',
...............
1219 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - Problems instantiating module org.asmeta.asmeta_editor.GenerateAsmetaE: java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: Problems instantiating module org.asmeta.asmeta_editor.GenerateAsmetaE: java.lang.reflect.InvocationTargetException
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:90)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:73)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:64)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:55)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
..............
|
|
| |
Re: GenModel when using imported ecore model [message #815072 is a reply to message #814669] |
Wed, 07 March 2012 07:37 |
Stefano Zanotti Messages: 22 Registered: March 2012 |
Junior Member |
|
|
I registered my EPackages, and now the workflow executes ok. But then, inside the new Eclipse process containing the generated editor, when I try to open a file, Eclipse freezes.
I have my 'org.asmeta.asmeta_editor' Xtext project.
Here, in source folder 'src-model' I have the classes generated from the genmodel (no dedicated project by now, I think it's causing me more problems). These classes are inside packages 'asmeta.primitivetypes', 'asmeta.definitions', etc. The model is inside the 'model' folder.
There's no need to edit my manifest if I keep everything in the same project, right?
About registering the EPackage's, my workflow now contains
bean = StandaloneSetup {
scanClassPath = true
platformUri = "${runtimeProject}/.."
registerGenModelFile = "platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel"
registerGeneratedEPackage = "asmeta.primitivetypes.PrimitivetypesPackage"
registerGeneratedEPackage = "asmeta.structure.StructurePackage"
registerGeneratedEPackage = "asmeta.definitions.DefinitionsPackage"
registerGeneratedEPackage = "asmeta.definitions.domains.DomainsPackage"
registerGeneratedEPackage = "asmeta.transitionrules.basictransitionrules.BasictransitionrulesPackage"
registerGeneratedEPackage = "asmeta.transitionrules.turbotransitionrules.TurbotransitionrulesPackage"
registerGeneratedEPackage = "asmeta.transitionrules.derivedtransitionrules.DerivedtransitionrulesPackage"
registerGeneratedEPackage = "asmeta.terms.basicterms.BasictermsPackage"
registerGeneratedEPackage = "asmeta.terms.basicterms.expressions.ExpressionsPackage"
registerGeneratedEPackage = "asmeta.terms.furtherterms.FurthertermsPackage"
}
In case it's needed, my grammar starts with: (no 'generate' statements)
grammar org.asmeta.asmeta_editor.AsmetaE
import "http.//www.eclipse.org/emf/2002/Ecore" as ecore
import "http.//org.asmeta/asmm#PrimitiveTypes" as asmeta
import "http.//org.asmeta/asmm#Structure" as asmeta
import "http.//org.asmeta/asmm#Definitions" as asmeta
import "http.//org.asmeta/asmm#Domains" as asmeta
import "http.//org.asmeta/asmm#BasicTransitionRules" as asmeta
import "http.//org.asmeta/asmm#DerivedTransitionRules" as asmeta
import "http.//org.asmeta/asmm#TurboTransitionRules" as asmeta
import "http.//org.asmeta/asmm#BasicTerms" as asmeta
import "http.//org.asmeta/asmm#Expressions" as asmeta
import "http.//org.asmeta/asmm#FurtherTerms" as asmeta
Running the workflow now seems ok:
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'E:\Workspaces\Eclipse\Indigo+Xtext [Xtext]'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#ASMETA' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#PrimitiveTypes' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#Structure' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#Definitions' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#Domains' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#TransitionRules' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#BasicTransitionRules' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#DerivedTransitionRules' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#TurboTransitionRules' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#Terms' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#BasicTerms' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#Expressions' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
578 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http.//org.asmeta/asmm#FurtherTerms' from 'platform:/resource/org.asmeta.asmeta_editor/model/AsmM_all.genmodel'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.primitivetypes.PrimitivetypesPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.structure.StructurePackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.definitions.DefinitionsPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.definitions.domains.DomainsPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.transitionrules.basictransitionrules.BasictransitionrulesPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.transitionrules.turbotransitionrules.TurbotransitionrulesPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.transitionrules.derivedtransitionrules.DerivedtransitionrulesPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.terms.basicterms.BasictermsPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.terms.basicterms.expressions.ExpressionsPackage'
719 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'asmeta.terms.furtherterms.FurthertermsPackage'
1407 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning E:\Workspaces\Eclipse\Indigo+Xtext [Xtext]\org.asmeta.asmeta_editor\..\org.asmeta.asmeta_editor\src-gen
1422 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning E:\Workspaces\Eclipse\Indigo+Xtext [Xtext]\org.asmeta.asmeta_editor\..\org.asmeta.asmeta_editor.ui\src-gen
1563 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for org.asmeta.asmeta_editor.AsmetaE with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, JavaValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, JavaBasedContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, SimpleProjectWizardFragment, RefactorElementNameFragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, CompareFragment
15000 [main] INFO or.validation.JavaValidatorFragment - generating Java-based EValidator API
27938 [main] INFO text.generator.junit.Junit4Fragment - generating Junit4 Test support classes
27969 [main] INFO tWizard.SimpleProjectWizardFragment - A new template org::asmeta::asmeta_editor::ui::wizard::AsmetaENewProject has been generated into ../org.asmeta.asmeta_editor.ui/src.
27969 [main] INFO tWizard.SimpleProjectWizardFragment - Make sure to enable the Xtend/Xpand nature and JavaBeans metamodel to edit this template.
27969 [main] INFO text.generator.junit.Junit4Fragment - generating Compare Framework infrastructure
28094 [main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.
But then the new Eclipse process freezes, when I try to open a file with my generated editor.
I really don't know what may be the cause, as I get no errors. Maybe I forgot to register something or did it the wrong way, causing a silent fail of the generation process?
Thank you in advance
|
|
| |
Re: GenModel when using imported ecore model [message #815518 is a reply to message #815488] |
Wed, 07 March 2012 19:19 |
Stefano Zanotti Messages: 22 Registered: March 2012 |
Junior Member |
|
|
I did this to generate java classes from the model:
(using Indigo+Xtext 2.2.1 distribution from xtext.itemis.com)
open my genmodel in the editor
right-click on the root
'Generate Model Code'
This generates the classes, and they seem to be correct (it also generates XXXPackage and XXXFactory classes).
Freezing Eclipse:
I launch a new Eclipse with my newly created plugin (workflow executed with no errors)
I double-click on a file with my dsl's extension
What I get is:
The central frame, where Eclipse opens any editor, remains gray
The cursor shows as a hourglass
Eclipse doesn't respond (only the second process, the one with the xtext project is still alive)
It looks like it gets stuck somewhere while loading my editor.
It doesn't show a message like 'Could not open the editor' inside the editor frame (I got that in other circumstances; not in this case).
Furthermore: if I run the workflow on another grammar, same as the original one, only with a generate statement and no import statements, the editor works nice.
Now, if I leave a file open, close eclipse, run the workflow on the original grammar (with imports) and launch eclipse with the new plugin, this second eclipse process freezes on startup (on startup it automatically tries to open the editor for the file that was left open).
In my main eclipse process, on the console, I get no error messages about the second eclipse process.
|
|
| |
Re: GenModel when using imported ecore model [message #815537 is a reply to message #815522] |
Wed, 07 March 2012 19:50 |
Stefano Zanotti Messages: 22 Registered: March 2012 |
Junior Member |
|
|
I run it with
-Dosgi.requiredJavaVersion=1.5 -Xms40m
-XX:MaxPermSize=512m
-Xmx512m
(is this what you meant?)
In the host eclipse the console is completely empty. Neither 'OK' messages.
Running it in debug, I have a dozen threads.
The [main] thread seems to be stuck here
Thread [main] (Suspended)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
SocketInputStream.read(byte[], int, int) line: not available
BufferedInputStream.fill() line: not available [local variables unavailable]
BufferedInputStream.read1(byte[], int, int) line: not available
BufferedInputStream.read(byte[], int, int) line: not available
HttpClient.parseHTTPHeader(MessageHeader, ProgressSource, HttpURLConnection) line: not available
HttpClient.parseHTTP(MessageHeader, ProgressSource, HttpURLConnection) line: not available
HttpURLConnection.getInputStream() line: not available [local variables unavailable]
URIHandlerImpl.createInputStream(URI, Map<?,?>) line: 178
XtextResourceSet$1(ExtensibleURIConverterImpl).createInputStream(URI, Map<?,?>) line: 350
SAXXMIHandler(XMLHandler).resolveEntity(String, String) line: 810
EntityResolverWrapper.resolveEntity(XMLResourceIdentifier) line: not available
XMLEntityManager.resolveEntityAsPerStax(XMLResourceIdentifier) line: not available
XMLDocumentScannerImpl$DTDDriver.dispatch(boolean) line: not available
XMLDocumentScannerImpl$DTDDriver.next() line: not available
XMLDocumentScannerImpl$PrologDriver.next() line: not available
XMLDocumentScannerImpl.next() line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl(SAXParser).parse(InputSource, DefaultHandler) line: not available
XMILoadImpl(XMLLoadImpl).load(XMLResource, InputStream, Map<?,?>) line: 181
XMIResourceImpl(XMLResourceImpl).doLoad(InputStream, Map<?,?>) line: 242
XMIResourceImpl(ResourceImpl).load(InputStream, Map<?,?>) line: 1511
XMIResourceImpl(ResourceImpl).load(Map<?,?>) line: 1290
SynchronizedXtextResourceSet(ResourceSetImpl).demandLoad(Resource) line: 255
SynchronizedXtextResourceSet(ResourceSetImpl).demandLoadHelper(Resource) line: 270
SynchronizedXtextResourceSet(ResourceSetImpl).getResource(URI, boolean) line: 397
SynchronizedXtextResourceSet.getResource(URI, boolean) line: 23
SynchronizedXtextResourceSet(ResourceSetImpl).getEObject(URI, boolean) line: 216
EcoreUtil.resolve(EObject, ResourceSet) line: 203
EcoreUtil.resolve(EObject, EObject) line: 263
TypeRefImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483
TypeRefImpl.getClassifier() line: 122
InternalAsmetaEParser(AbstractInternalAntlrParser).createModelElementForParent(AbstractRule) line: 613
InternalAsmetaEParser.ruleAsm() line: 407
InternalAsmetaEParser.entryRuleAsm() line: 220
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
InternalAsmetaEParser(AbstractInternalAntlrParser).parse(String) line: 528
AsmetaEParser(AbstractAntlrParser).doParse(String, CharStream, NodeModelBuilder, int) line: 102
AsmetaEParser(AbstractAntlrParser).parse(String, CharStream) line: 84
AsmetaEParser(AbstractAntlrParser).doParse(Reader) line: 62
AsmetaEParser(AbstractParser).parse(Reader) line: 27
LazyLinkingResource(XtextResource).doLoad(InputStream, Map<?,?>) line: 156
LazyLinkingResource.doLoad(InputStream, Map<?,?>) line: 70
LazyLinkingResource(ResourceImpl).load(InputStream, Map<?,?>) line: 1511
XtextDocumentProvider.loadResource(XtextResource, String, String) line: 142
XtextDocumentProvider.setDocumentContent(IDocument, IEditorInput, String) line: 119
XtextDocumentProvider(StorageDocumentProvider).createDocument(Object) line: 229
XtextDocumentProvider.createDocument(Object) line: 88
XtextDocumentProvider(FileDocumentProvider).createElementInfo(Object) line: 735
XtextDocumentProvider.createElementInfo(Object) line: 153
XtextDocumentProvider(AbstractDocumentProvider).connect(Object) line: 400
XtextEditor(AbstractTextEditor).doSetInput(IEditorInput) line: 4213
XtextEditor(StatusTextEditor).doSetInput(IEditorInput) line: 237
XtextEditor(AbstractDecoratedTextEditor).doSetInput(IEditorInput) line: 1451
XtextEditor(TextEditor).doSetInput(IEditorInput) line: 169
XtextEditor.doSetInput(IEditorInput) line: 215
AbstractTextEditor$19.run(IProgressMonitor) line: 3200
ModalContext.runInCurrentThread(IRunnableWithProgress, IProgressMonitor) line: 464
ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor, Display) line: 372
ApplicationWindow$1.run() line: 759
BusyIndicator.showWhile(Display, Runnable) line: 70
WorkbenchWindow(ApplicationWindow).run(boolean, boolean, IRunnableWithProgress) line: 756
WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress) line: 2642
XtextEditor(AbstractTextEditor).internalInit(IWorkbenchWindow, IEditorSite, IEditorInput) line: 3218
XtextEditor(AbstractTextEditor).init(IEditorSite, IEditorInput) line: 3245
XtextEditor.init(IEditorSite, IEditorInput) line: 236
EditorManager.createSite(IEditorReference, IEditorPart, EditorDescriptor, IEditorInput) line: 828
EditorReference.createPartHelper() line: 647
EditorReference.createPart() line: 465
EditorReference(WorkbenchPartReference).getPart(boolean) line: 595
EditorPane(PartPane).setVisible(boolean) line: 313
PresentablePart.setVisible(boolean) line: 180
PresentablePartFolder.select(IPresentablePart) line: 270
LeftToRightTabOrder.select(IPresentablePart) line: 65
TabbedStackPresentation.selectPart(IPresentablePart) line: 473
EditorStack(PartStack).refreshPresentationSelection() line: 1245
EditorStack(PartStack).setSelection(LayoutPart) line: 1198
EditorStack(PartStack).showPart(LayoutPart, Object) line: 1597
EditorStack(PartStack).add(LayoutPart, Object) line: 493
EditorStack.add(LayoutPart, Object) line: 103
EditorStack(PartStack).add(LayoutPart) line: 479
EditorStack.add(LayoutPart) line: 112
EditorSashContainer.addEditor(EditorPane, EditorStack) line: 63
EditorAreaHelper.addToLayout(EditorPane, EditorStack) line: 225
EditorAreaHelper.addEditor(EditorReference, String, boolean) line: 213
EditorManager.createEditorTab(EditorReference, String) line: 808
EditorManager.openEditorFromDescriptor(EditorDescriptor, IEditorInput, IMemento) line: 707
EditorManager.openEditor(String, IEditorInput, boolean, IMemento) line: 666
WorkbenchPage.busyOpenEditorBatched(IEditorInput, String, boolean, int, IMemento) line: 2942
WorkbenchPage.busyOpenEditor(IEditorInput, String, boolean, int, IMemento) line: 2850
WorkbenchPage.access$11(WorkbenchPage, IEditorInput, String, boolean, int, IMemento) line: 2842
WorkbenchPage$10.run() line: 2793
BusyIndicator.showWhile(Display, Runnable) line: 70
WorkbenchPage.openEditor(IEditorInput, String, boolean, int, IMemento) line: 2789
WorkbenchPage.openEditor(IEditorInput, String, boolean, int) line: 2773
WorkbenchPage.openEditor(IEditorInput, String, boolean) line: 2764
IDE.openEditor(IWorkbenchPage, IFile, boolean, boolean) line: 651
IDE.openEditor(IWorkbenchPage, IFile, boolean) line: 610
EditorUtility.openInEditor(IFile, boolean) line: 355
EditorUtility.openInEditor(Object, boolean) line: 164
OpenAction.run(Object[]) line: 249
OpenAction.run(IStructuredSelection) line: 228
OpenAction(SelectionDispatchAction).dispatchRun(ISelection) line: 275
OpenAction(SelectionDispatchAction).run() line: 251
PackageExplorerActionGroup.handleOpen(ISelection, boolean) line: 376
PackageExplorerPart$4.open(ISelection, boolean) line: 538
OpenAndLinkWithEditorHelper$InternalListener.open(OpenEvent) line: 48
StructuredViewer$2.run() line: 866
SafeRunner.run(ISafeRunnable) line: 42
JFaceUtil$1.run(ISafeRunnable) line: 49
SafeRunnable.run(ISafeRunnable) line: 175
PackageExplorerPart$PackageExplorerProblemTreeViewer(StructuredViewer).fireOpen(OpenEvent) line: 864
PackageExplorerPart$PackageExplorerProblemTreeViewer(StructuredViewer).handleOpen(SelectionEvent) line: 1152
StructuredViewer$6.handleOpen(SelectionEvent) line: 1256
OpenStrategy.fireOpenEvent(SelectionEvent) line: 275
OpenStrategy.access$2(OpenStrategy, SelectionEvent) line: 269
OpenStrategy$1.handleEvent(Event) line: 309
EventTable.sendEvent(Event) line: 84
Tree(Widget).sendEvent(Event) line: 1053
Display.runDeferredEvents() line: 4165
Display.readAndDispatch() line: 3754
Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2696
Workbench.runUI() line: 2660
Workbench.access$4(Workbench) line: 2494
Workbench$7.run() line: 674
Realm.runWithDefault(Realm, Runnable) line: 332
Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 667
PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149
IDEApplication.start(IApplicationContext) line: 123
EclipseAppHandle.run(Object) line: 196
EclipseAppLauncher.runApplication(Object) line: 110
EclipseAppLauncher.start(Object) line: 79
EclipseStarter.run(Object) line: 344
EclipseStarter.run(String[], Runnable) line: 179
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
Main.invokeFramework(String[], URL[]) line: 622
Main.basicRun(String[]) line: 577
Main.run(String[]) line: 1410
Main.main(String[]) line: 1386
Other threads (workers, dispatchers,...) seems to be all in wait().
|
|
| | |
Re: GenModel when using imported ecore model [message #815557 is a reply to message #815551] |
Wed, 07 March 2012 20:18 |
|
Hi,
i mean the plugin xml of the runtime plugin not the one of the ui plugin.
the genmodelpath you have there is invalid
i simply tried this with the greeting example and here is what works for me.
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
import "http://www.xtext.org/example/mydsl/MyDsl"
Model:
greetings+=Greeting*;
Greeting:
'Hello' name=ID '!';
module org.xtext.example.mydsl.GenerateMyDsl
import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
var grammarURI = "classpath:/org/xtext/example/mydsl/MyDsl.xtext"
var file.extensions = "mydsl"
var projectName = "org.xtext.example.mydsl"
var runtimeProject = "../${projectName}"
Workflow {
bean = StandaloneSetup {
scanClassPath = true
platformUri = "${runtimeProject}/.."
registerGenModelFile="platform:/resource/org.xtext.example.mydsl/model/MyDsl.genmodel"
}
bean = StandaloneSetup {
resourceSet = org.eclipse.xtext.resource.XtextResourceSet : resourceSet {}
registerEcoreFile="platform:/resource/org.xtext.example.mydsl/model/MyDsl.ecore"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = org.eclipse.emf.mwe2.ecore.EcoreGenerator {
genModel = "platform:/resource/org.xtext.example.mydsl/model/MyDsl.genmodel"
srcPath = "src"
}
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
pathTestProject = "${runtimeProject}.tests"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = {
forcedResourceSet = resourceSet
uri = grammarURI
fileExtensions = file.extensions
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment {}
// Serializer 2.0
fragment = serializer.SerializerFragment {}
// the serialization component (1.0)
// fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment {
fileExtensions = file.extensions
}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment {
// options = {
// backtrack = true
// }
}
// java-based API for validation
fragment = validation.JavaValidatorFragment {
composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// scoping and exporting API
// fragment = scoping.ImportURIScopingFragment {}
// fragment = exporting.SimpleNamesFragment {}
// scoping and exporting API
fragment = scoping.ImportNamespacesScopingFragment {}
fragment = exporting.QualifiedNamesFragment {}
fragment = builder.BuilderIntegrationFragment {}
// generator API
fragment = generator.GeneratorFragment {
generateMwe = true
generateJavaMain = true
}
// formatter API
fragment = formatting.FormatterFragment {}
// labeling API
fragment = labeling.LabelProviderFragment {}
// outline API
fragment = outline.OutlineTreeProviderFragment {}
fragment = outline.QuickOutlineFragment {}
// quickfix API
fragment = quickfix.QuickfixProviderFragment {}
// content assist API
fragment = contentAssist.JavaBasedContentAssistFragment {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
// generates junit test support classes into Generator#pathTestProject
fragment = junit.Junit4Fragment {}
// project wizard (optional)
// fragment = projectWizard.SimpleProjectWizardFragment {
// generatorProjectName = "${projectName}"
// modelFileExtension = file.extensions
// }
// provides the necessary bindings for java types integration
fragment = types.TypesGeneratorFragment {}
// generates the required bindings only if the grammar inherits from Xbase
fragment = xbase.XbaseGeneratorFragment {}
// provides a preference page for template proposals
fragment = templates.CodetemplatesGeneratorFragment {}
// rename refactoring
fragment = refactoring.RefactorElementNameFragment {}
// provides a compare view
fragment = compare.CompareFragment {
fileExtensions = file.extensions
}
}
}
}
<plugin>
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri="http://www.xtext.org/example/mydsl/MyDsl"
class="org.xtext.example.mydsl.myDsl.MyDslPackage"
genModel="model/MyDsl.genmodel"/>
</extension>
</plugin>
build.properties
source.. = src/,\
src-gen/,\
xtend-gen/
bin.includes = META-INF/,\
.,\
plugin.xml,\
model/
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
[Updated on: Wed, 07 March 2012 20:18] Report message to a moderator
|
|
| | | | | | |
Goto Forum:
Current Time: Sat Apr 20 01:51:14 GMT 2024
Powered by FUDForum. Page generated in 0.04416 seconds
|