Runtime Configuration

Runtime Configuration

At runtime, you just need the org.eclipse.xtend.typesystem.uml2-1.0.0.jar (or later). You can use the dependency mechanism of Eclipse from the PDE, or copy or reference the respective JAR file directly. It does not matter, you just have to take care that it is on the classpath.

If you have written some Check , Xtend or Xpand files and now want to execute them, you have to provide the right configuration.

You need to configure the UML2 metamodel and a profile metamodel for each profile you used directly. A typical configuration looks like this:

<workflow>
	 <bean class="org.eclipse.xtend.typesystem.uml2.Setup" standardUML2Setup="true" />
	 <component class="org.eclipse.xtend.typesystem.emf.XmiReader">
			...
	 </component>
	 <component class="org.eclipse.xpand2.Generator">
			<metaModel class="org.eclipse.xtend.typesystem.uml2.UML2MetaModel"/>
			<metaModel class="org.eclipse.xtend.typesystem.uml2.profile.ProfileMetaModel">
				 <profile value="myProfile.profile.uml2"/>
			</metaModel>
			...
	 </component>
<workflow>

Note the bean configuration in the second line. It statically configures the XmiReader to use the right factories for *.uml and *.uml2 files. This is very important.

If you are invoking several Xpand components, you should use the id / idRef mechanism:

<workflow>
	 <bean class="org.eclipse.xtend.typesystem.uml2.Setup" standardUML2Setup="true" />
	 <component class="org.eclipse.xtend.typesystem.emf.XmiReader">
			...
	 </component>
		 <component class="org.eclipse.xpand2.Generator">
			<metaModel id="uml"
				 class="org.eclipse.xtend.typesystem.uml2.UML2MetaModel"/>
			<metaModel id="profile" 
				 class="org.eclipse.xtend.typesystem.uml2.profile.ProfileMetaModel">
				 <profile value="myProfile.profile.uml2"/>
			</metaModel>
			...
	 </component>