| Xtext 2.4 referencing UML [message #1060115] |
Thu, 23 May 2013 03:44  |
Marc Z Messages: 7 Registered: July 2012 |
Junior Member |
|
|
Hi,
I'm trying the reference UML elements in my DSL usign the following workflow:
Workflow {
bean = StandaloneSetup {
scanClassPath = true
platformUri = "${runtimeProject}/.."
// The following two lines can be removed, if Xbase is not used.
registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
registerGeneratedEPackage = "org.eclipse.emf.ecore.EcorePackage"
registerGenModelFile = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel"
registerGeneratedEPackage = "org.eclipse.uml2.uml.UMLPackage"
registerGenModelFile = "platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel"
registerGeneratedEPackage = "org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage"
registerGenModelFile = "platform:/resource/org.eclipse.emf.codegen.ecore/model/GenModel.genmodel"
registerGeneratedEPackage = "org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage"
registerGenModelFile = "platform:/resource/org.eclipse.uml2.codegen.ecore/model/GenModel.genmodel"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
pathTestProject = "${runtimeProject}.tests"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = auto-inject {
uri = grammarURI
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment auto-inject {}
// generates Java API for the generated EPackages
fragment = ecore.EcoreGeneratorFragment auto-inject {
// referencedGenModels = "
// platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel,
// platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel
// "
}
// the old serialization component
// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
// serializer 2.0
fragment = serializer.SerializerFragment auto-inject {
generateStub = false
}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
// options = {
// backtrack = true
// }
}
// Xtend-based API for validation
fragment = validation.ValidatorFragment auto-inject {
// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// old scoping and exporting API
// fragment = scoping.ImportURIScopingFragment auto-inject {}
// fragment = exporting.SimpleNamesFragment auto-inject {}
// scoping and exporting API
fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
fragment = exporting.QualifiedNamesFragment auto-inject {}
fragment = builder.BuilderIntegrationFragment auto-inject {}
// generator API
fragment = generator.GeneratorFragment auto-inject {}
// formatter API
fragment = formatting.FormatterFragment auto-inject {}
// labeling API
fragment = labeling.LabelProviderFragment auto-inject {}
// outline API
fragment = outline.OutlineTreeProviderFragment auto-inject {}
fragment = outline.QuickOutlineFragment auto-inject {}
// quickfix API
fragment = quickfix.QuickfixProviderFragment auto-inject {}
// content assist API
fragment = contentAssist.ContentAssistFragment auto-inject {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
// generates junit test support classes into Generator#pathTestProject
fragment = junit.Junit4Fragment auto-inject {}
// project wizard (optional)
// fragment = projectWizard.SimpleProjectWizardFragment auto-inject {
// generatorProjectName = "${projectName}"
// }
// rename refactoring
fragment = refactoring.RefactorElementNameFragment auto-inject {}
// provides the necessary bindings for java types integration
fragment = types.TypesGeneratorFragment auto-inject {}
// generates the required bindings only if the grammar inherits from Xbase
fragment = xbase.XbaseGeneratorFragment auto-inject {}
// provides a preference page for template proposals
fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
// provides a compare view
fragment = compare.CompareFragment auto-inject {}
}
}
}
But running the workflow always results in the following error:
Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri '.../uml2/2.2.0/GenModel' not found. (platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel, 13, 32)
Dows anyone know how to fix this error?
Thx Marc
|
|
|
| Re: Xtext 2.4 referencing UML [message #1060249 is a reply to message #1060115] |
Thu, 23 May 2013 12:57  |
Ed Willink Messages: 3191 Registered: July 2009 |
Senior Member |
|
|
Hi
Have a look at
http://git.eclipse.org/c/mdt/org.eclipse.ocl.git/tree/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/utilities/UMLGenModelSetup.java.
Regards
Ed Willink
On 23/05/2013 08:44, Marc Z wrote:
> Hi,
>
>
> I'm trying the reference UML elements in my DSL usign the following
> workflow:
>
>
> Workflow {
> bean = StandaloneSetup {
> scanClassPath = true
> platformUri = "${runtimeProject}/.."
> // The following two lines can be removed, if Xbase is not used.
> registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
> registerGenModelFile =
> "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
> registerGeneratedEPackage = "org.eclipse.emf.ecore.EcorePackage"
> registerGenModelFile =
> "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel"
> registerGeneratedEPackage = "org.eclipse.uml2.uml.UMLPackage"
> registerGenModelFile =
> "platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel"
> registerGeneratedEPackage =
> "org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage"
> registerGenModelFile =
> "platform:/resource/org.eclipse.emf.codegen.ecore/model/GenModel.genmodel"
> registerGeneratedEPackage =
> "org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage"
> registerGenModelFile =
> "platform:/resource/org.eclipse.uml2.codegen.ecore/model/GenModel.genmodel"
> }
> component = DirectoryCleaner {
> directory = "${runtimeProject}/src-gen"
> }
> component = DirectoryCleaner {
> directory = "${runtimeProject}.ui/src-gen"
> }
> component = Generator {
> pathRtProject = runtimeProject
> pathUiProject = "${runtimeProject}.ui"
> pathTestProject = "${runtimeProject}.tests"
> projectNameRt = projectName
> projectNameUi = "${projectName}.ui"
> language = auto-inject {
> uri = grammarURI
> // Java API to access grammar elements (required by
> several other fragments)
> fragment = grammarAccess.GrammarAccessFragment auto-inject {}
> // generates Java API for the generated EPackages
> fragment = ecore.EcoreGeneratorFragment auto-inject {
> // referencedGenModels = "
> //
> platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel,
> //
> platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel
> // "
> }
> // the old serialization component
> // fragment =
> parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
> // serializer 2.0
> fragment = serializer.SerializerFragment auto-inject {
> generateStub = false
> }
> // a custom ResourceFactory for use with EMF
> fragment = resourceFactory.ResourceFactoryFragment
> auto-inject {}
> // The antlr parser generator fragment.
> fragment = parser.antlr.XtextAntlrGeneratorFragment
> auto-inject {
> // options = {
> // backtrack = true
> // }
> }
> // Xtend-based API for validation
> fragment = validation.ValidatorFragment auto-inject {
> // composedCheck =
> "org.eclipse.xtext.validation.ImportUriValidator"
> // composedCheck =
> "org.eclipse.xtext.validation.NamesAreUniqueValidator"
> }
> // old scoping and exporting API
> // fragment = scoping.ImportURIScopingFragment auto-inject {}
> // fragment = exporting.SimpleNamesFragment auto-inject {}
> // scoping and exporting API
> fragment = scoping.ImportNamespacesScopingFragment
> auto-inject {}
> fragment = exporting.QualifiedNamesFragment auto-inject {}
> fragment = builder.BuilderIntegrationFragment auto-inject {}
> // generator API
> fragment = generator.GeneratorFragment auto-inject {}
> // formatter API
> fragment = formatting.FormatterFragment auto-inject {}
> // labeling API
> fragment = labeling.LabelProviderFragment auto-inject {}
> // outline API
> fragment = outline.OutlineTreeProviderFragment auto-inject {}
> fragment = outline.QuickOutlineFragment auto-inject {}
> // quickfix API
> fragment = quickfix.QuickfixProviderFragment auto-inject {}
> // content assist API
> fragment = contentAssist.ContentAssistFragment auto-inject {}
> // generates a more lightweight Antlr parser and lexer
> tailored for content assist
> fragment = parser.antlr.XtextAntlrUiGeneratorFragment
> auto-inject {}
> // generates junit test support classes into
> Generator#pathTestProject
> fragment = junit.Junit4Fragment auto-inject {}
> // project wizard (optional)
> // fragment = projectWizard.SimpleProjectWizardFragment
> auto-inject {
> // generatorProjectName = "${projectName}"
> // }
> // rename refactoring
> fragment = refactoring.RefactorElementNameFragment
> auto-inject {}
> // provides the necessary bindings for java types
> integration
> fragment = types.TypesGeneratorFragment auto-inject {}
> // generates the required bindings only if the grammar
> inherits from Xbase
> fragment = xbase.XbaseGeneratorFragment auto-inject {}
> // provides a preference page for template proposals
> fragment = templates.CodetemplatesGeneratorFragment
> auto-inject {}
> // provides a compare view
> fragment = compare.CompareFragment auto-inject {}
> }
> }
> }
>
>
> But running the workflow always results in the following error:
> Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package
> with uri '.../uml2/2.2.0/GenModel' not found.
> (platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel, 13, 32)
>
>
> Dows anyone know how to fix this error?
>
>
> Thx Marc
|
|
|
Powered by
FUDForum. Page generated in 0.01526 seconds