Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » Xtext 2.4 referencing UML
Xtext 2.4 referencing UML [message #1060115] Thu, 23 May 2013 03:44 Go to next message
Marc Z is currently offline 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 Go to previous message
Ed Willink is currently offline 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
Previous Topic:How to get ecore and genmodel?
Next Topic:Error resolving cross references on resource
Goto Forum:
  


Current Time: Tue May 28 17:13:44 EDT 2013

Powered by FUDForum. Page generated in 0.01526 seconds