7.11 Workflow

This is the workflow file which is used by default from the maven generator mojo and also from the generated openXmaDsl sample archetype project. The sequence of activities in the default workflow is shown in the following figure

Domain model generator workflow

Figure 7.1. Domain model generator workflow


<workflow>
  <property name="outlet.java" value="src/main/java"/>
  <property name="outlet.test" value="src/test/java"/>
  <property name="outlet.resources" value="src/main/resources"/>
  <property name="outlet.test.resources" value="src/test/resources"/>
  <property name="outlet.generated.java" value="src/generated/java"/>
  <property name="outlet.generated.test" value="src/test/generated/java"/>
  <property name="outlet.generated.resources" value="src/generated/resources"/>
  <property name="outlet.generated.test.resources" value="src/test/generated/resources"/>
  <property name="modelPackage"/>   
  <property name="checkFile"/>   
  <property name="templateAdviceFiles"/>
  <property name="extensionAdviceFiles"/>
  <bean class="org.eclipse.mwe.emf.StandaloneSetup" platformUri="..">
    <registerGeneratedEPackage value="org.openxma.xmadsl.model.XmadslPackage"/>
  </bean>
  <component class="org.openxma.dsl.generator.component.DomainModelParserComponent">
    <modelPackage value="${modelPackage}"/>
    <outputSlot value="domainModel"/>
  </component> 
  <component class="oaw.check.CheckComponent">
    <metaModel id="metamodel" class="org.eclipse.m2t.type.emf.EmfRegistryMetaModel" 
      useSingleGlobalResourceSet="true"/>
      <checkFile value="org/openxma/xmadsl/Checks"/>
      <emfAllChildrenSlot value="domainModel"/>
  </component>
  <if cond="${doCustomChecks}">
    <component class="oaw.check.CheckComponent">
      <metaModel idRef="metamodel"/>
      <checkFile value="${checkFile}"/>
      <emfAllChildrenSlot value="domainModel"/>
    </component>
  </if>
  <component class="org.openxma.dsl.generator.component.DomainModelModifierComponent">
    <modelSlot value="domainModel"/>
  </component> 
  <component id="generator" class="oaw.xpand2.Generator" skipOnErrors="true" fileEncoding="iso-8859-1">
    <metaModel idRef="metamodel"/>
    <outlet path="${outlet.generated.java}" />
    <outlet name="OUTLET_JAVA" path="${outlet.java}" overwrite="false"/>
    <outlet name="OUTLET_TEST" path="${outlet.test}" overwrite="false" />
    <outlet name="OUTLET_RESOURCES" path="${outlet.resources}" overwrite="false" />
    <outlet name="OUTLET_TEST_RESOURCE" path="${outlet.test.resources}" overwrite="false" />
    <outlet name="OUTLET_GENERATED_TEST" path="${outlet.generated.test}" overwrite="true" />
    <outlet name="OUTLET_GENERATED_RESOURCE" path="${outlet.generated.resources}" overwrite="true" />
    <outlet name="OUTLET_GENERATED_RESOURCES" path="${outlet.generated.resources}" overwrite="true" />
    <outlet name="OUTLET_GENERATED_TEST_RESOURCES" path="${outlet.generated.test.resources}" overwrite="true" />
    <expand value="templates::DomainModel::main FOR domainModel"/>
  </component>      
  <component adviceTarget="generator" id="generatorAdvice" class="org.openxma.dsl.generator.component.GeneratorAdviceComponent">
    <advice value="${templateAdviceFiles}" />
    <extensionAdvice value="${extensionAdviceFiles}" />
    <fileEncoding value="iso-8859-1" />
  </component>
</workflow>