Bug 468073: [codegen] generator ignores exclusions (part 3)

Added test model

Change-Id: Ie3e61a32ac37eb7fd1f159c4d1bb71a88e4dd6eb
Signed-off-by: Ernesto Posse <eposse@gmail.com>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/.project b/models/tests/codepattern/structure/ExclusionsAttributes/.project
new file mode 100644
index 0000000..f95182b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ExclusionsAttributes</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.di b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.notation b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.notation
new file mode 100644
index 0000000..16f2c89
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.notation
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <notation:Diagram xmi:id="_DRSOYPk2EeaxQe9AQrYHAg" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_DRV4wPk2EeaxQe9AQrYHAg" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_DRXt8Pk2EeaxQe9AQrYHAg" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_DRXt8fk2EeaxQe9AQrYHAg" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_DRXt8vk2EeaxQe9AQrYHAg" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_DRXt8_k2EeaxQe9AQrYHAg" type="Class_StructureCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_IlBG8Pk4EeaxQe9AQrYHAg" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_IlBuAPk4EeaxQe9AQrYHAg" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_IlBuAfk4EeaxQe9AQrYHAg" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_IlCVEPk4EeaxQe9AQrYHAg" y="5"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_IlCVEfk4EeaxQe9AQrYHAg" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_IlCVEvk4EeaxQe9AQrYHAg"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IlCVE_k4EeaxQe9AQrYHAg"/>
+          </children>
+          <element xmi:type="uml:Property" href="ExclusionsAttributes.uml#_IjJesPk4EeaxQe9AQrYHAg"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IlBG8fk4EeaxQe9AQrYHAg" x="133" y="65"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_IlSMsPk4EeaxQe9AQrYHAg" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_IlSMsfk4EeaxQe9AQrYHAg"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IlSMs_k4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Property" href="ExclusionsAttributes.uml#_IjJesPk4EeaxQe9AQrYHAg"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IlSMsvk4EeaxQe9AQrYHAg" x="291" y="65"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_JFHjUPk4EeaxQe9AQrYHAg" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_JFIKYPk4EeaxQe9AQrYHAg" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_JFIKYfk4EeaxQe9AQrYHAg" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_JFIKYvk4EeaxQe9AQrYHAg" y="5"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_JFIKY_k4EeaxQe9AQrYHAg" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_JFIKZPk4EeaxQe9AQrYHAg"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JFIKZfk4EeaxQe9AQrYHAg"/>
+          </children>
+          <element xmi:type="uml:Property" href="ExclusionsAttributes.uml#_JFDR4Pk4EeaxQe9AQrYHAg"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JFHjUfk4EeaxQe9AQrYHAg" x="311" y="65"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_JFRUU_k4EeaxQe9AQrYHAg" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_JFRUVPk4EeaxQe9AQrYHAg"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_JFR7YPk4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Property" href="ExclusionsAttributes.uml#_JFDR4Pk4EeaxQe9AQrYHAg"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JFRUVfk4EeaxQe9AQrYHAg" x="437" y="65"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_DRXt9Pk2EeaxQe9AQrYHAg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRXt9fk2EeaxQe9AQrYHAg"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_DMz-EPk2EeaxQe9AQrYHAg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DRV4wfk2EeaxQe9AQrYHAg" x="40" y="40" width="500" height="250"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_IBOdYPk4EeaxQe9AQrYHAg" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_IBOdYfk4EeaxQe9AQrYHAg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IBQ5oPk4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ExclusionsAttributes.uml#_DMz-EPk2EeaxQe9AQrYHAg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBOdYvk4EeaxQe9AQrYHAg" x="240" y="40"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_DRSOYfk2EeaxQe9AQrYHAg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_DRSOYvk2EeaxQe9AQrYHAg"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_DRSOY_k2EeaxQe9AQrYHAg">
+      <owner xmi:type="uml:Class" href="ExclusionsAttributes.uml#_DMz-EPk2EeaxQe9AQrYHAg"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_DMz-EPk2EeaxQe9AQrYHAg"/>
+    <edges xmi:type="notation:Connector" xmi:id="_IBRgsPk4EeaxQe9AQrYHAg" type="StereotypeCommentLink" source="_DRV4wPk2EeaxQe9AQrYHAg" target="_IBOdYPk4EeaxQe9AQrYHAg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_IBRgsfk4EeaxQe9AQrYHAg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IBSHwvk4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ExclusionsAttributes.uml#_DMz-EPk2EeaxQe9AQrYHAg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBRgsvk4EeaxQe9AQrYHAg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBSHwPk4EeaxQe9AQrYHAg"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBSHwfk4EeaxQe9AQrYHAg"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_IlSMtPk4EeaxQe9AQrYHAg" type="StereotypeCommentLink" source="_IlBG8Pk4EeaxQe9AQrYHAg" target="_IlSMsPk4EeaxQe9AQrYHAg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_IlSMtfk4EeaxQe9AQrYHAg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IlSzwvk4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Property" href="ExclusionsAttributes.uml#_IjJesPk4EeaxQe9AQrYHAg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IlSMtvk4EeaxQe9AQrYHAg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IlSzwPk4EeaxQe9AQrYHAg"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IlSzwfk4EeaxQe9AQrYHAg"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_JFR7Yfk4EeaxQe9AQrYHAg" type="StereotypeCommentLink" source="_JFHjUPk4EeaxQe9AQrYHAg" target="_JFRUU_k4EeaxQe9AQrYHAg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_JFR7Yvk4EeaxQe9AQrYHAg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_JFR7Zvk4EeaxQe9AQrYHAg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Property" href="ExclusionsAttributes.uml#_JFDR4Pk4EeaxQe9AQrYHAg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JFR7Y_k4EeaxQe9AQrYHAg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JFR7ZPk4EeaxQe9AQrYHAg"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JFR7Zfk4EeaxQe9AQrYHAg"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_Kp4MkPk2EeaxQe9AQrYHAg" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_Kp4MlPk2EeaxQe9AQrYHAg" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Kp4zoPk2EeaxQe9AQrYHAg" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Kp4zofk2EeaxQe9AQrYHAg" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Kp4zovk2EeaxQe9AQrYHAg" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Kp4zo_k2EeaxQe9AQrYHAg" type="Class_StructureCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Kp4zpPk2EeaxQe9AQrYHAg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kp4zpfk2EeaxQe9AQrYHAg"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Kpi1YPk2EeaxQe9AQrYHAg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kp4Mlfk2EeaxQe9AQrYHAg" x="40" y="40" width="500" height="250"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_Kp4Mkfk2EeaxQe9AQrYHAg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_Kp4Mkvk2EeaxQe9AQrYHAg"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Kp4Mk_k2EeaxQe9AQrYHAg">
+      <owner xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Kpi1YPk2EeaxQe9AQrYHAg"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Kpi1YPk2EeaxQe9AQrYHAg"/>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_LkTNcPk2EeaxQe9AQrYHAg" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_LkT0gPk2EeaxQe9AQrYHAg" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_LkT0gvk2EeaxQe9AQrYHAg" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_LkT0g_k2EeaxQe9AQrYHAg" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_LkT0hPk2EeaxQe9AQrYHAg" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_LkT0hfk2EeaxQe9AQrYHAg" type="Class_StructureCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_LkT0hvk2EeaxQe9AQrYHAg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LkT0h_k2EeaxQe9AQrYHAg"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Li1N0Pk2EeaxQe9AQrYHAg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LkT0gfk2EeaxQe9AQrYHAg" x="40" y="40" width="500" height="250"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_LkTNcfk2EeaxQe9AQrYHAg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_LkTNcvk2EeaxQe9AQrYHAg"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_LkTNc_k2EeaxQe9AQrYHAg">
+      <owner xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Li1N0Pk2EeaxQe9AQrYHAg"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsAttributes.uml#_Li1N0Pk2EeaxQe9AQrYHAg"/>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
new file mode 100644
index 0000000..2f16724
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <uml:Model xmi:id="_4F-zkPk1EeaxQe9AQrYHAg" name="ExclusionsAttributes">
+    <packagedElement xmi:type="uml:Class" xmi:id="_DMz-EPk2EeaxQe9AQrYHAg" name="Top" isActive="true">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_IjJesPk4EeaxQe9AQrYHAg" name="a" visibility="protected" type="_Kpi1YPk2EeaxQe9AQrYHAg" isOrdered="true" aggregation="composite"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_JFDR4Pk4EeaxQe9AQrYHAg" name="b" visibility="protected" type="_Li1N0Pk2EeaxQe9AQrYHAg" isOrdered="true" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_Kpi1YPk2EeaxQe9AQrYHAg" name="A" isActive="true">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_VPUhQPk2EeaxQe9AQrYHAg" name="c1" visibility="public" type="_QnCHgPk2EeaxQe9AQrYHAg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_bBqTUPk2EeaxQe9AQrYHAg" name="c2" visibility="public" type="_QnCHgPk2EeaxQe9AQrYHAg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_cigbAPk2EeaxQe9AQrYHAg" name="c3" visibility="public" type="_QnCHgPk2EeaxQe9AQrYHAg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_Li1N0Pk2EeaxQe9AQrYHAg" name="B" isActive="true">
+      <generalization xmi:type="uml:Generalization" xmi:id="_NXXGgPk2EeaxQe9AQrYHAg" general="_Kpi1YPk2EeaxQe9AQrYHAg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_BGWLYPk3EeaxQe9AQrYHAg" name="c2" visibility="public" type="_R4WlcPk2EeaxQe9AQrYHAg" redefinedProperty="_bBqTUPk2EeaxQe9AQrYHAg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_dFG8UPk3EeaxQe9AQrYHAg" name="c3" visibility="public" redefinedProperty="_cigbAPk2EeaxQe9AQrYHAg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_QnCHgPk2EeaxQe9AQrYHAg" name="C"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_R4WlcPk2EeaxQe9AQrYHAg" name="D"/>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4GtMUPk1EeaxQe9AQrYHAg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4GwPoPk1EeaxQe9AQrYHAg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+    </profileApplication>
+  </uml:Model>
+  <UMLRealTime:Capsule xmi:id="_DRb_YPk2EeaxQe9AQrYHAg" base_Class="_DMz-EPk2EeaxQe9AQrYHAg"/>
+  <UMLRealTime:Capsule xmi:id="_Kp5asPk2EeaxQe9AQrYHAg" base_Class="_Kpi1YPk2EeaxQe9AQrYHAg"/>
+  <UMLRealTime:Capsule xmi:id="_LkUbkPk2EeaxQe9AQrYHAg" base_Class="_Li1N0Pk2EeaxQe9AQrYHAg"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_E5wyoPk3EeaxQe9AQrYHAg" base_RedefinableElement="_BGWLYPk3EeaxQe9AQrYHAg" rootFragment="_bBqTUPk2EeaxQe9AQrYHAg"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_fpHxMPk3EeaxQe9AQrYHAg" base_RedefinableElement="_dFG8UPk3EeaxQe9AQrYHAg"/>
+  <UMLRealTime:CapsulePart xmi:id="_IjVE4Pk4EeaxQe9AQrYHAg" base_Property="_IjJesPk4EeaxQe9AQrYHAg"/>
+  <UMLRealTime:CapsulePart xmi:id="_JFEgAPk4EeaxQe9AQrYHAg" base_Property="_JFDR4Pk4EeaxQe9AQrYHAg"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.cc
new file mode 100644
index 0000000..35a432b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.cc
@@ -0,0 +1,53 @@
+
+#include "A.hh"
+
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_A::Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_A::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_A::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+
+
+
+void Capsule_A::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_A::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_A( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_A( &A, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass A = 
+{
+    "A",
+    NULL,
+    instantiate_A,
+    0,
+    NULL,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.hh
new file mode 100644
index 0000000..60bf65d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/A.hh
@@ -0,0 +1,30 @@
+
+#ifndef A_HH
+#define A_HH
+
+#include "C.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_A : public UMLRTCapsule
+{
+public:
+    Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    C c1;
+    C c2;
+    C c3;
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass A;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.cc
new file mode 100644
index 0000000..cff544a
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.cc
@@ -0,0 +1,53 @@
+
+#include "B.hh"
+
+#include "A.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: Capsule_A( cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_B::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_B::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+
+
+void Capsule_B::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_B::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_B( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_B( &B, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass B = 
+{
+    "B",
+    &A,
+    instantiate_B,
+    0,
+    NULL,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.hh
new file mode 100644
index 0000000..f57ec24
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/B.hh
@@ -0,0 +1,30 @@
+
+#ifndef B_HH
+#define B_HH
+
+#include "A.hh"
+#include "C.hh"
+#include "D.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_B : public Capsule_A
+{
+public:
+    Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    D c2;
+    C c1;
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass B;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
new file mode 100644
index 0000000..140ce2d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
@@ -0,0 +1,31 @@
+
+#include "C.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field C::fields[] = 
+{
+};
+
+
+const UMLRTObject_class UMLRTType_C = 
+{
+    UMLRTObjectInitialize<C>,
+    UMLRTObjectCopy<C>,
+    UMLRTObject_decode,
+    UMLRTObject_encode,
+    UMLRTObjectDestroy<C>,
+    UMLRTObject_fprintf,
+    "C",
+    NULL,
+    {
+        sizeof( C ),
+        0,
+        C::fields
+    },
+    UMLRTOBJECTCLASS_DEFAULT_VERSION,
+    UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
new file mode 100644
index 0000000..6829884
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
@@ -0,0 +1,15 @@
+
+#ifndef C_HH
+#define C_HH
+
+#include "umlrtobjectclass.hh"
+
+class C
+{
+public:
+    static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_C;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..6725497
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-02-22 17:52:08
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+  if (DEFINED ENV{UMLRTS_ROOT})
+    set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+  else ()
+    set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+  endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc C.cc A.cc D.cc B.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
new file mode 100644
index 0000000..ea545da
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
@@ -0,0 +1,31 @@
+
+#include "D.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field D::fields[] = 
+{
+};
+
+
+const UMLRTObject_class UMLRTType_D = 
+{
+    UMLRTObjectInitialize<D>,
+    UMLRTObjectCopy<D>,
+    UMLRTObject_decode,
+    UMLRTObject_encode,
+    UMLRTObjectDestroy<D>,
+    UMLRTObject_fprintf,
+    "D",
+    NULL,
+    {
+        sizeof( D ),
+        0,
+        D::fields
+    },
+    UMLRTOBJECTCLASS_DEFAULT_VERSION,
+    UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
new file mode 100644
index 0000000..4462386
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
@@ -0,0 +1,15 @@
+
+#ifndef D_HH
+#define D_HH
+
+#include "umlrtobjectclass.hh"
+
+class D
+{
+public:
+    static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_D;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Makefile b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+	make -f MakefileTop.mk all
+clean:
+	make -f MakefileTop.mk clean
+.PHONY: 
+	make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..b492260
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc C.cc A.cc D.cc B.cc Top.cc TopControllers.cc 
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+	$(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+	$(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+	@echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+	@$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top-connections.log b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.cc
new file mode 100644
index 0000000..ce5dcb2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.cc
@@ -0,0 +1,81 @@
+
+#include "Top.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsulerole.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, a( &slot->parts[part_a] )
+, b( &slot->parts[part_b] )
+{
+}
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCapsuleRole roles[] = 
+{
+    {
+        "a",
+        &A,
+        1,
+        1,
+        false,
+        false
+    },
+    {
+        "b",
+        &B,
+        1,
+        1,
+        false,
+        false
+    }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    A.instantiate( NULL, slot->parts[Capsule_Top::part_a].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_a].slots[0], A.numPortRolesBorder ) );
+    B.instantiate( NULL, slot->parts[Capsule_Top::part_b].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_b].slots[0], B.numPortRolesBorder ) );
+    slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top = 
+{
+    "Top",
+    NULL,
+    instantiate_Top,
+    2,
+    roles,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.hh
new file mode 100644
index 0000000..2c5910f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/Top.hh
@@ -0,0 +1,33 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCapsulePart;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+    Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+        part_a,
+        part_b
+    };
+protected:
+    const UMLRTCapsulePart * const a;
+    const UMLRTCapsulePart * const b;
+public:
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.cc
new file mode 100644
index 0000000..942d143
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.cc
@@ -0,0 +1,97 @@
+
+#include "TopControllers.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], NULL, NULL, true );
+
+static UMLRTSlot * slots_Top[] = 
+{
+    &Top_slots[InstId_Top_a],
+    &Top_slots[InstId_Top_b]
+};
+
+static UMLRTCapsulePart parts_Top[] = 
+{
+    {
+        &Top,
+        Capsule_Top::part_a,
+        1,
+        &slots_Top[0]
+    },
+    {
+        &Top,
+        Capsule_Top::part_b,
+        1,
+        &slots_Top[1]
+    }
+};
+
+static Capsule_A top_a( &A, &Top_slots[InstId_Top_a], NULL, NULL, true );
+
+static Capsule_B top_b( &B, &Top_slots[InstId_Top_b], NULL, NULL, true );
+
+UMLRTSlot Top_slots[] = 
+{
+    {
+        "Top",
+        0,
+        &Top,
+        NULL,
+        0,
+        &top,
+        &DefaultController_,
+        2,
+        parts_Top,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.a",
+        0,
+        &A,
+        &Top,
+        Capsule_Top::part_a,
+        &top_a,
+        &DefaultController_,
+        0,
+        NULL,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.b",
+        0,
+        &B,
+        &Top,
+        Capsule_Top::part_b,
+        &top_b,
+        &DefaultController_,
+        0,
+        NULL,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    }
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.hh
new file mode 100644
index 0000000..b89ad3c
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+    InstId_Top,
+    InstId_Top_a,
+    InstId_Top_b
+};
+extern UMLRTController * DefaultController;
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopMain.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopMain.cc
new file mode 100644
index 0000000..79261c7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+    UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+    UMLRTMain::setArgs( argc, argv );
+    UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 3 );
+
+    if( ! UMLRTMain::targetStartup() )
+        return EXIT_FAILURE;
+
+    DefaultController->spawn();
+
+    if( ! UMLRTMain::mainLoop() )
+        return UMLRTMain::targetShutdown( false );
+
+    DefaultController->join();
+
+    return UMLRTMain::targetShutdown( true );
+}