Merge branch 'app4mc0.9.7/rttca' into master
Compliant to Amalthea 0.9.8
diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index 0000000..500ac97
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,55 @@
+
+# Contributing to Eclipse APP4MC
+
+Thanks for your interest in this project.
+
+## Project description
+
+Application Platform Project for Multi Core
+
+* https://projects.eclipse.org/projects/technology.app4mc
+
+## Developer resources
+
+Information regarding source code management, builds, coding standards, and
+more.
+
+* https://projects.eclipse.org/projects/technology.app4mc/developer
+
+The project maintains the following source code repositories
+
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.addon.migration
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.examples
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.tools
+
+This project uses Bugzilla to track ongoing development and issues.
+
+* Search for issues: https://bugs.eclipse.org/bugs/buglist.cgi?product=APP4MC
+* Create a new report:
+   https://bugs.eclipse.org/bugs/enter_bug.cgi?product=APP4MC
+
+Be sure to search for existing bugs before you create another one. Remember that
+contributions are always welcome!
+
+## Eclipse Contributor Agreement
+
+Before your contribution can be accepted by the project team contributors must
+electronically sign the Eclipse Contributor Agreement (ECA).
+
+* http://www.eclipse.org/legal/ECA.php
+
+Commits that are provided by non-committers must have a Signed-off-by field in
+the footer indicating that the author is aware of the terms by which the
+contribution has been provided to the project. The non-committer must
+additionally have an Eclipse Foundation account and must have a signed Eclipse
+Contributor Agreement (ECA) on file.
+
+For more information, please see the Eclipse Committer Handbook:
+https://www.eclipse.org/projects/handbook/#resources-commit
+
+## Contact
+
+Contact the project developers via the project's "dev" list.
+
+* https://dev.eclipse.org/mailman/listinfo/app4mc-dev
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..2273b2c
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,289 @@
+
+# Notices for Eclipse APP4MC
+
+This content is produced and maintained by the Eclipse APP4MC project.
+
+* Project home: https://projects.eclipse.org/projects/technology.app4mc
+
+## Trademarks
+
+Eclipse APP4MC, and APP4MC are trademarks of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License v. 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+SPDX-License-Identifier: EPL-2.0
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.addon.migration
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.examples
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.tools
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Commons Lang (2.6)
+
+* License: Apache License, 2.0
+
+Apache Commons Lang (3.1.0)
+
+* License: Apache License, 2.0
+
+Apache Commons Math (2.1.0)
+
+* License: Apache License, 2.0, New BSD license 
+
+Apache Commons Math (3.5.0)
+
+* License: Apache License, 2.0, New BSD License
+
+Apache Jena-ARQ (2.10.0)
+
+* License: Apache-2.0 
+
+Apache Jena-Core (2.7.1)
+
+* License: Apache License 2.0, New BSD license
+
+Apache jena-iri (0.9.2)
+
+* License: Apache License, 2.0
+
+Apache Jena-TDB (0.10.0)
+
+* License: Apache-2.0 
+
+ArduiPi Adafruit SSD1306 OLED Driver SHA Commit
+37956b16aa8514dde5b6ecba04a20cc0babe39f1 (n/a)
+
+* License: BSD-2-Clause
+
+BCEL.Jar (5.2)
+
+* License: Apache License, 2.0
+
+choco (4.0.6)
+
+* License: BSD-4-Clause
+* Project: http://www.choco-solver.org
+* Source: https://github.com/chocoteam/choco-solver
+
+choco-cutoffseq (1.0.4)
+
+* License: BSD-4-Clause
+* Project: https://github.com/chocoteam/cutoffseq
+* Source: https://github.com/chocoteam/cutoffseq/releases/tag/pf4cs-1.0.4
+
+choco-graph (4.2.0)
+
+* License: BSD-4-Clause AND BSD-2-Clause AND BSD-3-Clause
+* Project: https://github.com/chocoteam/choco-graph
+* Source: https://github.com/chocoteam/choco-graph
+
+choco-sat (1.0.2)
+
+* License: BSD-3-Clause
+* Project: https://github.com/chocoteam/choco-sat
+* Source: https://github.com/chocoteam/choco-sat
+
+choco-solver (4.0.9)
+
+* License: BSD-4-Clause
+* Project: http://www.choco-solver.org
+* Source: https://github.com/chocoteam/choco-solver/releases/tag/4.0.9
+
+cpprof-java (1.3.0)
+
+* License: MIT
+* Project: https://github.com/cp-profiler/java-integration
+* Source: https://github.com/cp-profiler/java-integration
+
+dk.brics.automaton (18.01.2018)
+
+* License: BSD 3-Clause
+* Project: http://www.brics.dk/automaton/
+* Source: https://github.com/cs-au-dk/dk.brics.automaton
+
+easymock (3.3.1)
+
+* License: Apache License, 2.0
+* Project: http://easymock.org/
+* Source: https://github.com/easymock/easymock/archive/easymock-3.3.1.zip
+
+Google Guava (15.0.0)
+
+* License: Apache License, 2.0
+
+Google Guava (21.0)
+
+* License: Apache License, 2.0
+
+INCHRON Realtime System Model (2.98.2)
+
+* License: EPL-2.0
+* Project: http://www.inchron.com
+* Source: http://eclipse.inchron.com/realtime/updatesites/release/2.98.2/
+
+Inchron Realtime System model (2.98.5)
+
+* License: EPL-2.0
+* Project: http://www.inchron.com
+* Source: http://eclipse.inchron.com/realtime/updatesites/release/2.98.5/
+
+java_cup runtime Version: 10k (n/a)
+
+* License: Java Cup License (MIT Style)
+
+javassist (3.19.0)
+
+* License: Mozilla Public License 1.1 (MPL), Apache 2.0 
+* Project: http://jboss-javassist.github.io/javassist/
+* Source:
+   https://github.com/jboss-javassist/javassist/archive/rel_3_19_0_ga.zip
+
+jaxen (1.1.6)
+
+* License: BSD License, W3C (One File)
+* Project: https://github.com/codehaus/jaxen
+* Source: https://github.com/codehaus/jaxen/tree/V_1_1_6_Final/jaxen
+
+jcl-over-slf4j-1.7.10.jar (1.7.10)
+
+* License: Apache-2.0
+
+jdom (2.0.6)
+
+* License: JDom License (based on Apache 1.1 Style License)
+* Project: http://www.jdom.org
+* Source: http://www.jdom.org/dist/binary/jdom-2.0.6.zip
+
+jenetics (3.0.1)
+
+* License: Apache License, 2.0
+* Project: http://jenetics.io/
+* Source: https://github.com/jenetics/jenetics/releases/tag/v3.0.1
+
+Jenetics (3.8.0)
+
+* License: Apache-2.0
+* Project: http://jenetics.io/
+* Source: https://github.com/jenetics/jenetics/tree/v3.8.0
+
+jgrapht (0.9.0)
+
+* License: Eclipse Public License 1.0
+* Project: http://jgrapht.org/
+
+jgrapht-core (1.1.0)
+
+* License: EPL-1.0 OR LGPL-2.1-or-later 	
+
+JHHC-SR04 (n/a)
+
+* License: Pending
+
+JHPWMDriver (n/a)
+
+* License: MIT
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+log4j (1.2.15)
+
+* License: Apache License, 2.0
+
+log4j over slf4j 1.7.10.jar (1.7.10)
+
+* License: Apache-2.0
+
+mxGraph (3.7.0.0)
+
+* License: Apache-2.0 AND BSD-3-Clause
+* Project: https://jgraph.github.io/mxgraph/
+* Source: https://github.com/jgraph/mxgraph
+
+net.sf.trove4j:trove4j (3.0.3)
+
+* License: GNU Library or 'Lesser' General Public License (LGPL) 2.1, MIT Style
+   (2 Files)
+
+ojalgo (39.0)
+
+* License: MIT License, BSD, Public Domain
+* Project: http://ojalgo.org/
+* Source: https://github.com/optimatika/ojAlgo/tree/v39
+
+org.xerial.sqlite (3.7.2)
+
+* License: Apache License, 2.0, ISC License
+
+pf4cs (1.0.5)
+
+* License: BSD-4-Clause
+* Project: https://github.com/chocoteam/pf4cs
+* Source: https://github.com/chocoteam/pf4cs
+
+plantUML (2018.8)
+
+* License: (EPL-1.0 OR BSD-3-CLAUSE OR MIT OR Apache-2.0 OR GPL-2.0-or-later OR
+   LGPL-3.0-or-later) AND (EPL-1.0 OR BSD-3-CLAUSE OR MIT OR Apache-2.0 OR
+   GPL-2.0-or-later OR LGPL-3.0-or-later OR AGPL-3.0-or-later) AND BSD-3-Clause
+   AND MIT AND Apache-2.0  
+
+PlantUML EPL Version: 8000 (n/a)
+
+* License: Eclipse Public License + Public Domain (One File)
+
+protobuf-java (3.2.0)
+
+* License: New BSD license
+
+resolver.jar (1.2)
+
+* License: Apache License, 2.0
+
+serializer.jar (2.7.1)
+
+* License: Apache License, 2.0
+
+SLF4J API Module (slf4j-api-1.7.10.jar) (1.7.10)
+
+* License: MIT
+
+xalan 2.7.1 top level jar (2.7.1)
+
+* License: Apache License, 2.0
+
+Xerces (2.9.0)
+
+* License: Apache License, 2.0
+
+xml-apis.jar (1.3.04)
+
+* License: Apache License, 2.0, Public Domain, W3C
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/eclipse-tools/cdgen/.classpath b/eclipse-tools/cdgen/.classpath
new file mode 100755
index 0000000..2874ea5
--- /dev/null
+++ b/eclipse-tools/cdgen/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project b/eclipse-tools/cdgen/.project
old mode 100644
new mode 100755
similarity index 93%
rename from eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
rename to eclipse-tools/cdgen/.project
index 7614bd0..f145eda
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
+++ b/eclipse-tools/cdgen/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>net.sourceforge.plantuml</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>cdgen</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.pde.PluginNature</nature>

+	</natures>

+</projectDescription>

diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/cdgen/.settings/org.eclipse.jdt.core.prefs
old mode 100644
new mode 100755
similarity index 92%
rename from eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.settings/org.eclipse.jdt.core.prefs
rename to eclipse-tools/cdgen/.settings/org.eclipse.jdt.core.prefs
index a698e59..5caa538
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.settings/org.eclipse.jdt.core.prefs
+++ b/eclipse-tools/cdgen/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,13 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

+org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.debug.lineNumber=generate

+org.eclipse.jdt.core.compiler.debug.localVariable=generate

+org.eclipse.jdt.core.compiler.debug.sourceFile=generate

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

+org.eclipse.jdt.core.compiler.source=1.8

diff --git a/eclipse-tools/cdgen/META-INF/MANIFEST.MF b/eclipse-tools/cdgen/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..9e3c6d6
--- /dev/null
+++ b/eclipse-tools/cdgen/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0

+Automatic-Module-Name: app4mc.sniplets

+Bundle-ManifestVersion: 2

+Bundle-Name: GSOC2019

+Bundle-SymbolicName: cdgen

+Bundle-Version: 1.0.0.qualifier

+Export-Package: org.eclipse.app4mc.cdgen.utils,

+ org.eclipse.app4mc.cdgen

+Require-Bundle: org.eclipse.app4mc.amalthea.model,

+ org.junit,

+ org.eclipse.jdt.annotation

+Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-Vendor: Ram Prasath Govindarajan

diff --git a/eclipse-tools/cdgen/README.md b/eclipse-tools/cdgen/README.md
new file mode 100644
index 0000000..01067db
--- /dev/null
+++ b/eclipse-tools/cdgen/README.md
@@ -0,0 +1,33 @@
+# CdGen
+> CdGen is a model to text converter tool which is used for real time analysis of the Amalthea System model on the Adapteva Parallella Hardware.
+
+For more details please refer to [documentation][documentation].
+
+## Installation
+
+* [APP4MC version 0.9.5][APP4MC] 
+* [Java SE 10][JAVA]
+* [Source code for the scheduler][here] 
+
+## User Guide
+
+*	Code Generation
+1. Download and Unzip APP4MC
+2. Install Java SE 10 
+3. Start APP4MC and create a new workspace
+4. Import the project from git or any options available.
+5. Select checkFileCreateGUI.java from the checks directory andright click and run as Java application
+6. Select the scheduler, task preemption, file source of corresponding scheduler and Model of choice.
+7. Click start for code generation.
+8. Code is generated in the root location with a timestamp.
+
+*	Compilation and Execution
+9. Replace the generated code in place of the src directory in below [setup][setup]. 
+10. Build, deploy and Run the code on Parallella.
+
+<!-- Markdown link & img dfn's -->
+[documentation]:https://cdgendoc.readthedocs.io/en/latest/
+[setup]:https://git.eclipse.org/c/app4mc/org.eclipse.app4mc.examples.git/commit/?id=69a0a24f120bb0d79cbd688081ca697368e252f7
+[APP4MC]:https://www.eclipse.org/app4mc/downloads/
+[JAVA]:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase10-4425482.html
+[here]:https://git.eclipse.org/c/app4mc/org.eclipse.app4mc.examples.git/commit/?id=69a0a24f120bb0d79cbd688081ca697368e252f7
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/bin/.gitignore b/eclipse-tools/cdgen/bin/.gitignore
similarity index 100%
rename from eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/bin/.gitignore
rename to eclipse-tools/cdgen/bin/.gitignore
diff --git a/eclipse-tools/cdgen/build.properties b/eclipse-tools/cdgen/build.properties
new file mode 100644
index 0000000..b107977
--- /dev/null
+++ b/eclipse-tools/cdgen/build.properties
@@ -0,0 +1,3 @@
+source.. = src/
+bin.includes = META-INF/,\
+               .
diff --git a/eclipse-tools/cdgen/cdgen.graphics/browse.png b/eclipse-tools/cdgen/cdgen.graphics/browse.png
new file mode 100644
index 0000000..bcf72c1
--- /dev/null
+++ b/eclipse-tools/cdgen/cdgen.graphics/browse.png
Binary files differ
diff --git a/eclipse-tools/cdgen/cdgen.graphics/close.png b/eclipse-tools/cdgen/cdgen.graphics/close.png
new file mode 100644
index 0000000..fba904f
--- /dev/null
+++ b/eclipse-tools/cdgen/cdgen.graphics/close.png
Binary files differ
diff --git a/eclipse-tools/cdgen/cdgen.graphics/help.png b/eclipse-tools/cdgen/cdgen.graphics/help.png
new file mode 100644
index 0000000..8960bd6
--- /dev/null
+++ b/eclipse-tools/cdgen/cdgen.graphics/help.png
Binary files differ
diff --git a/eclipse-tools/cdgen/cdgen.graphics/start.png b/eclipse-tools/cdgen/cdgen.graphics/start.png
new file mode 100644
index 0000000..371a38f
--- /dev/null
+++ b/eclipse-tools/cdgen/cdgen.graphics/start.png
Binary files differ
diff --git a/eclipse-tools/cdgen/models/democarMulticore/AMALTHEA_Democar_MappingExample.amxmi b/eclipse-tools/cdgen/models/democarMulticore/AMALTHEA_Democar_MappingExample.amxmi
new file mode 100644
index 0000000..869b8e0
--- /dev/null
+++ b/eclipse-tools/cdgen/models/democarMulticore/AMALTHEA_Democar_MappingExample.amxmi
@@ -0,0 +1,1118 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.5" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">

+  <commonElements>

+    <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcBrakeForceArbiter" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcABSCalculation" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcSensors" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcSensorPostprocessing" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcCylNumObserver" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcBrakeForceCalculation" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcEngineSensors" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcInjIgnActuation" tagType="SOFTWARE_COMPONENT" />

+    <coreClassifiers name="FPU" />

+  </commonElements>

+  <swModel>

+    <tasks name="Task_ESSP0" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP1" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="CylNumObserver?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP2" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP3" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BaseFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="TransientFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="TotalFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="InjectionTimeActuation?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP4" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="APedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="APedVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ThrottleController?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ThrottleActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP5" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintInclude] Requires Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuBrakePedalSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeSafetyMonitor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="StopLightActuator?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP6" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintInclude] Requires Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="VehicleStateMonitor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuDecelerationSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ABSCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceActuation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="CaliperPositionCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeActuator?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP7" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP8" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="DiagnosisArbiter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP9" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="APedVoter" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" activations="Timer_20MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime3?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime4?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime5?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime6?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime3?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime4?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime5?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime6?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime7?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime8?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ABSMode" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedPosition1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedPosition2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="APedSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="ArbitratedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ArbitratedDiagnosisRequest" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BaseFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeApplication" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceCurrent" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceFeedback" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeMonitorLevel" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPositionVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPositionVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeSafetyLevel" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeSafetyState" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CalculatedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CaliperPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationRate1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationRate2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DecelerationVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DesiredThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DesiredThrottlePositionVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime3" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime4" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime5" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime6" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime7" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime8" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime3" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime4" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime5" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime6" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime7" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime8" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MAFRate" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MAFSensorVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MassAirFlow" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="MonitoredVehicleState" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="ThrottleSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ThrottleSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TotalFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TransientFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TriggeredCylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeed1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeed2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="VotedAPedPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedBrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedDecelerationRate" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedVehicleSpeed" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedWheelSpeed" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeed1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeed2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="WheelSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <processPrototypes name="ESSP0" firstRunnable="EcuVehicleSpeedSensor?type=Runnable" lastRunnable="VehicleSpeedSensorVoter?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableCalls runnable="VehicleSpeedSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="VehicleSpeedSensorVoter?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP1" firstRunnable="CylNumObserver?type=Runnable" lastRunnable="DecelerationSensorDiagnosis?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="CylNumObserver?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorDiagnosis?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP2" firstRunnable="WheelSpeedSensorDiagnosis?type=Runnable" lastRunnable="BrakePedalSensorDiagnosis?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="WheelSpeedSensorDiagnosis?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorDiagnosis?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP3" firstRunnable="MassAirFlowSensor?type=Runnable" lastRunnable="InjectionTimeActuation?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="MassAirFlowSensor?type=Runnable" />

+      <runnableCalls runnable="BaseFuelMass?type=Runnable" />

+      <runnableCalls runnable="TransientFuelMass?type=Runnable" />

+      <runnableCalls runnable="TotalFuelMass?type=Runnable" />

+      <runnableCalls runnable="InjectionTimeActuation?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP4" firstRunnable="APedSensor?type=Runnable" lastRunnable="ThrottleActuator?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="APedSensor?type=Runnable" />

+      <runnableCalls runnable="APedVoter?type=Runnable" />

+      <runnableCalls runnable="ThrottleController?type=Runnable" />

+      <runnableCalls runnable="ThrottleActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP5" firstRunnable="ThrottleSensor?type=Runnable" lastRunnable="EcuStopLightActuator?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="ThrottleSensor?type=Runnable" />

+      <runnableCalls runnable="EcuBrakePedalSensor?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorVoter?type=Runnable" />

+      <runnableCalls runnable="CheckPlausability?type=Runnable" />

+      <runnableCalls runnable="BrakeSafetyMonitor?type=Runnable" />

+      <runnableCalls runnable="BrakeForceCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeForceArbiter?type=Runnable" />

+      <runnableCalls runnable="StopLightActuator?type=Runnable" />

+      <runnableCalls runnable="EcuStopLightActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP6" firstRunnable="VehicleStateMonitor?type=Runnable" lastRunnable="EcuBrakeActuator?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="VehicleStateMonitor?type=Runnable" />

+      <runnableCalls runnable="EcuDecelerationSensor?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorVoter?type=Runnable" />

+      <runnableCalls runnable="ABSCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeForceActuation?type=Runnable" />

+      <runnableCalls runnable="CaliperPositionCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeActuator?type=Runnable" />

+      <runnableCalls runnable="EcuBrakeActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP7" firstRunnable="VehicleSpeedSensorDiagnosis?type=Runnable" lastRunnable="BrakeActuatorMonitor?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />

+      <runnableCalls runnable="BrakeActuatorMonitor?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP8" firstRunnable="DiagnosisArbiter?type=Runnable" lastRunnable="IgnitionTimeActuation?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="DiagnosisArbiter?type=Runnable" />

+      <runnableCalls runnable="IgnitionTiming?type=Runnable" />

+      <runnableCalls runnable="IgnitionTimeActuation?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP9" firstRunnable="EcuWheelSpeedSensor?type=Runnable" lastRunnable="WheelSpeedSensorVoter?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableCalls runnable="WheelSpeedSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="WheelSpeedSensorVoter?type=Runnable" />

+    </processPrototypes>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_10MS">

+      <min value="10" unit="ms" />

+      <max value="10" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_20MS">

+      <min value="20" unit="ms" />

+      <max value="20" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_5MS">

+      <min value="5" unit="ms" />

+      <max value="5" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+  </swModel>

+  <hwModel>

+    <definitions xsi:type="am:ProcessingUnitDefinition" name="Cortex-A9" puType="CPU" features="Instructions/IPC_1.0?type=HwFeature">

+      <customProperties key="EnEf-Volt_High">

+        <value xsi:type="am:DoubleObject" value="1.15" />

+      </customProperties>

+      <customProperties key="EnEf-Volt_Low">

+        <value xsi:type="am:DoubleObject" value="1.05" />

+      </customProperties>

+      <customProperties key="EnEf-Scale_High">

+        <value xsi:type="am:DoubleObject" value="1.0" />

+      </customProperties>

+      <customProperties key="EnEf-Scale_Low">

+        <value xsi:type="am:DoubleObject" value="0.5" />

+      </customProperties>

+    </definitions>

+    <featureCategories name="Instructions" featureType="performance">

+      <features name="IPC_1.0" value="1.0" />

+    </featureCategories>

+    <structures name="Homogeneous Example System" structureType="System">

+      <structures name="Freescale i.MX6 Board" structureType="ECU">

+        <structures name="i.MX 6 Series Processor" structureType="Microcontroller">

+          <modules xsi:type="am:ProcessingUnit" name="Cortex-A9 #1" frequencyDomain="792MHZ%2BQuartz__100.0?type=FrequencyDomain" definition="Cortex-A9?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="Cortex-A9 #2" frequencyDomain="792MHZ%2BQuartz__100.0?type=FrequencyDomain" definition="Cortex-A9?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="Cortex-A9 #3" frequencyDomain="792MHZ%2BQuartz__100.0?type=FrequencyDomain" definition="Cortex-A9?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="Cortex-A9 #4" frequencyDomain="792MHZ%2BQuartz__100.0?type=FrequencyDomain" definition="Cortex-A9?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="Cortex-A9 #5" frequencyDomain="792MHZ%2BQuartz__100.0?type=FrequencyDomain" definition="Cortex-A9?type=ProcessingUnitDefinition" />

+        </structures>

+      </structures>

+    </structures>

+    <domains xsi:type="am:FrequencyDomain" name="792MHZ Quartz" clockGating="false">

+      <defaultValue value="792.0" unit="MHz" />

+    </domains>

+    <domains xsi:type="am:FrequencyDomain" name="792MHZ+Quartz__100.0" clockGating="false">

+      <defaultValue value="792.0" unit="MHz" />

+    </domains>

+  </hwModel>

+  <osModel>

+    <operatingSystems name="OS">

+      <taskSchedulers name="SCHED_Cortex-A9 #1" />

+      <taskSchedulers name="SCHED_Cortex-A9 #2" />

+      <taskSchedulers name="SCHED_Cortex-A9 #3" />

+      <taskSchedulers name="SCHED_Cortex-A9 #4" />

+      <taskSchedulers name="SCHED_Cortex-A9 #5" />

+    </operatingSystems>

+  </osModel>

+  <stimuliModel>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_10MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="10" unit="ms" />

+    </stimuli>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_20MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="20" unit="ms" />

+    </stimuli>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_5MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="5" unit="ms" />

+    </stimuli>

+  </stimuliModel>

+  <constraintsModel>

+    <runnableSequencingConstraints name="ABSCalculation--&gt;BrakeForceActuation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceArbiter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="DecelerationSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="DecelerationSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleSpeedSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleSpeedSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="WheelSpeedSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="WheelSpeedSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="APedSensor--&gt;APedVoter" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="APedSensor?type=Runnable" />

+      <runnableGroups runnables="APedVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="APedVoter--&gt;ThrottleController" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="APedVoter?type=Runnable" />

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BaseFuelMass--&gt;IgnitionTiming" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+      <runnableGroups runnables="IgnitionTiming?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="MassAirFlowSensor--&gt;BaseFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="MassAirFlowSensor?type=Runnable" />

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BaseFuelMass--&gt;TransientFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+      <runnableGroups runnables="TransientFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CaliperPositionCalculation--&gt;BrakeActuator" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="CaliperPositionCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeActuator--&gt;EcuBrakeActuator" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeActuator?type=Runnable" />

+      <runnableGroups runnables="EcuBrakeActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceActuation--&gt;BrakeActuatorMonitor" orderType="successor" processScope="ESSP7?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+      <runnableGroups runnables="BrakeActuatorMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceActuation--&gt;CaliperPositionCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+      <runnableGroups runnables="CaliperPositionCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceCalculation--&gt;BrakeForceArbiter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeSafetyMonitor--&gt;BrakeForceArbiter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceArbiter--&gt;StopLightActuator" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+      <runnableGroups runnables="StopLightActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeSafetyMonitor--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CheckPlausability--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleStateMonitor--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleStateMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuBrakePedalSensor--&gt;BrakePedalSensorDiagnosis" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="EcuBrakePedalSensor?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakePedalSensorTranslation--&gt;BrakePedalSensorVoter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakePedalSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuBrakePedalSensor--&gt;BrakePedalSensorTranslation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="EcuBrakePedalSensor?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakePedalSensorVoter--&gt;CheckPlausability" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakePedalSensorVoter?type=Runnable" />

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CheckPlausability--&gt;BrakeSafetyMonitor" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleStateMonitor--&gt;BrakeSafetyMonitor" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleStateMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CylNumObserver--&gt;IgnitionTimeActuation" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="CylNumObserver?type=Runnable" />

+      <runnableGroups runnables="IgnitionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CylNumObserver--&gt;InjectionTimeActuation" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="CylNumObserver?type=Runnable" />

+      <runnableGroups runnables="InjectionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuDecelerationSensor--&gt;DecelerationSensorDiagnosis" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="EcuDecelerationSensor?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="DecelerationSensorTranslation--&gt;DecelerationSensorVoter" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="DecelerationSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuDecelerationSensor--&gt;DecelerationSensorTranslation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="EcuDecelerationSensor?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="StopLightActuator--&gt;EcuStopLightActuator" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="StopLightActuator?type=Runnable" />

+      <runnableGroups runnables="EcuStopLightActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuVehicleSpeedSensor--&gt;VehicleSpeedSensorDiagnosis" orderType="successor" processScope="ESSP7?type=ProcessPrototype">

+      <runnableGroups runnables="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuVehicleSpeedSensor--&gt;VehicleSpeedSensorTranslation" orderType="successor" processScope="ESSP0?type=ProcessPrototype">

+      <runnableGroups runnables="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuWheelSpeedSensor--&gt;WheelSpeedSensorDiagnosis" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuWheelSpeedSensor--&gt;WheelSpeedSensorTranslation" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="IgnitionTiming--&gt;IgnitionTimeActuation" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="IgnitionTiming?type=Runnable" />

+      <runnableGroups runnables="IgnitionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="TotalFuelMass--&gt;InjectionTimeActuation" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="TotalFuelMass?type=Runnable" />

+      <runnableGroups runnables="InjectionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="ThrottleController--&gt;ThrottleActuator" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+      <runnableGroups runnables="ThrottleActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="ThrottleSensor--&gt;ThrottleController" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="ThrottleSensor?type=Runnable" />

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="TransientFuelMass--&gt;TotalFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="TransientFuelMass?type=Runnable" />

+      <runnableGroups runnables="TotalFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleSpeedSensorTranslation--&gt;VehicleSpeedSensorVoter" orderType="successor" processScope="ESSP0?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleSpeedSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="WheelSpeedSensorTranslation--&gt;WheelSpeedSensorVoter" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="WheelSpeedSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+  </constraintsModel>

+  <mappingModel>

+    <schedulerAllocation scheduler="SCHED_Cortex-A9+%231?type=TaskScheduler" responsibility="Cortex-A9+%231?type=ProcessingUnit" />

+    <schedulerAllocation scheduler="SCHED_Cortex-A9+%232?type=TaskScheduler" responsibility="Cortex-A9+%232?type=ProcessingUnit" />

+    <schedulerAllocation scheduler="SCHED_Cortex-A9+%233?type=TaskScheduler" responsibility="Cortex-A9+%233?type=ProcessingUnit" />

+    <schedulerAllocation scheduler="SCHED_Cortex-A9+%234?type=TaskScheduler" responsibility="Cortex-A9+%234?type=ProcessingUnit" />

+    <schedulerAllocation scheduler="SCHED_Cortex-A9+%235?type=TaskScheduler" responsibility="Cortex-A9+%235?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP0?type=Task" scheduler="SCHED_Cortex-A9+%231?type=TaskScheduler" affinity="Cortex-A9+%231?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP1?type=Task" scheduler="SCHED_Cortex-A9+%231?type=TaskScheduler" affinity="Cortex-A9+%231?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP2?type=Task" scheduler="SCHED_Cortex-A9+%232?type=TaskScheduler" affinity="Cortex-A9+%232?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP3?type=Task" scheduler="SCHED_Cortex-A9+%232?type=TaskScheduler" affinity="Cortex-A9+%232?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP4?type=Task" scheduler="SCHED_Cortex-A9+%233?type=TaskScheduler" affinity="Cortex-A9+%233?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP5?type=Task" scheduler="SCHED_Cortex-A9+%234?type=TaskScheduler" affinity="Cortex-A9+%234?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP6?type=Task" scheduler="SCHED_Cortex-A9+%233?type=TaskScheduler" affinity="Cortex-A9+%233?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP7?type=Task" scheduler="SCHED_Cortex-A9+%234?type=TaskScheduler" affinity="Cortex-A9+%234?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP8?type=Task" scheduler="SCHED_Cortex-A9+%235?type=TaskScheduler" affinity="Cortex-A9+%235?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP9?type=Task" scheduler="SCHED_Cortex-A9+%235?type=TaskScheduler" affinity="Cortex-A9+%235?type=ProcessingUnit" />

+  </mappingModel>

+</am:Amalthea>

diff --git a/eclipse-tools/cdgen/models/democarMulticoreRaspberryPi/AMALTHEA_Democar_Multi_RASPBERRYPI.amxmi b/eclipse-tools/cdgen/models/democarMulticoreRaspberryPi/AMALTHEA_Democar_Multi_RASPBERRYPI.amxmi
new file mode 100644
index 0000000..1d1d16e
--- /dev/null
+++ b/eclipse-tools/cdgen/models/democarMulticoreRaspberryPi/AMALTHEA_Democar_Multi_RASPBERRYPI.amxmi
@@ -0,0 +1,1106 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.5" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">

+  <commonElements>

+    <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcBrakeForceArbiter" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcABSCalculation" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcSensors" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcSensorPostprocessing" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcCylNumObserver" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcBrakeForceCalculation" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcEngineSensors" tagType="SOFTWARE_COMPONENT" />

+    <tags name="SwcInjIgnActuation" tagType="SOFTWARE_COMPONENT" />

+    <coreClassifiers name="FPU" />

+  </commonElements>

+  <swModel>

+    <tasks name="Task_ESSP0" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP1" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="CylNumObserver?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP2" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP3" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BaseFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="TransientFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="TotalFuelMass?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="InjectionTimeActuation?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP4" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintExclude] Exclude Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="APedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="APedVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ThrottleController?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ThrottleActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP5" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintInclude] Requires Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuBrakePedalSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeSafetyMonitor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="StopLightActuator?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP6" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <customProperties key="[ConstraintInclude] Requires Targets with FPU">

+        <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier" />

+      </customProperties>

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="VehicleStateMonitor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuDecelerationSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorVoter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="ABSCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeForceActuation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="CaliperPositionCalculation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeActuator?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP7" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP8" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="DiagnosisArbiter?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <tasks name="Task_ESSP9" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">

+      <callGraph>

+        <items xsi:type="am:Group" name="CallSequence" ordered="true">

+          <items xsi:type="am:RunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable" />

+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable" />

+        </items>

+      </callGraph>

+    </tasks>

+    <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="APedVoter" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" activations="Timer_20MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime3?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime4?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime5?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime6?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime3?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime4?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime5?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime6?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime7?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="InjectionTime8?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">

+      <callGraph>

+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited" />

+        <items xsi:type="am:Ticks">

+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5" />

+        </items>

+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited" />

+      </callGraph>

+    </runnables>

+    <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ABSMode" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedPosition1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedPosition2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="APedSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="APedSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="ArbitratedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ArbitratedDiagnosisRequest" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BaseFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeApplication" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceCurrent" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceFeedback" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeForceVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeMonitorLevel" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPosition2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPositionVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakePedalPositionVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="BrakeSafetyLevel" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="BrakeSafetyState" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CalculatedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CaliperPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="CylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationRate1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationRate2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="DecelerationVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DecelerationVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DesiredThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="DesiredThrottlePositionVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime3" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime4" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime5" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime6" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime7" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="IgnitionTime8" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime3" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime4" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime5" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime6" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime7" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="InjectionTime8" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MAFRate" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MAFSensorVoltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="MassAirFlow" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="MonitoredVehicleState" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="ThrottleSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="ThrottleSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TotalFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TransientFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="TriggeredCylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeed1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeed2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="VehicleSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="VotedAPedPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedBrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedDecelerationRate" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedVehicleSpeed" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="VotedWheelSpeed" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeed1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeed2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="8" unit="bit" />

+    </labels>

+    <labels name="WheelSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <labels name="WheelSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">

+      <size value="16" unit="bit" />

+    </labels>

+    <processPrototypes name="ESSP0" firstRunnable="EcuVehicleSpeedSensor?type=Runnable" lastRunnable="VehicleSpeedSensorVoter?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableCalls runnable="VehicleSpeedSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="VehicleSpeedSensorVoter?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP1" firstRunnable="CylNumObserver?type=Runnable" lastRunnable="DecelerationSensorDiagnosis?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="CylNumObserver?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorDiagnosis?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP2" firstRunnable="WheelSpeedSensorDiagnosis?type=Runnable" lastRunnable="BrakePedalSensorDiagnosis?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="WheelSpeedSensorDiagnosis?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorDiagnosis?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP3" firstRunnable="MassAirFlowSensor?type=Runnable" lastRunnable="InjectionTimeActuation?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="MassAirFlowSensor?type=Runnable" />

+      <runnableCalls runnable="BaseFuelMass?type=Runnable" />

+      <runnableCalls runnable="TransientFuelMass?type=Runnable" />

+      <runnableCalls runnable="TotalFuelMass?type=Runnable" />

+      <runnableCalls runnable="InjectionTimeActuation?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP4" firstRunnable="APedSensor?type=Runnable" lastRunnable="ThrottleActuator?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="APedSensor?type=Runnable" />

+      <runnableCalls runnable="APedVoter?type=Runnable" />

+      <runnableCalls runnable="ThrottleController?type=Runnable" />

+      <runnableCalls runnable="ThrottleActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP5" firstRunnable="ThrottleSensor?type=Runnable" lastRunnable="EcuStopLightActuator?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="ThrottleSensor?type=Runnable" />

+      <runnableCalls runnable="EcuBrakePedalSensor?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="BrakePedalSensorVoter?type=Runnable" />

+      <runnableCalls runnable="CheckPlausability?type=Runnable" />

+      <runnableCalls runnable="BrakeSafetyMonitor?type=Runnable" />

+      <runnableCalls runnable="BrakeForceCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeForceArbiter?type=Runnable" />

+      <runnableCalls runnable="StopLightActuator?type=Runnable" />

+      <runnableCalls runnable="EcuStopLightActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP6" firstRunnable="VehicleStateMonitor?type=Runnable" lastRunnable="EcuBrakeActuator?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="VehicleStateMonitor?type=Runnable" />

+      <runnableCalls runnable="EcuDecelerationSensor?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="DecelerationSensorVoter?type=Runnable" />

+      <runnableCalls runnable="ABSCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeForceActuation?type=Runnable" />

+      <runnableCalls runnable="CaliperPositionCalculation?type=Runnable" />

+      <runnableCalls runnable="BrakeActuator?type=Runnable" />

+      <runnableCalls runnable="EcuBrakeActuator?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP7" firstRunnable="VehicleSpeedSensorDiagnosis?type=Runnable" lastRunnable="BrakeActuatorMonitor?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />

+      <runnableCalls runnable="BrakeActuatorMonitor?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP8" firstRunnable="DiagnosisArbiter?type=Runnable" lastRunnable="IgnitionTimeActuation?type=Runnable" activation="Timer_10MS?type=PeriodicActivation">

+      <runnableCalls runnable="DiagnosisArbiter?type=Runnable" />

+      <runnableCalls runnable="IgnitionTiming?type=Runnable" />

+      <runnableCalls runnable="IgnitionTimeActuation?type=Runnable" />

+    </processPrototypes>

+    <processPrototypes name="ESSP9" firstRunnable="EcuWheelSpeedSensor?type=Runnable" lastRunnable="WheelSpeedSensorVoter?type=Runnable" activation="Timer_5MS?type=PeriodicActivation">

+      <runnableCalls runnable="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableCalls runnable="WheelSpeedSensorTranslation?type=Runnable" />

+      <runnableCalls runnable="WheelSpeedSensorVoter?type=Runnable" />

+    </processPrototypes>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_10MS">

+      <min value="10" unit="ms" />

+      <max value="10" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_20MS">

+      <min value="20" unit="ms" />

+      <max value="20" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+    <activations xsi:type="am:PeriodicActivation" name="Timer_5MS">

+      <min value="5" unit="ms" />

+      <max value="5" unit="ms" />

+      <offset value="0" unit="ms" />

+    </activations>

+  </swModel>

+  <hwModel>

+    <definitions xsi:type="am:ProcessingUnitDefinition" name="ARM Cortex-A53" puType="CPU" features="Instructions/IPC_1.0?type=HwFeature" />

+    <featureCategories name="Instructions" featureType="performance">

+      <features name="IPC_1.0" value="1.0" />

+    </featureCategories>

+    <structures name="Homogeneous Example System" structureType="System">

+      <structures name="RPI3" structureType="ECU">

+        <structures name="ARM Cortex-A53" structureType="Microcontroller">

+          <modules xsi:type="am:ProcessingUnit" name="RPI_0" frequencyDomain="ClockARM0?type=FrequencyDomain" definition="ARM+Cortex-A53?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="RPI_1" frequencyDomain="ClockARM1?type=FrequencyDomain" definition="ARM+Cortex-A53?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="RPI_2" frequencyDomain="ClockARM2?type=FrequencyDomain" definition="ARM+Cortex-A53?type=ProcessingUnitDefinition" />

+          <modules xsi:type="am:ProcessingUnit" name="RPI_3" frequencyDomain="ClockARM3?type=FrequencyDomain" definition="ARM+Cortex-A53?type=ProcessingUnitDefinition" />

+        </structures>

+      </structures>

+    </structures>

+    <domains xsi:type="am:FrequencyDomain" name="ClockARM2" clockGating="false">

+      <defaultValue value="1.2" unit="GHz" />

+    </domains>

+    <domains xsi:type="am:FrequencyDomain" name="ClockARM3" clockGating="false">

+      <defaultValue value="1.2" unit="GHz" />

+    </domains>

+    <domains xsi:type="am:FrequencyDomain" name="ClockARM0" clockGating="false">

+      <defaultValue value="1.2" unit="GHz" />

+    </domains>

+    <domains xsi:type="am:FrequencyDomain" name="ClockARM1" clockGating="false">

+      <defaultValue value="1.2" unit="GHz" />

+    </domains>

+  </hwModel>

+  <osModel>

+    <operatingSystems name="OS">

+      <taskSchedulers name="SCHED_RPI_0 #1" />

+      <taskSchedulers name="SCHED_RPI_1 #2" />

+      <taskSchedulers name="SCHED_RPI_2 #3" />

+      <taskSchedulers name="SCHED_RPI_3 #4" />

+    </operatingSystems>

+  </osModel>

+  <stimuliModel>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_10MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="10" unit="ms" />

+    </stimuli>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_20MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="20" unit="ms" />

+    </stimuli>

+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_5MS">

+      <offset value="0" unit="ms" />

+      <recurrence value="5" unit="ms" />

+    </stimuli>

+  </stimuliModel>

+  <constraintsModel>

+    <runnableSequencingConstraints name="ABSCalculation--&gt;BrakeForceActuation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceArbiter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="DecelerationSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="DecelerationSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleSpeedSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleSpeedSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="WheelSpeedSensorVoter--&gt;ABSCalculation" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="WheelSpeedSensorVoter?type=Runnable" />

+      <runnableGroups runnables="ABSCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="APedSensor--&gt;APedVoter" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="APedSensor?type=Runnable" />

+      <runnableGroups runnables="APedVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="APedVoter--&gt;ThrottleController" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="APedVoter?type=Runnable" />

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BaseFuelMass--&gt;IgnitionTiming" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+      <runnableGroups runnables="IgnitionTiming?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="MassAirFlowSensor--&gt;BaseFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="MassAirFlowSensor?type=Runnable" />

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BaseFuelMass--&gt;TransientFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="BaseFuelMass?type=Runnable" />

+      <runnableGroups runnables="TransientFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CaliperPositionCalculation--&gt;BrakeActuator" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="CaliperPositionCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeActuator--&gt;EcuBrakeActuator" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeActuator?type=Runnable" />

+      <runnableGroups runnables="EcuBrakeActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceActuation--&gt;BrakeActuatorMonitor" orderType="successor" processScope="ESSP7?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+      <runnableGroups runnables="BrakeActuatorMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceActuation--&gt;CaliperPositionCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceActuation?type=Runnable" />

+      <runnableGroups runnables="CaliperPositionCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceCalculation--&gt;BrakeForceArbiter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeSafetyMonitor--&gt;BrakeForceArbiter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeForceArbiter--&gt;StopLightActuator" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeForceArbiter?type=Runnable" />

+      <runnableGroups runnables="StopLightActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakeSafetyMonitor--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CheckPlausability--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleStateMonitor--&gt;BrakeForceCalculation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleStateMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeForceCalculation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuBrakePedalSensor--&gt;BrakePedalSensorDiagnosis" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="EcuBrakePedalSensor?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakePedalSensorTranslation--&gt;BrakePedalSensorVoter" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakePedalSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuBrakePedalSensor--&gt;BrakePedalSensorTranslation" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="EcuBrakePedalSensor?type=Runnable" />

+      <runnableGroups runnables="BrakePedalSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="BrakePedalSensorVoter--&gt;CheckPlausability" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="BrakePedalSensorVoter?type=Runnable" />

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CheckPlausability--&gt;BrakeSafetyMonitor" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="CheckPlausability?type=Runnable" />

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleStateMonitor--&gt;BrakeSafetyMonitor" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleStateMonitor?type=Runnable" />

+      <runnableGroups runnables="BrakeSafetyMonitor?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CylNumObserver--&gt;IgnitionTimeActuation" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="CylNumObserver?type=Runnable" />

+      <runnableGroups runnables="IgnitionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="CylNumObserver--&gt;InjectionTimeActuation" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="CylNumObserver?type=Runnable" />

+      <runnableGroups runnables="InjectionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuDecelerationSensor--&gt;DecelerationSensorDiagnosis" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="EcuDecelerationSensor?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="DecelerationSensorTranslation--&gt;DecelerationSensorVoter" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="DecelerationSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuDecelerationSensor--&gt;DecelerationSensorTranslation" orderType="successor" processScope="ESSP6?type=ProcessPrototype">

+      <runnableGroups runnables="EcuDecelerationSensor?type=Runnable" />

+      <runnableGroups runnables="DecelerationSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="StopLightActuator--&gt;EcuStopLightActuator" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="StopLightActuator?type=Runnable" />

+      <runnableGroups runnables="EcuStopLightActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuVehicleSpeedSensor--&gt;VehicleSpeedSensorDiagnosis" orderType="successor" processScope="ESSP7?type=ProcessPrototype">

+      <runnableGroups runnables="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuVehicleSpeedSensor--&gt;VehicleSpeedSensorTranslation" orderType="successor" processScope="ESSP0?type=ProcessPrototype">

+      <runnableGroups runnables="EcuVehicleSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuWheelSpeedSensor--&gt;WheelSpeedSensorDiagnosis" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorDiagnosis?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="EcuWheelSpeedSensor--&gt;WheelSpeedSensorTranslation" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="EcuWheelSpeedSensor?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorTranslation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="IgnitionTiming--&gt;IgnitionTimeActuation" orderType="successor" processScope="ESSP8?type=ProcessPrototype">

+      <runnableGroups runnables="IgnitionTiming?type=Runnable" />

+      <runnableGroups runnables="IgnitionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="TotalFuelMass--&gt;InjectionTimeActuation" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="TotalFuelMass?type=Runnable" />

+      <runnableGroups runnables="InjectionTimeActuation?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="ThrottleController--&gt;ThrottleActuator" orderType="successor" processScope="ESSP4?type=ProcessPrototype">

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+      <runnableGroups runnables="ThrottleActuator?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="ThrottleSensor--&gt;ThrottleController" orderType="successor" processScope="ESSP5?type=ProcessPrototype">

+      <runnableGroups runnables="ThrottleSensor?type=Runnable" />

+      <runnableGroups runnables="ThrottleController?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="TransientFuelMass--&gt;TotalFuelMass" orderType="successor" processScope="ESSP3?type=ProcessPrototype">

+      <runnableGroups runnables="TransientFuelMass?type=Runnable" />

+      <runnableGroups runnables="TotalFuelMass?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="VehicleSpeedSensorTranslation--&gt;VehicleSpeedSensorVoter" orderType="successor" processScope="ESSP0?type=ProcessPrototype">

+      <runnableGroups runnables="VehicleSpeedSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="VehicleSpeedSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+    <runnableSequencingConstraints name="WheelSpeedSensorTranslation--&gt;WheelSpeedSensorVoter" orderType="successor" processScope="ESSP9?type=ProcessPrototype">

+      <runnableGroups runnables="WheelSpeedSensorTranslation?type=Runnable" />

+      <runnableGroups runnables="WheelSpeedSensorVoter?type=Runnable" />

+    </runnableSequencingConstraints>

+  </constraintsModel>

+  <mappingModel>

+    <schedulerAllocation scheduler="SCHED_RPI_0+%231?type=TaskScheduler" responsibility="RPI_0?type=ProcessingUnit" />

+    <schedulerAllocation scheduler="SCHED_RPI_1+%232?type=TaskScheduler" responsibility="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP0?type=Task" scheduler="SCHED_RPI_1+%232?type=TaskScheduler" affinity="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP1?type=Task" scheduler="SCHED_RPI_1+%232?type=TaskScheduler" affinity="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP2?type=Task" scheduler="SCHED_RPI_0+%231?type=TaskScheduler" affinity="RPI_0?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP3?type=Task" scheduler="SCHED_RPI_0+%231?type=TaskScheduler" affinity="RPI_0?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP4?type=Task" scheduler="SCHED_RPI_1+%232?type=TaskScheduler" affinity="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP5?type=Task" scheduler="SCHED_RPI_0+%231?type=TaskScheduler" affinity="RPI_0?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP6?type=Task" scheduler="SCHED_RPI_1+%232?type=TaskScheduler" affinity="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP7?type=Task" scheduler="SCHED_RPI_1+%232?type=TaskScheduler" affinity="RPI_1?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP8?type=Task" scheduler="SCHED_RPI_0+%231?type=TaskScheduler" affinity="RPI_0?type=ProcessingUnit" />

+    <taskAllocation task="Task_ESSP9?type=Task" scheduler="SCHED_RPI_0+%231?type=TaskScheduler" affinity="RPI_0?type=ProcessingUnit" />

+  </mappingModel>

+</am:Amalthea>

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/ArmCodeFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/ArmCodeFileCreation.java
new file mode 100644
index 0000000..b689ea5
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/ArmCodeFileCreation.java
@@ -0,0 +1,347 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.HashMap;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.MappingModel;

+import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of Runnable Definition with Runnable specific delay.

+ *

+ */

+

+public class ArmCodeFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * Constructor ArmCodeFileCreation.

+	 *

+	 * @param Model

+	 * @param srcPath

+	 * @param hdrPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	public ArmCodeFileCreation(final Amalthea Model, final String srcPath, final String hdrPath, final int configFlag)

+			throws IOException {

+		this.model = Model;

+		final EList<Task> tasks = this.model.getSwModel().getTasks();

+		final EList<Runnable> runnables = this.model.getSwModel().getRunnables();

+		System.out.println("Runnable File Creation Begins");

+		fileCreate(this.model, srcPath, hdrPath, configFlag, tasks, runnables);

+		System.out.println("Runnable File Creation Ends");

+

+	}

+

+	/**

+	 * file creation and specification for armcode file

+	 *

+	 * @param model

+	 * @param srcPath

+	 * @param hdrPath

+	 * @param configFlag

+	 * @param tasks

+	 * @param runnables

+	 * @throws IOException

+	 */

+	private static void fileCreate(final Amalthea model, final String srcPath, final String hdrPath,

+			final int configFlag, final EList<Task> tasks, final EList<Runnable> runnables) throws IOException {

+		final String fname = srcPath + File.separator + "armcode.c";

+		final File f2 = new File(srcPath);

+		final File f1 = new File(fname);

+		f2.mkdirs();

+		try {

+			f1.createNewFile();

+		}

+		catch (final IOException e) {

+			e.printStackTrace();

+		}

+

+		final File fn = f1;

+		@SuppressWarnings("resource")

+		final FileWriter fw = new FileWriter(fn, true);

+		try {

+			if (0x3110 == (configFlag & 0xFFF0)) {

+				fileUtil.fileMainHeader(f1);

+				runFileHeader(f1);

+				headerIncludesArmCode(f1);

+				nsleep(f1);

+				zynqmain(model, f1);

+			}

+			else {

+				fileUtil.fileMainHeader(f1);

+				runFileHeader(f1);

+				headerIncludesArmCode(f1);

+				nsleep(f1);

+				zynqmain(model, f1);

+			}

+		}

+		finally {

+			try {

+				fw.close();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+		}

+	}

+

+	/**

+	 * ArmCode Header Title note.

+	 *

+	 * @param file

+	 */

+	private static void runFileHeader(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   ArmCode Header\n");

+			fw.write("*Description	:	Header file for Deploy/Offloading of the task to EPI\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * nsleep - function call structure.

+	 *

+	 * @param file

+	 */

+	private static void nsleep(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("int nsleep(long miliseconds){\n");

+			fw.write("\tstruct timespec req, rem;\n");

+			fw.write("\tif(miliseconds > 999){\n");

+			fw.write("\t\treq.tv_sec = (int)(miliseconds / 1000);\n");

+			fw.write("\t\treq.tv_nsec = (miliseconds - ((long)req.tv_sec * 1000)) * 1000000;\n");

+			fw.write("\t} else {\n");

+			fw.write("\t\treq.tv_sec = 0;\n");

+			fw.write("\t\treq.tv_nsec = miliseconds * 1000000;\n");

+			fw.write("\t}\n");

+			fw.write("\treturn nanosleep(&req , &rem);\n");

+			fw.write("}\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * main function for the zynq in which we deploy the

+	 *

+	 * @param model

+	 * @param file

+	 */

+	private static void zynqmain(final Amalthea model, final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final MappingModel mappingModel = model.getMappingModel();

+			if (mappingModel != null) {

+				final EList<SchedulerAllocation> processingUnits = model.getMappingModel().getSchedulerAllocation();

+				final ArrayList<SchedulerAllocation> localPU = new ArrayList<SchedulerAllocation>();

+				localPU.addAll(processingUnits);

+				final HashMap<SchedulerAllocation, Long> CoreMap = new HashMap<SchedulerAllocation, Long>();

+				long count = 0;

+				for (final SchedulerAllocation pu : localPU) {

+					CoreMap.put(pu, count);

+					count++;

+				}

+				fw.write("int main(){\n");

+				fw.write("\tunsigned int shared_label_to_read;\n");

+				fw.write("\tunsigned   row_loop,col_loop;\n");

+				fw.write("\te_platform_t epiphany;\n");

+				fw.write("\te_epiphany_t dev;\n");

+				fw.write("\tint loop;\n");

+				fw.write("\tint addr;\n");

+				fw.write("\te_mem_t emem;\n");

+				fw.write("\te_init(NULL);\n");

+				fw.write("\te_reset_system();\n");

+				fw.write("\te_get_platform_info(&epiphany);\n");

+				int coreGroup = 0;

+				if (processingUnits.size() == 1) {

+					coreGroup = 0;

+				}

+				else if (processingUnits.size() > 1 && processingUnits.size() < 5) {

+					coreGroup = 2;

+				}

+				else if (processingUnits.size() > 4 && processingUnits.size() < 10) {

+					coreGroup = 3;

+				}

+				else if (processingUnits.size() > 9 && processingUnits.size() < 17) {

+					coreGroup = 4;

+				}

+				fw.write("\te_open(&dev,0,0," + coreGroup + "," + coreGroup + ");\n");

+				/* Core 1 */

+				// 00

+				/* Core 2 */

+				// 00 10

+				// 01 11

+				/* Core 3 */

+				// 00 10 20

+				// 01 11 21

+				// 02 12 22

+				/* Core 4 */

+				// 00 10 20 30

+				// 01 11 21 31

+				// 02 12 22 32

+				// 03 13 23 33

+

+				fw.write("\te_reset_group(&dev);\n");

+				int k = 0;

+				final ArrayList<String> result = new ArrayList<String>();

+				for (int i = 0; i < localPU.size(); i++) {

+					for (int j = 0; j < localPU.size(); j++) {

+						if (k < localPU.size()) {

+							fw.write("\te_return_stat_t\tresult" + k + ";\n");

+							k++;

+						}

+

+					}

+				}

+				int k3 = 0;

+				for (int rowCoreGroup = 0; rowCoreGroup < localPU.size(); rowCoreGroup++) {

+					for (int columnCoreGroup = 0; columnCoreGroup < localPU.size(); columnCoreGroup++) {

+						if (k3 < localPU.size()) {

+							fw.write("\tunsigned int message" + k3 + "[9];\n");

+							k3++;

+						}

+					}

+				}

+				int coreIndex = 0;

+				for (int rowCoreGroup = 0; rowCoreGroup < coreGroup; rowCoreGroup++) {

+					for (int columnCoreGroup = 0; columnCoreGroup < coreGroup; columnCoreGroup++) {

+						if (coreIndex < localPU.size()) {

+							fw.write("\tresult" + coreIndex + "=  e_load(\"main" + coreIndex + ".elf\",&dev,"

+									+ rowCoreGroup + "," + columnCoreGroup + ",E_FALSE);\n");

+							result.add("result" + coreIndex + "!=E_OK");

+							coreIndex++;

+						}

+					}

+				}

+				String resultFinal = "";

+				for (int k2 = 0; k2 < result.size(); k2++) {

+					// System.out.println("Size ==> "+result.size());

+					resultFinal = resultFinal + (result.get(k2) + "||");

+					if (k2 == (result.size() - 2)) {

+						k2++;

+						resultFinal = resultFinal + result.get(k2);

+						break;

+					}

+				}

+				coreIndex = 0;

+				for (int rowCoreGroup = 0; rowCoreGroup < localPU.size() & rowCoreGroup < 4; rowCoreGroup++) {

+					for (int columnCore = 0; columnCore < localPU.size() & columnCore < 4; columnCore++) {

+						if (coreIndex < localPU.size()) {

+							if (coreIndex == 0) {

+								fw.write("\tif (result" + coreIndex + "!=E_OK){\n");

+							}

+							else {

+								fw.write("\telse if (result" + coreIndex + "!=E_OK){\n");

+							}

+							fw.write("\t\tfprintf(stderr,\"Error Loading the Epiphany Application " + coreIndex

+									+ " %i\\n\", result" + coreIndex + ");");

+							fw.write("\n\t}\n");

+							coreIndex++;

+						}

+					}

+				}

+				fw.write("\te_start_group(&dev);\n");

+				fw.write("\tfprintf(stderr,\"RMS Multicore on FreeRTOS started \\n\");\n");

+				fw.write("\taddr = cnt_address;\n");

+				fw.write("\tint pollLoopCounter = 0;\n");

+				fw.write("\tint taskMessage;\n");

+				fw.write("\tint prevtaskMessage;\n");

+				fw.write("\tint prevpollLoopCounter = 0;\n");

+				fw.write("\tfor (pollLoopCounter=0;pollLoopCounter<=40;pollLoopCounter++){\n");

+				coreIndex = 0;

+				for (int rowCoreGroup = 0; rowCoreGroup < coreGroup; rowCoreGroup++) {

+					for (int columnCoreGroup = 0; columnCoreGroup < coreGroup; columnCoreGroup++) {

+						if (coreIndex < localPU.size()) {

+							fw.write("\t\te_read(&dev," + rowCoreGroup + "," + columnCoreGroup + ",addr, &message"

+									+ coreIndex + ", sizeof(message" + coreIndex + "));\n");

+							fw.write("\t\tfprintf(stderr, \"tick1 %3d||\",message" + coreIndex + "[8]+1);\n");

+							fw.write("\t\tfprintf(stderr,\"task holding core" + coreIndex + " %2u||\", message"

+									+ coreIndex + "[6]);\n");

+							coreIndex++;

+						}

+					}

+				}

+				fw.write("\t\tfprintf(stderr,\"\\n\");\n");

+				fw.write("\t\tusleep(READ_PRECISION_US);\n");

+				fw.write("\t}\n");

+				fw.write("\tfprintf(stderr,\"----------------------------------------------\\n\");\n");

+				fw.write("\te_close(&dev);\n");

+				fw.write("\te_finalize();\n");

+				fw.write("\tfprintf(stderr,\"RMS Multicore on FreeRTOS Complete \\n \");\n");

+				fw.write("\treturn 0;\n");

+				fw.write("}\n");

+				fw.close();

+			}

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * header inclusion for armCode file

+	 *

+	 * @param file

+	 */

+	private static void headerIncludesArmCode(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n");

+			fw.write("#include <unistd.h>\n");

+			fw.write("#include <e-hal.h>\n");

+			fw.write("#include <time.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"debugFlags.h\"\n");

+			fw.write("#define READ_PRECISION_US 1000\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/FreeRTOSConfigFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/FreeRTOSConfigFileCreation.java
new file mode 100755
index 0000000..7fdf04b
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/FreeRTOSConfigFileCreation.java
@@ -0,0 +1,143 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+

+/**

+ * Implementation of FreeRTOS specific configuration and macros.

+ *

+ *

+ */

+public class FreeRTOSConfigFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * Constructor FreeRTOSConfigFileCreation

+	 *

+	 * @param Model

+	 * @param srcPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	public FreeRTOSConfigFileCreation(final Amalthea Model, final String srcPath, final int configFlag)

+			throws IOException {

+		this.model = Model;

+		System.out.println("FreeRTOSConfig File Creation Begins");

+		fileCreate(this.model, srcPath, configFlag);

+		System.out.println("FreeRTOSConfig File Creation Ends");

+	}

+

+	/**

+	 * FileCreation FreeRTOSConfigFileCreation

+	 *

+	 * @param model

+	 * @param srcPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	public static void fileCreate(final Amalthea model, final String srcpath, final int configFlag) throws IOException {

+		final String fname = srcpath + File.separator + "FreeRTOSConfig.h";

+		final File f2 = new File(srcpath);

+		final File f1 = new File(fname);

+		f2.mkdirs();

+		try {

+			f1.createNewFile();

+		}

+		catch (final IOException e) {

+			e.printStackTrace();

+		}

+

+		final File fn = f1;

+		@SuppressWarnings("resource")

+		final FileWriter fw = new FileWriter(fn, true);

+		try {

+			fileUtil.fileMainHeader(f1);

+			fileUtil.FreeRTOSConfigFileHeader(f1);

+			headerIncludesFreeRTOS(model, f1, configFlag);

+		}

+		finally {

+			try {

+				fw.close();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+		}

+	}

+

+	/**

+	 * Macro framework and definition.

+	 *

+	 * @param model

+	 * @param file

+	 * @param configFlag

+	 */

+	public static void headerIncludesFreeRTOS(final Amalthea model, final File file, final int configFlag) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final int constval = 1;

+			final int taskSize = model.getSwModel().getTasks().size();

+			fw.write("\t#ifndef FREERTOS_CONFIG_H\n");

+			fw.write("\t#define FREERTOS_CONFIG_H\n");

+			fw.write("//-----------------------------------------------------------\n");

+			fw.write("\t#define configCALL_STACK_SIZE			0x50\n");

+			if (0x0020 == (configFlag & 0x00F0)) {

+				fw.write("\t#define configUSE_PREEMPTION		1\n");

+			}

+			else {

+				fw.write("\t#define configUSE_PREEMPTION		0\n");

+			}

+			fw.write("\t#define configUSE_TIME_SLICING			0\n");

+			fw.write("\t#define configUSE_IDLE_HOOK				0\n");

+			fw.write("\t#define configUSE_TICK_HOOK				0\n");

+			fw.write("\t#define configCPU_CLOCK_HZ				( ( unsigned long ) 700000000 )\n");

+			fw.write("\t#define configTICK_RATE_HZ				( ( TickType_t ) 1000 )\n");

+			fw.write("\t#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) " + (taskSize + constval)

+					+ " )\n");

+			fw.write("\t#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 0x200) //512 words\n");

+			fw.write("\t#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 10450 ) )\n");

+			fw.write("\t#define configMAX_TASK_NAME_LEN			( 128 )\n");

+			fw.write("\t#define configUSE_TRACE_FACILITY    	0\n");

+			fw.write("\t#define configUSE_16_BIT_TICKS      	1\n");

+			fw.write("\t#define configIDLE_SHOULD_YIELD			0\n");

+			fw.write("\t#define configUSE_ALTERNATIVE_API		0\n");

+			fw.write("//-----------------------------------------------------------\n");

+			fw.write("\t#define configUSE_CO_ROUTINES			0\n");

+			fw.write("\t#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\n");

+			fw.write("//-----------------------------------------------------------\n");

+			fw.write("\t#define INCLUDE_vTaskPrioritySet        	0\n");

+			fw.write("\t#define INCLUDE_uxTaskPriorityGet       	0\n");

+			fw.write("\t#define INCLUDE_vTaskDelete             	0\n");

+			fw.write("\t#define INCLUDE_vTaskCleanUpResources   	0\n");

+			fw.write("\t#define INCLUDE_vTaskSuspend            	1\n");

+			fw.write("\t#define INCLUDE_vTaskDelayUntil				1\n");

+			fw.write("\t#define INCLUDE_vTaskDelay					1\n");

+			fw.write("\t#define INCLUDE_xTaskGetCurrentTaskHandle	1\n");

+			fw.write("\t#define INCLUDE_pcTaskGetTaskName 			1\n");

+			fw.write("\n\t#define C2C_MSG_TYPE int		\n");

+			fw.write("\t#endif\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/LabelFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/LabelFileCreation.java
new file mode 100755
index 0000000..9bbd09b
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/LabelFileCreation.java
@@ -0,0 +1,414 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.Label;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
+import org.eclipse.app4mc.amalthea.model.Runnable;
+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;
+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;
+import org.eclipse.app4mc.cdgen.utils.fileUtil;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * Declaration of Labels with initial values .
+ *
+ *
+ */
+
+/**
+ * @author rpras
+ *
+ */
+public class LabelFileCreation {
+	final private Amalthea model;
+
+	/**
+	 * Constructor LabelFileCreation
+	 *
+	 * @param Model
+	 *            Amalthea Model
+	 * @param srcPath
+	 * @throws IOException
+	 */
+	public LabelFileCreation(final Amalthea Model, final String srcPath) throws IOException {
+		this.model = Model;
+		System.out.println("Label File Creation Begins");
+		fileCreate(this.model, srcPath);
+		System.out.println("Label File Creation Ends");
+	}
+
+	/**
+	 * FileCreation LabelFileCreation
+	 *
+	 * @param model
+	 * @param srcPath
+	 * @throws IOException
+	 */
+	private static void fileCreate(final Amalthea model, final String srcPath) throws IOException {
+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();
+		int k = 0;
+		for (final SchedulerAllocation c : CoreNo) {
+			final ProcessingUnit pu = c.getResponsibility().get(0);
+			final Set<Task> task = DeploymentUtil.getTasksMappedToCore(pu, model);
+			final List<Task> tasks = new ArrayList<Task>(task);
+			final List<Label> labelCoreCommonList = fileUtil.CoreSpecificLabel(model, tasks);
+			final List<Label> sharedLabelList = fileUtil.SharedLabelDeclarationHead(model, tasks);
+			final String fname1 = srcPath + File.separator + "label" + k + ".c";
+			final String fname2 = srcPath + File.separator + "label" + k + ".h";
+			final File f2 = new File(srcPath);
+			final File f1 = new File(fname1);
+			final File f3 = new File(fname2);
+			f2.mkdirs();
+			try {
+				f1.createNewFile();
+			}
+			catch (final IOException e) {
+				e.printStackTrace();
+			}
+
+			final File fn = f1;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			try {
+				fileUtil.fileMainHeader(f1);
+				labelFileHeader(f1);
+				headerIncludesLabelHead(f1, k);
+				LabelDeclaration(f1, tasks, labelCoreCommonList);
+				LabelDeclarationLocal(f1, tasks, labelCoreCommonList, sharedLabelList);
+			}
+			finally {
+				try {
+					fw.close();
+				}
+				catch (final IOException e) {
+					e.printStackTrace();
+				}
+			}
+
+			try {
+				fileUtil.fileMainHeader(f3);
+				labelFileHeader(f3);
+				headerIncludesLabel(f3);
+				LabelDeclarationLocalHeader(f3, tasks, labelCoreCommonList);
+			}
+			finally {
+				try {
+					fw.close();
+				}
+				catch (final IOException e) {
+					e.printStackTrace();
+				}
+			}
+
+			k++;
+		}
+	}
+
+	/**
+	 * Title card - LabelFileCreation
+	 *
+	 * @param file
+	 */
+	private static void labelFileHeader(final File file) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("*Title 		:   Label Declaration\n");
+			fw.write("*Description	:	Declaration and Initialisation of Label\n");
+			fw.write("******************************************************************\n");
+			fw.write("******************************************************************/\n\n\n");
+
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * Header inclusion - LabelFileCreation
+	 *
+	 * @param file
+	 */
+	private static void headerIncludesLabel(final File file) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("/* Standard includes. */\n");
+			fw.write("#include <stdio.h>\n");
+			fw.write("#include <stdint.h>\n");
+			fw.write("#include <string.h>\n\n");
+			fw.write("/* Scheduler includes. */\n");
+			fw.write("#include \"shared_comms.h\"\n");
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * Header inclusion - LabelFileCreation
+	 *
+	 * @param file
+	 */
+	private static void headerIncludesLabelHead(final File file, final int k) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("/* Standard includes. */\n");
+			fw.write("#include <stdio.h>\n");
+			fw.write("#include <stdint.h>\n");
+			fw.write("#include <string.h>\n\n");
+			fw.write("/* Scheduler includes. */\n");
+			fw.write("#include \"shared_comms.h\"\n");
+			fw.write("#include \"label" + k + ".h\"\n\n");
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+
+	/**
+	 * Label definition and initialization structure.
+	 *
+	 * @param file
+	 * @param tasks
+	 * @param labellist
+	 */
+	private static void LabelDeclaration(final File file, final List<Task> tasks, final List<Label> labellist) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			labellist.stream().distinct().collect(Collectors.toList());
+			for (final Label label : labellist) {
+				final String type = fileUtil.datatype(label.getSize().toString());
+				final long init = fileUtil.intialisation(label.getSize().toString());
+				fw.write("\t" + type + "	" + label.getName() + " \t=\t " + init + ";\n");
+			}
+
+			fw.write("\n\n\n\n");
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * Local label definition and initialization structure. Task specific local
+	 * labels are defined to perform Cin and Cout operation.
+	 *
+	 * @param file
+	 * @param tasks
+	 * @param sharedLabelList
+	 */
+	private static void LabelDeclarationLocal(final File file, final List<Task> tasks,
+			final List<Label> labelCoreCommonList, final List<Label> sharedLabelList) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			for (final Task task : tasks) {
+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);
+				final ArrayList<Label> labellist1 = new ArrayList<Label>();
+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());
+				for (final Runnable run : runnablesOfTask) {
+					final Set<Label> labellist = SoftwareUtil.getAccessedLabelSet(run, null);
+					labellist1.addAll(labellist);
+				}
+				final List<Label> listWithoutDuplicates2 = labellist1.stream().distinct().collect(Collectors.toList());
+				final Set<Label> TaskLabel = SoftwareUtil.getAccessedLabelSet(task, null);
+				fw.write("\n //local variable for " + task.getName() + "\n");
+				for (final Label lab : listWithoutDuplicates2) {
+					if ((TaskLabel.contains(lab)) && !(sharedLabelList.contains(lab))
+							&& (labelCoreCommonList.contains(lab))) {
+						final String type = fileUtil.datatype(lab.getSize().toString());
+						final long init = fileUtil.intialisation(lab.getSize().toString());
+						fw.write("\t\t" + type + "\t" + lab.getName() + "_" + task.getName() + "\t=\t" + init + ";\n");
+					}
+				}
+				fw.write("\n //Shared label \n");
+				for (final Label lab : sharedLabelList) {
+					if (TaskLabel.contains(lab)) {
+						final String type = fileUtil.datatype(lab.getSize().toString());
+						final long init = fileUtil.intialisation(lab.getSize().toString());
+						fw.write(
+								"\t\t" + type + "\t" + lab.getName() + "_" + task.getName() + " \t=\t " + init + ";\n");
+					}
+				}
+				final Set<Label> readLabels = SoftwareUtil.getReadLabelSet(task, null);
+				final Set<Label> writeLabels = SoftwareUtil.getWriteLabelSet(task, null);
+				fw.write("\n\tvoid cIN_" + task.getName() + "()\n\t{\n");
+				List<String> readLabelType = new ArrayList<String>();
+				final HashMap<String, HashMap<Label, Integer>> SharedLabelTypeMapIndexed = new HashMap<String, HashMap<Label, Integer>>();
+				for (final Label share : sharedLabelList) {
+					final String type = share.getSize().toString();
+					readLabelType.add(type);
+				}
+				readLabelType = readLabelType.stream().distinct().collect(Collectors.toList());
+				for (final String rLT : readLabelType) {
+
+					final HashMap<Label, Integer> SharedLabelTypeMap = new HashMap<Label, Integer>();
+					int k = 0;
+					for (final Label share : sharedLabelList) {
+						final String type = share.getSize().toString();
+						if (type.equals(rLT)) {
+							SharedLabelTypeMap.put(share, new Integer(k));
+							k++;
+						}
+					}
+					SharedLabelTypeMapIndexed.put(rLT, SharedLabelTypeMap);
+				}
+				HashMap<Label, Integer> LabelIndexedType = new HashMap<Label, Integer>();
+				for (final String rLT : readLabelType) {
+					LabelIndexedType = SharedLabelTypeMapIndexed.get(rLT);
+					for (final Label share : sharedLabelList) {
+						final String type = share.getSize().toString();
+						if ((type.equals(rLT)) & (readLabels.contains(share))) {
+							fw.write("\t\t" + share.getName() + "_" + task.getName() + "\t=\tshared_label_"
+									+ type.replace(" ", "") + "_read(" + LabelIndexedType.get(share) + ");\n");
+						}
+					}
+				}
+				for (final Label lab : listWithoutDuplicates2) {
+					if (labelCoreCommonList.contains(lab)) {
+						fw.write("\t\t" + lab.getName() + "_" + task.getName() + "\t=\t" + lab.getName() + ";\n");
+					}
+				}
+				fw.write("\t}\n");
+				fw.write("\n\tvoid cOUT_" + task.getName() + "()\n\t{\n");
+				final ArrayList<Label> labellist2 = new ArrayList<Label>();
+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());
+				for (final Runnable run : runnablesOfTask) {
+					final Set<Label> labellist = SoftwareUtil.getWriteLabelSet(run, null);
+					labellist2.addAll(labellist);
+				}
+				final List<Label> listWithoutDuplicates1 = labellist2.stream().distinct().collect(Collectors.toList());
+				for (final Label lab : listWithoutDuplicates1) {
+					if (labelCoreCommonList.contains(lab) & (writeLabels.contains(lab))) {
+						fw.write("\t\t" + lab.getName() + "\t=\t" + lab.getName() + "_" + task.getName() + ";\n");
+					}
+				}
+				HashMap<Label, Integer> LabelWriteIndexedType = new HashMap<Label, Integer>();
+				for (final String rLT : readLabelType) {
+					LabelWriteIndexedType = SharedLabelTypeMapIndexed.get(rLT);
+					for (final Label share : sharedLabelList) {
+						final String type = share.getSize().toString();
+						if ((type.equals(rLT)) & (writeLabels.contains(share))) {
+							fw.write("\t\t" + share.getName() + "_" + task.getName() + "++;\n");
+							fw.write("\t\tshared_label_" + type.replace(" ", "") + "_write("
+									+ LabelWriteIndexedType.get(share) + "," + share.getName() + "_" + task.getName()
+									+ " );\n");
+						}
+					}
+				}
+				fw.write("\t}\n");
+				fw.write("\n\n");
+			}
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+	}
+
+	private static void LabelDeclarationLocalHeader(final File file, final List<Task> tasks,
+			final List<Label> labelList) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			for (final Task task : tasks) {
+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);
+				final ArrayList<Label> labellist1 = new ArrayList<Label>();
+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());
+				for (final Runnable run : runnablesOfTask) {
+					final Set<Label> labellist = SoftwareUtil.getAccessedLabelSet(run, null);
+					labellist1.addAll(labellist);
+				}
+				fw.write("\n\tvoid cIN_" + task.getName() + "();");
+				fw.write("\n\tvoid cOUT_" + task.getName() + "();");
+			}
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+	}
+
+	public static List<Label> SharedLabelFinder(final Amalthea model) {
+		final EList<Task> tasks = model.getSwModel().getTasks();
+		final ArrayList<Label> labelCombined = new ArrayList<Label>();
+		final ArrayList<Label> labelOhneDuplicate = new ArrayList<Label>();
+		for (final Task task : tasks) {
+			final Set<Label> labellist = SoftwareUtil.getAccessedLabelSet(task, null);
+			labelCombined.addAll(labellist);
+		}
+		final Set<Label> uniques = new HashSet<>();
+		for (final Label t : labelCombined) {
+			if (!uniques.add(t)) {
+				labelOhneDuplicate.add(t);
+			}
+		}
+		final List<Label> sharedLabelList = labelOhneDuplicate.stream().distinct().collect(Collectors.toList());
+		return sharedLabelList;
+	}
+
+	@SuppressWarnings("null")
+	public static HashMap<Label, HashMap<Task, ProcessingUnit>> LabelTaskMap(final Amalthea model,
+			final List<Label> labelList) {
+		final EList<Task> tasks = model.getSwModel().getTasks();
+		final HashMap<Label, HashMap<Task, ProcessingUnit>> localLabelAllocation = new HashMap<Label, HashMap<Task, ProcessingUnit>>();
+
+		for (final Label label : labelList) {
+			final HashMap<Task, ProcessingUnit> localAllocation = new HashMap<Task, ProcessingUnit>();
+			for (final Task task : tasks) {
+				final ProcessingUnit pu = DeploymentUtil.getAssignedCoreForProcess(task, model).iterator().next();
+				final ArrayList<Label> labelListLocalTask = new ArrayList<Label>(
+						SoftwareUtil.getAccessedLabelSet(task, null));
+				if (labelListLocalTask.contains(label)) {
+					localAllocation.put(task, pu);
+				}
+			}
+			if (localAllocation != null) {
+				localLabelAllocation.put(label, localAllocation);
+			}
+		}
+		return localLabelAllocation;
+	}
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainFileCreation.java
new file mode 100755
index 0000000..f0a3e6c
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainFileCreation.java
@@ -0,0 +1,259 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Set;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of Main function in which scheduling is done.

+ *

+ *

+ */

+

+public class MainFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * MainFileCreation Constructor

+	 *

+	 * @param Model

+	 * @param srcPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	public MainFileCreation(final Amalthea Model, final String srcPath, final int configFlag) throws IOException {

+		this.model = Model;

+		System.out.println("Main File Creation Begins");

+		if (0x2000 == (configFlag & 0xF000)) {

+			fileCreatePthread(this.model, srcPath);

+		}

+		System.out.println("Main File Creation Ends");

+	}

+

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param file

+	 * @param labellist

+	 */

+	public static List<Label> SharedLabelCoreDefinition(final Amalthea model, final String srcPath) {

+		final EList<Label> labellist = model.getSwModel().getLabels();

+		final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+		if (labellist.size() == 0) {

+			System.out.println("Shared Label size 0");

+		}

+		else {

+			final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+					.LabelTaskMap(model, labellist);

+			int i = 0, k = 0, j = 0;

+			for (final Label share : labellist) {

+				final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+				final Collection<ProcessingUnit> puList = TaskMap.values();

+				final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+				final Set<Task> TaskList = TaskMap.keySet();

+				if (puListUnique.size() == 1 && TaskList.size() > 1) {

+					SharedLabelListSortCore.add(share);

+					i++;

+				}

+				else if (puListUnique.size() > 1) {

+					j++;

+				}

+				else if (TaskList.size() == 1) {

+					k++;

+				}

+			}

+			System.out.println("Total Labels :" + sharedLabelTaskMap.keySet().size() + "=" + i + "+" + j + "+" + k + "="

+					+ (i + j + k));

+		}

+		return SharedLabelListSortCore;

+	}

+

+

+	private static void sleepTimerMsPthread(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("void sleepTimerMs(int ticks)\n");

+			fw.write("{\n");

+			fw.write("\tint var;\n");

+			fw.write("\tfor (var = 0; var < ticks; ++var)\n");

+			fw.write("\t{\n");

+			fw.write("\t\tsuspendMe();\n");

+			fw.write("\t\t{\n");

+			fw.write("\t\t\tusleep(1000);\n");

+			fw.write("\t\t}\n");

+			fw.write("\t\tresumeMe();\n");

+			fw.write("\t}\n");

+			fw.write("}\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void fileCreatePthread(final Amalthea model, final String path1) throws IOException {

+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();

+		int k = 0;

+		for (final SchedulerAllocation c : CoreNo) {

+			final ProcessingUnit pu = c.getResponsibility().get(0);

+			final Set<Task> tasks = DeploymentUtil.getTasksMappedToCore(pu, model);

+			final String fname = path1 + File.separator + "main" + k + ".c";

+			final File f2 = new File(path1);

+			final File f1 = new File(fname);

+			f2.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			try {

+				fileUtil.fileMainHeader(f1);

+				mainFileHeader(f1);

+				headerIncludesMainPthread(f1, model, k, tasks);

+				sleepTimerMsPthread(f1);

+				mainFucntionPthread(f1, tasks);

+			}

+			finally {

+				try {

+					fw.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			k++;

+		}

+	}

+

+	private static void mainFucntionPthread(final File f1, final Set<Task> tasks) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("int main(void) \n{\n");

+			fw.write("\tpthread_t thread[NUM_THREADS];\n");

+			fw.write("\tpthread_attr_t attr;\n\n");

+			final int tasksize = tasks.size();

+			int init = 0;

+			while (init < tasksize) {

+				fw.write("\tlong rtr" + init + "=" + init + ";\n");

+				init++;

+			}

+			fw.write("\tlong t;\n");

+			fw.write("\tint rc;\n");

+			fw.write("\tvoid *status;\n\n");

+			fw.write("\tfor(;;)\n\t{\n");

+			fw.write("\t\tpthread_attr_init(&attr);\n");

+			fw.write("\t\tpthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);\n\n");

+			int init1 = 0;

+			while (init1 < tasksize) {

+				fw.write("\t\tpthread_create (&thread[" + init1 + "], &attr, v" + tasks.iterator().next().getName()

+						+ ", (void *)rtr" + init1 + ");\n");

+				init1++;

+			}

+			fw.write("\t\tif (rc)\n");

+			fw.write("\t\t{\n");

+			fw.write("\t\t\tprintf(\"ERROR; return code from pthread_join() is %d\\n\", rc);\n");

+			fw.write("\t\t\texit(-1);\n");

+			fw.write("\t\t}\n");

+

+			fw.write("\n\t\tpthread_attr_destroy(&attr);\n");

+			fw.write("\n\t\tfor(t=0; t<NUM_THREADS; t++)\n");

+			fw.write("\t\t{\n");

+			fw.write("\t\t\trc = pthread_join(thread[t], &status);\n");

+			fw.write("\t\t\tif (rc)\n");

+			fw.write("\t\t\t{\n");

+			fw.write("\t\t\t\tprintf(\"ERROR; return code from pthread_join() is %d\\n\", rc);\n");

+			fw.write("\t\t\t\texit(-1);\n");

+			fw.write("\t\t\t}\n");

+			fw.write(

+					"\t\t\tprintf(\"Main: completed join with thread %ld having a status of %ld\\n\",t,(long)status);\n");

+			fw.write("\t\t}\n");

+			fw.write("\t\tprintf(\"\\n\");\n");

+			fw.write("\t}\n");

+			fw.write("\tprintf(\"Main: program completed. Exiting.\\n\");\n");

+			fw.write("\tpthread_exit(NULL);\n");

+			fw.write("}\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void headerIncludesMainPthread(final File f1, final Amalthea model2, final int k,

+			final Set<Task> tasks) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <pthread.h>\n");

+			fw.write("#include <string.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"taskDef" + k + ".h\"\n");

+			fw.write("#define NUM_THREADS\t" + tasks.size() + "\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+

+	private static void mainFileHeader(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   C File for Tasks Call\n");

+			fw.write("*Description	:	Main file in which scheduling is done \n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainRMSFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainRMSFileCreation.java
new file mode 100644
index 0000000..16e3261
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MainRMSFileCreation.java
@@ -0,0 +1,475 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.math.BigInteger;

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Map;

+import java.util.Set;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.MappingModel;

+import org.eclipse.app4mc.amalthea.model.PeriodicStimulus;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.app4mc.amalthea.model.Stimulus;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.Time;

+import org.eclipse.app4mc.amalthea.model.TimeUnit;

+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;

+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil;

+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType;

+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;

+import org.eclipse.app4mc.amalthea.model.util.TimeUtil;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of Main function in which scheduling is done. Specific to RMS

+ * Scheduler

+ *

+ *

+ */

+

+public class MainRMSFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * MainRMSFileCreation Constructor

+	 *

+	 * @param Model

+	 * @param srcPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	public MainRMSFileCreation(final Amalthea Model, final String srcPath, final int configFlag) throws IOException {

+		this.model = Model;

+		System.out.println("Main File Creation Begins");

+		fileCreate(this.model, srcPath, configFlag);

+		System.out.println("Main File Creation Ends");

+	}

+

+	/**

+	 * MainRMSFileCreation - File Creation

+	 *

+	 * @param model

+	 * @param srcPath

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	private static void fileCreate(final Amalthea model, final String srcPath, final int configFlag)

+			throws IOException {

+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();

+		int k = 0;

+		for (final SchedulerAllocation c : CoreNo) {

+			final ProcessingUnit pu = c.getResponsibility().get(0);

+			final Set<Task> tasks = DeploymentUtil.getTasksMappedToCore(pu, model);

+			final String fname = srcPath + File.separator + "main" + k + ".c";

+			final File f2 = new File(srcPath);

+			final File f1 = new File(fname);

+			f2.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			try {

+				fileUtil.fileMainHeader(f1);

+				mainFileHeader(f1);

+				if ((0x0100 == (0x0F00 & configFlag)) & (0x3000 == (0xF000 & configFlag))) {

+					headerIncludesMainRMS(f1, k);

+					mainTaskStimuli(model, f1, tasks);

+					mainTaskPriority(f1, tasks);

+					mainFucntionRMS(model, f1, tasks);

+					// SharedLabelDeclarationHead(f1, model);

+				}

+				else {

+					headerIncludesMainFreeRTOS(f1, k);

+					mainTaskStimuli(model, f1, tasks);

+					mainTaskPriority(f1, tasks);

+					mainFucntionFreeRTOS(model, f1, tasks);

+				}

+			}

+			finally {

+				try {

+					fw.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			k++;

+		}

+	}

+

+	/**

+	 * Main function in Main file of RMS specific scheduler

+	 *

+	 * @param model

+	 * @param file

+	 * @param tasks

+	 */

+	private static void mainFucntionRMS(final Amalthea model, final File file, final Set<Task> tasks) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("int main(void) \n{\n");

+			fw.write("\toutbuf_init();\n");

+			final List<Label> SharedLabelList = LabelFileCreation.SharedLabelFinder(model);

+			final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+			if (SharedLabelList.size() == 0) {

+				System.out.println("Shared Label size 0");

+			}

+			else {

+				final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+						.LabelTaskMap(model, SharedLabelList);

+				for (final Label share : SharedLabelList) {

+					final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+					final Collection<ProcessingUnit> puList = TaskMap.values();

+					final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+					if (puListUnique.size() > 1) {

+						SharedLabelListSortCore.add(share);

+					}

+				}

+			}

+

+			final HashMap<Label, String> SharedLabelTypeMap = new HashMap<Label, String>();

+			for (final Label share : SharedLabelListSortCore) {

+				SharedLabelTypeMap.put(share, share.getSize().toString());

+			}

+			final List<String> SharedTypeMapList = new ArrayList<>(

+					SharedLabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+			final List<Label> SharedLabelMapList = new ArrayList<Label>(SharedLabelTypeMap.keySet());

+			for (int k = 0; k < SharedTypeMapList.size(); k++) {

+				final List<Label> SharedLabel = new ArrayList<Label>();

+				final String sh = SharedTypeMapList.get(k);

+				for (final Label s : SharedLabelMapList) {

+					final String ShTy = SharedLabelTypeMap.get(s);

+					if (sh.equals(ShTy)) {

+						SharedLabel.add(s);

+					}

+				}

+				int SharedLabelCounter = SharedLabel.size();

+				if (SharedLabelCounter != 0) {

+					fw.write("\tshared_label_" + sh.toString().replace(" ", "") + "_init();\n");

+				}

+				SharedLabelCounter = 0;

+			}

+

+			for (final Task task : tasks) {

+				final MappingModel mappingModel = model.getMappingModel();

+				ProcessingUnit pu = null;

+				if (mappingModel != null) {

+					pu = DeploymentUtil.getAssignedCoreForProcess(task, model).iterator().next();

+					Time taskTime = RuntimeUtil.getExecutionTimeForProcess(task, pu, null, TimeType.WCET);

+					taskTime = TimeUtil.convertToTimeUnit(taskTime, TimeUnit.MS);

+					final BigInteger sleepTime = taskTime.getValue();

+					final BigInteger b2 = new BigInteger("1000");

+					final int comparevalue = sleepTime.compareTo(b2);

+					if (comparevalue < 0) {

+						fw.write("\tAmaltheaTask AmalTk_" + task.getName() + " = createAmaltheaTask( v" + task.getName()

+								+ ", cIN_" + task.getName() + ", cOUT_" + task.getName() + ", "

+								+ task.getStimuli().get(0).getName() + ", " + task.getStimuli().get(0).getName()

+								+ ", 1);\n");

+					}

+					else {

+						fw.write("\tAmaltheaTask AmalTk_" + task.getName() + " = createAmaltheaTask( v" + task.getName()

+								+ ", cIN_" + task.getName() + ", cOUT_" + task.getName() + ", "

+								+ task.getStimuli().get(0).getName() + ", " + task.getStimuli().get(0).getName() + ", "

+								+ sleepTime + ");\n");

+					}

+				}

+			}

+			for (final Task task : tasks) {

+				final Set<Label> taskLabel = SoftwareUtil.getAccessedLabelSet(task, null);

+				final List<Label> taskLabelList = new ArrayList<>(taskLabel);

+				final HashMap<Label, String> LabelTypeMap = new HashMap<Label, String>();

+				for (final Label tl : taskLabelList) {

+					LabelTypeMap.put(tl, tl.getSize().toString());

+				}

+				final List<String> TypeList = new ArrayList<>(

+						LabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+				final List<Label> LabelList = new ArrayList<>(

+						LabelTypeMap.keySet().stream().distinct().collect(Collectors.toList()));

+				fw.write("\tcreateRTOSTask( &AmalTk_" + task.getName() + ", main" + task.getName() + ", "

+						+ TypeList.size() + ",");

+				final List<Label> dataTypeList = new ArrayList<Label>();

+				int k = 0;

+				for (final String tl : TypeList) {

+					fw.write(fileUtil.datatypeSize(tl) + ", ");

+					for (final Label La : LabelList) {

+						if (LabelTypeMap.get(La).contains(tl) && (SharedLabelListSortCore.contains(La))) {

+							dataTypeList.add(La);

+						}

+					}

+					fw.write("" + dataTypeList.size() + "");

+					k++;

+					if (k < TypeList.size()) {

+						fw.write(", ");

+					}

+				}

+				fw.write(");\n");

+			}

+			fw.write("\tvTaskStartScheduler();\n");

+			fw.write("\t" + "return EXIT_SUCCESS;\n");

+			fw.write("}\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * Main function in Main file of RMS specific scheduler

+	 *

+	 * @param model

+	 * @param file

+	 * @param tasks

+	 */

+	private static void mainFucntionFreeRTOS(final Amalthea model, final File file, final Set<Task> tasks) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("int main(void) \n{\n");

+			fw.write("\toutbuf_init();\n");

+			final List<Label> SharedLabelList = LabelFileCreation.SharedLabelFinder(model);

+			final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+			if (SharedLabelList.size() == 0) {

+				System.out.println("Shared Label size 0");

+			}

+			else {

+				// System.out.println("Shared Label size

+				// "+SharedLabelList.size());

+				final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+						.LabelTaskMap(model, SharedLabelList);

+				for (final Label share : SharedLabelList) {

+					final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+					final Collection<ProcessingUnit> puList = TaskMap.values();

+					final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+					if (puListUnique.size() > 1) {

+						SharedLabelListSortCore.add(share);

+					}

+				}

+			}

+

+			final HashMap<Label, String> SharedLabelTypeMap = new HashMap<Label, String>();

+			for (final Label share : SharedLabelListSortCore) {

+				SharedLabelTypeMap.put(share, share.getSize().toString());

+			}

+			final List<String> SharedTypeMapList = new ArrayList<>(

+					SharedLabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+			final List<Label> SharedLabelMapList = new ArrayList<Label>(SharedLabelTypeMap.keySet());

+			for (int k = 0; k < SharedTypeMapList.size(); k++) {

+				final List<Label> SharedLabel = new ArrayList<Label>();

+				final String sh = SharedTypeMapList.get(k);

+				for (final Label s : SharedLabelMapList) {

+					final String ShTy = SharedLabelTypeMap.get(s);

+					if (sh.equals(ShTy)) {

+						SharedLabel.add(s);

+					}

+				}

+				int SharedLabelCounter = SharedLabel.size();

+				if (SharedLabelCounter != 0) {

+					fw.write("\tshared_label_" + sh.toString().replace(" ", "") + "_init();\n");

+					// fw.write("void shared_label_"+sh.toString().replace(" ",

+					// "")+"_init_core();\n");

+

+				}

+				SharedLabelCounter = 0;

+			}

+

+			for (final Task task : tasks) {

+				fw.write("\txTaskCreate( v" + task.getName() + " , \"" + task.getName()

+						+ "\", configMINIMAL_STACK_SIZE, &v" + task.getName() + ", main" + task.getName()

+						+ ", NULL);\n");

+			}

+			fw.write("\tvTaskStartScheduler();\n");

+			fw.write("\t" + "return EXIT_SUCCESS;\n");

+			fw.write("}\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * Title Card of MainRMSFileCreation

+	 *

+	 * @param file

+	 */

+	private static void mainFileHeader(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   C File for Tasks Call\n");

+			fw.write("*Description	:	Main file in which scheduling is done \n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * MainRMSFileCreation Header inclusion

+	 *

+	 * @param file

+	 */

+	private static void headerIncludesMainRMS(final File file, final int k) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n");

+			fw.write("#include <e_lib.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"FreeRTOS.h\"\n");

+			fw.write("#include \"task.h\"\n");

+			fw.write("#include \"queue.h\"\n");

+			fw.write("#include \"AmaltheaConverter.h\"\n");

+			fw.write("#include \"debugFlags.h\"\n");

+			fw.write("#include \"ParallellaUtils.h\"\n");

+			fw.write("#include \"taskDef" + k + ".h\"\n");

+			fw.write("#include \"shared_comms.h\"\n\n");

+			fw.write("#include \"label" + k + ".h\"\n");

+			// fw.write("#include \"c2c.h\"\n\n");

+			// fw.write("#define READ_PRECISION_US 1000\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * Assign Priority to task in RMS

+	 *

+	 * @param file

+	 * @param tasks

+	 */

+	private static void mainTaskPriority(final File file, final Set<Task> tasks) {

+		try {

+			final File fn = file;

+			final List<Task> localTaskPriority = new ArrayList<Task>();

+			localTaskPriority.addAll(tasks);

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* TaskPriorities. */\n");

+			final HashMap<Task, Long> periodMap = new HashMap<Task, Long>();

+			for (final Task task : tasks) {

+				final long period = fileUtil.getRecurrence(task).getValue().longValue();

+				periodMap.put(task, period);

+			}

+			final Map<Task, Long> periodMapSorted = fileUtil.sortByValue(periodMap);

+			// System.out.println("periodMapSorted Size "+

+			// periodMapSorted.size());

+			// for (int i=0;i<(periodMapSorted.size());i++) {

+			for (int i = (periodMapSorted.size()), k = 0; i > 0; i--, k++) {

+				final Task task = (Task) periodMapSorted.keySet().toArray()[k];

+				fw.write("\t#define main" + task.getName() + "\t( tskIDLE_PRIORITY +" + (i) + " )\n");

+			}

+			fw.write("\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * MainRMSFileCreation Header inclusion

+	 *

+	 * @param file

+	 */

+	private static void headerIncludesMainFreeRTOS(final File file, final int k) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n");

+			fw.write("#include <e_lib.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"FreeRTOS.h\"\n");

+			fw.write("#include \"task.h\"\n");

+			fw.write("#include \"queue.h\"\n");

+			fw.write("#include \"AmaltheaConverter.h\"\n");

+			fw.write("#include \"debugFlags.h\"\n");

+			fw.write("#include \"ParallellaUtils.h\"\n");

+			fw.write("#include \"taskDef" + k + ".h\"\n");

+			fw.write("#include \"shared_comms.h\"\n\n");

+			fw.write("#include \"label" + k + ".h\"\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * Macro for Stimuli in the model

+	 *

+	 * @param model

+	 * @param file

+	 * @param tasks

+	 */

+	private static void mainTaskStimuli(final Amalthea model, final File f1, final Set<Task> tasks) {

+		try {

+			final File fn = f1;

+

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* TaskStimuli. */\n");

+			final EList<Stimulus> Stimuli = model.getStimuliModel().getStimuli();

+			for (final Stimulus s : Stimuli) {

+				if (s instanceof PeriodicStimulus) {

+					fw.write("\t#define " + s.getName() + "\t" + ((PeriodicStimulus) s).getRecurrence().getValue()

+							+ " \n");

+				}

+			}

+			fw.write("\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MakeFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MakeFileCreation.java
new file mode 100644
index 0000000..a57b805
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/MakeFileCreation.java
@@ -0,0 +1,179 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of Main function in which scheduling is done.

+ *

+ *

+ */

+

+public class MakeFileCreation {

+	final private Amalthea model;

+

+	public MakeFileCreation(final Amalthea Model, final String path1, final int configFlag) throws IOException {

+		this.model = Model;

+		System.out.println("MAKEFILE Creation Begins");

+		fileCreate(this.model, path1, configFlag);

+		System.out.println("MAKEFILE Creation Ends");

+	}

+

+	private static void fileCreate(final Amalthea model, final String path1, final int configFlag) throws IOException {

+		model.getMappingModel().getTaskAllocation();

+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();

+		final String fname = path1 + File.separator + "Makefile";

+		final File f2 = new File(path1);

+		final File f1 = new File(fname);

+		f2.mkdirs();

+		try {

+			f1.createNewFile();

+		}

+		catch (final IOException e) {

+			e.printStackTrace();

+		}

+		final File fn = f1;

+		@SuppressWarnings("resource")

+		final FileWriter fw = new FileWriter(fn, true);

+		try {

+			// fileUtil.fileMainHeader(f1);

+			makeFileHeader(f1);

+			headerIncludesMainRMS(f1, CoreNo);

+		}

+		finally {

+			try {

+				fw.close();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+		}

+	}

+

+

+	private static void makeFileHeader(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("#******************************************************************\n");

+			fw.write("#*Title 		:   Makefile Setup\n");

+			fw.write("#*Description	:	Makefile Setup for the Scheduler \n");

+			fw.write("#******************************************************************\n");

+			fw.write("#******************************************************************\n");

+			fw.write("#******************************************************************\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void headerIncludesMainRMS(final File f1, final EList<SchedulerAllocation> coreNo) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("EPIPHANY_HOME=/opt/adapteva/esdk\n");

+			fw.write("#host compiler path\n");

+			fw.write("LCC=/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc\n");

+			fw.write("#device compiler path\n");

+			fw.write("CC=e-gcc\n");

+			fw.write("#FreeRTOS dependencies\n");

+			fw.write("CFLAGS=-I.\n");

+			fw.write("FREERTOSSRC=../../Source\n");

+			fw.write("INCLUDES= -g -I$(FREERTOSSRC)/include -I$(FREERTOSSRC)/portable/GCC/Epiphany -I.\n");

+			fw.write("DEPS = $(FREERTOSSRC)/portable/GCC/Epiphany/");

+			fw.write("portmacro.h ");

+			fw.write("Makefile ");

+			fw.write("FreeRTOSConfig.h ");

+			fw.write("debugFlags.h ");

+			fw.write("AmaltheaConverter.h ");

+			int coreIndex;

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("taskDef" + coreIndex + ".h ");

+			}

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("label" + coreIndex + ".h ");

+			}

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("runnable" + coreIndex + ".h ");

+			}

+			fw.write("ParallellaUtils.h \n");

+			fw.write("#Epiphany SDK dependencies\n");

+			fw.write("ESDK=${EPIPHANY_HOME} \n");

+			fw.write("ELIBS=${ESDK}/tools/host.armv7l/lib \n");

+			fw.write("EINCS=${ESDK}/tools/host.armv7l/include \n");

+			fw.write("ELDF=${ESDK}/bsps/current/fast.ldf \n");

+			fw.write("EHDF=${EPIPHANY_HDF} \n");

+			fw.write("#search paths for C source code files \n");

+			fw.write(

+					"vpath %.c .:$(FREERTOSSRC)/:$(FREERTOSSRC)/portable/MemMang:$(FREERTOSSRC)/portable/GCC/Epiphany:/ \n");

+			fw.write("#search path for assembly listings \n");

+			fw.write("vpath %.s $(FREERTOSSRC)/portable/GCC/Epiphany \n");

+			fw.write("#main target  \n");

+			fw.write("run: armcode ");

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("main" + coreIndex + ".elf ");

+			}

+			fw.write("\n	@echo build status : successful\n\n");

+			fw.write("#rule for every device target\n");

+			fw.write(

+					"%.elf: $(ELDF) tasks.o queue.o list.o port.o portasm.o heap_1.o c2c.o debugFlags.o AmaltheaConverter.o ");

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("taskDef" + coreIndex + ".o ");

+			}

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("label" + coreIndex + ".o ");

+			}

+			for (coreIndex = 0; coreIndex < coreNo.size(); coreIndex++) {

+				fw.write("runnable" + coreIndex + ".o ");

+			}

+

+			fw.write("ParallellaUtils.o shared_comms.o %.o  \n");

+			fw.write("	$(CC) -g -T$< -Wl,--gc-sections -o $@ $(filter-out $<,$^) -le-lib\n\n");

+			fw.write("#host target\n");

+			fw.write("armcode: armcode.c $(DEPS)\n");

+			fw.write("	$(LCC) $< -o $@  -I ${EINCS} -L ${ELIBS} -lpal -le-hal -le-loader -lpthread\n");

+			fw.write("#clean target\n");

+			fw.write("clean:\n");

+			fw.write("	rm -f *.o *.srec *.elf armcode\n\n");

+			fw.write(".SECONDARY:\n");

+			fw.write("%.o: %.c $(DEPS)\n");

+			fw.write("	$(CC) -fdata-sections -ffunction-sections  -c -o $@ $< $(INCLUDES)\n\n");

+			fw.write("%.o: %.s $(DEPS)\n");

+			fw.write("	$(CC) -c -o $@ $< $(INCLUDES)\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * helper function to get the Amalthea Model

+	 *

+	 */

+	public Amalthea getModel() {

+		return this.model;

+	}

+

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/RunFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/RunFileCreation.java
new file mode 100755
index 0000000..3d723f7
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/RunFileCreation.java
@@ -0,0 +1,375 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.Process;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
+import org.eclipse.app4mc.amalthea.model.Runnable;
+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.Time;
+import org.eclipse.app4mc.amalthea.model.TimeUnit;
+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;
+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil;
+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType;
+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;
+import org.eclipse.app4mc.amalthea.model.util.TimeUtil;
+import org.eclipse.app4mc.cdgen.utils.fileUtil;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * Implementation of Runnable Definition with Runnable specific delay.
+ *
+ *
+ */
+
+public class RunFileCreation {
+	final private Amalthea model;
+
+	/**
+	 * Constructor RunFileCreation
+	 *
+	 * @param Model
+	 *            Amalthea Model
+	 * @param srcPath
+	 * @param pthreadFlag
+	 * @throws IOException
+	 */
+	public RunFileCreation(final Amalthea Model, final String srcPath, final String path2, final int configFlag)
+			throws IOException {
+		this.model = Model;
+		System.out.println("Runnable File Creation Begins");
+		fileCreate(this.model, srcPath, path2, configFlag);
+		System.out.println("Runnable File Creation Ends");
+
+	}
+
+
+	/**
+	 * Runnable File Creation
+	 *
+	 * @param model
+	 * @param srcPath
+	 * @param path2
+	 * @param configFlag
+	 * @param tasks
+	 * @param runnables
+	 * @throws IOException
+	 */
+	private static void fileCreate(final Amalthea model, final String srcPath, final String path2, final int configFlag)
+			throws IOException {
+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();
+		int k = 0;
+		for (final SchedulerAllocation c : CoreNo) {
+			final ProcessingUnit pu = c.getResponsibility().get(0);
+			final Set<Task> task = DeploymentUtil.getTasksMappedToCore(pu, model);
+			final List<Task> tasks = new ArrayList<Task>(task);
+			final String fname = srcPath + File.separator + "runnable" + k + ".c";
+			final File f2 = new File(srcPath);
+			final File f1 = new File(fname);
+			f2.mkdirs();
+			try {
+				f1.createNewFile();
+			}
+			catch (final IOException e) {
+				e.printStackTrace();
+			}
+
+			final File fn = f1;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			try {
+				if (0x2000 == (configFlag & 0xF000)) {
+					fileUtil.fileMainHeader(f1);
+					runFileHeader(f1);
+					headerIncludesRun(f1, k);
+					runnablePthreadDefinition(f1, tasks, model);
+				}
+				else {
+					fileUtil.fileMainHeader(f1);
+					runFileHeader(f1);
+					headerIncludesRun(f1, k);
+					runnableDefinition(f1, tasks, model);
+				}
+
+			}
+			finally {
+				try {
+					fw.close();
+				}
+				catch (final IOException e) {
+					e.printStackTrace();
+				}
+			}
+			final String fname2 = srcPath + File.separator + "runnable" + k + ".h";
+			final File f4 = new File(srcPath);
+			final File f3 = new File(fname2);
+			f4.mkdirs();
+			try {
+				f1.createNewFile();
+			}
+			catch (final IOException e) {
+				e.printStackTrace();
+			}
+
+			final File fn1 = f3;
+			@SuppressWarnings("resource")
+			final FileWriter fw1 = new FileWriter(fn1, true);
+			try {
+				if (0x2000 == (configFlag & 0xF000)) {
+					fileUtil.fileMainHeader(f3);
+					runFileHeader(f3);
+					headerIncludesRunPthreadHead(f3);
+					runnableDeclaration(f3, tasks);
+				}
+				else {
+					fileUtil.fileMainHeader(f3);
+					runFileHeader(f3);
+					headerIncludesRunHead(f3);
+					runnableDeclaration(f3, tasks);
+				}
+
+			}
+			finally {
+				try {
+					fw1.close();
+				}
+				catch (final IOException e) {
+					e.printStackTrace();
+				}
+			}
+			k++;
+		}
+	}
+
+	/**
+	 * Title Card for RunFileCreation
+	 *
+	 * @param file
+	 */
+	private static void runFileHeader(final File file) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("*Title 		:   Runnable Header\n");
+			fw.write("*Description	:	Runnable Definition with Runnable delay\n");
+			fw.write("******************************************************************\n");
+			fw.write("******************************************************************/\n\n\n");
+
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * Header inclusion for the Runnable.c file
+	 *
+	 * @param file
+	 */
+	private static void headerIncludesRun(final File file, final int k) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("/* Standard includes. */\n");
+			fw.write("#include <stdio.h>\n");
+			fw.write("#include <stdlib.h>\n");
+			fw.write("#include <string.h>\n\n");
+			fw.write("/* Scheduler includes. */\n");
+			fw.write("#include \"runnable" + k + ".h\"\n");
+
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * RunFileCreation - Header inclusion for runnable.h
+	 *
+	 * @param file
+	 */
+	private static void headerIncludesRunHead(final File file) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("/* Standard includes. */\n");
+			fw.write("#include <stdio.h>\n");
+			fw.write("#include <stdlib.h>\n");
+			fw.write("#include <string.h>\n\n");
+			fw.write("/* Scheduler includes. */\n");
+			// fw.write("#include \"runnable.h\"\n\n");
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * RunFileCreation - Header inclusion for runnable.h pthread specific
+	 *
+	 * @param file
+	 */
+	private static void headerIncludesRunPthreadHead(final File file) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			fw.write("/* Standard includes. */\n");
+			fw.write("#include <stdio.h>\n");
+			fw.write("#include <stdlib.h>\n");
+			fw.write("#include <string.h>\n\n");
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+	}
+
+	/**
+	 * RunFileCreation - Runnable Definition Pthread specific
+	 *
+	 * @param file
+	 * @param tasks
+	 * @param model
+	 */
+	private static void runnablePthreadDefinition(final File file, final List<Task> tasks, final Amalthea model) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			// int taskCounter =1;
+			for (final Task t : tasks) {
+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(t, null);
+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());
+				// int runnableCounter =1;
+				for (final Runnable Run : runnablesOfTask) {
+					fw.write("void " + Run.getName() + " (void)\t{\n");
+					/*
+					 * fw.write("\tvDisplayMessagePthread(\" " + t.getName() +
+					 * " \tRunnable Execution	" + "\t" + Run.getName() +
+					 * "\\n\");\n");
+					 */
+					final Process RunTaskName = SoftwareUtil.getCallingProcesses(Run, null).get(0);
+					final Set<ProcessingUnit> pu = DeploymentUtil.getAssignedCoreForProcess(RunTaskName, model);
+					if (pu != null) {
+						for (final ProcessingUnit p : pu) {
+							Time RunTime1 = RuntimeUtil.getExecutionTimeForRunnable(Run, p, null, TimeType.WCET);
+							RunTime1 = TimeUtil.convertToTimeUnit(RunTime1, TimeUnit.US);
+
+							final double sleepTime = RunTime1.getValue().doubleValue();
+
+							fw.write("\tusleep(" + sleepTime + ");\n");
+							break;
+						}
+					}
+					fw.write("}\n");
+					// runnableCounter++;
+				}
+				// taskCounter++;
+			}
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+	}
+
+	/**
+	 * Runnable Definition(Generic)
+	 *
+	 * @param file
+	 * @param tasks
+	 * @param model
+	 */
+	private static void runnableDefinition(final File file, final List<Task> tasks, final Amalthea model) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			for (final Task t : tasks) {
+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(t, null);
+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());
+				for (final Runnable Run : runnablesOfTask) {
+					fw.write("void " + Run.getName() + " \t(void)\t{\n");
+					final Process RunTaskName = SoftwareUtil.getCallingProcesses(Run, null).get(0);
+					final Set<ProcessingUnit> pu = DeploymentUtil.getAssignedCoreForProcess(RunTaskName, model);
+					for (final ProcessingUnit p : pu) {
+						Time RunTime1 = RuntimeUtil.getExecutionTimeForRunnable(Run, p, null, TimeType.WCET);
+						RunTime1 = TimeUtil.convertToTimeUnit(RunTime1, TimeUnit.US);
+						break;
+					}
+					fw.write("}\n");
+				}
+			}
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * Runnable Declaration in runnable.h
+	 *
+	 * @param file
+	 * @param runnables
+	 */
+	private static void runnableDeclaration(final File file, final List<Task> tasks) {
+		try {
+			final File fn = file;
+			@SuppressWarnings("resource")
+			final FileWriter fw = new FileWriter(fn, true);
+			final List<Runnable> runnables = new ArrayList<Runnable>();
+			for (final Task ta : tasks) {
+				runnables.addAll(SoftwareUtil.getRunnableList(ta, null));
+			}
+			for (final Runnable Run : runnables) {
+				fw.write("void " + Run.getName() + " (void);\n");
+			}
+			fw.close();
+		}
+		catch (final IOException ioe) {
+			System.err.println("IOException: " + ioe.getMessage());
+		}
+
+	}
+
+	/**
+	 * helper function to get the Amalthea Model
+	 *
+	 */
+	public Amalthea getModel() {
+		return this.model;
+	}
+
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/SharedLabelsFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/SharedLabelsFileCreation.java
new file mode 100644
index 0000000..a991ec3
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/SharedLabelsFileCreation.java
@@ -0,0 +1,367 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.List;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Declaration of Labels with initial values .

+ *

+ *

+ */

+

+/**

+ * @author rpras

+ *

+ */

+public class SharedLabelsFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * Constructor LabelFileCreation

+	 *

+	 * @param Model

+	 *            Amalthea Model

+	 * @param srcPath

+	 * @throws IOException

+	 */

+	public SharedLabelsFileCreation(final Amalthea Model, final String srcPath) throws IOException {

+		this.model = Model;

+		System.out.println("Shared Label File Creation Begins");

+		fileCreate(this.model, srcPath);

+		System.out.println("Shared Label File Creation Ends");

+	}

+

+	/**

+	 * FileCreation LabelFileCreation

+	 *

+	 * @param model

+	 * @param srcPath

+	 * @throws IOException

+	 */

+	private static void fileCreate(final Amalthea model, final String srcPath) throws IOException {

+		final EList<Label> labellist = model.getSwModel().getLabels();

+		final String fname1 = srcPath + File.separator + "shared_comms.c";

+		final String fname2 = srcPath + File.separator + "shared_comms.h";

+		final File f2 = new File(srcPath);

+		final File f1 = new File(fname1);

+		final File f3 = new File(fname2);

+		f2.mkdirs();

+		try {

+			f1.createNewFile();

+		}

+		catch (final IOException e) {

+			e.printStackTrace();

+		}

+

+		final File fn1 = f1;

+		@SuppressWarnings("resource")

+		final FileWriter fw = new FileWriter(fn1, true);

+		try {

+			fileUtil.fileMainHeader(f1);

+			sharedLabelFileHeader(f1);

+			headerIncludesSharedLabel(f1);

+			SharedLabelDeclaration(f1, model, labellist);

+		}

+		finally {

+			try {

+				fw.close();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+		}

+		try {

+			fileUtil.fileMainHeader(f3);

+			sharedLabelFileHeaderHead(f3);

+			headerIncludesSharedLabelHead(f3);

+			SharedLabelDeclarationHead(f3, model, labellist);

+		}

+		finally {

+			try {

+				fw.close();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+		}

+	}

+

+	/**

+	 * Title card - LabelFileCreation

+	 *

+	 * @param file

+	 */

+	private static void sharedLabelFileHeader(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   Shared Label Declaration\n");

+			fw.write("*Description	:	Declaration and Initialisation of Shared Label\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * Title card - LabelFileCreation

+	 *

+	 * @param file

+	 */

+	private static void sharedLabelFileHeaderHead(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   Shared Label Declaration\n");

+			fw.write("*Description	:	Header file for Declaration and Initialisation of Shared Label\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * Header inclusion - LabelFileCreation

+	 *

+	 * @param file

+	 */

+	private static void headerIncludesSharedLabelHead(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("#ifndef DEMO_PARALLELLA_SHARED_COMMS_H_\n");

+			fw.write("#define DEMO_PARALLELLA_SHARED_COMMS_H_\n\n");

+

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <stdint.h>\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * Header inclusion - LabelFileCreation

+	 *

+	 * @param file

+	 */

+	private static void headerIncludesSharedLabel(final File file) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include \"shared_comms.h\"\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param file

+	 * @param labellist

+	 */

+	private static void SharedLabelDeclaration(final File file, final Amalthea model, final EList<Label> labellist) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final List<Label> SharedLabelList = LabelFileCreation.SharedLabelFinder(model);

+			final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+			if (SharedLabelList.size() == 0) {

+				// System.out.println("Shared Label size 0");

+			}

+			else {

+				// System.out.println("Shared Label size

+				// "+SharedLabelList.size());

+				final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+						.LabelTaskMap(model, SharedLabelList);

+				for (final Label share : SharedLabelList) {

+					final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+					final Collection<ProcessingUnit> puList = TaskMap.values();

+					final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+					if (puListUnique.size() > 1) {

+						SharedLabelListSortCore.add(share);

+					}

+				}

+			}

+

+			final HashMap<Label, String> SharedLabelTypeMap = new HashMap<Label, String>();

+			for (final Label share : SharedLabelListSortCore) {

+				SharedLabelTypeMap.put(share, share.getSize().toString());

+			}

+			final List<String> SharedTypeMapList = new ArrayList<>(

+					SharedLabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+			final List<Label> SharedLabelMapList = new ArrayList<Label>(SharedLabelTypeMap.keySet());

+			for (int k = 0; k < SharedTypeMapList.size(); k++) {

+				final List<Label> SharedLabel = new ArrayList<Label>();

+				final String sh = SharedTypeMapList.get(k);

+				for (final Label s : SharedLabelMapList) {

+					final String ShTy = SharedLabelTypeMap.get(s);

+					if (sh.equals(ShTy)) {

+						SharedLabel.add(s);

+					}

+				}

+				int SharedLabelCounter = SharedLabel.size();

+				if (SharedLabelCounter != 0) {

+

+

+					fw.write(fileUtil.datatype(sh.toString()) + " 	*outbuf_shared" + sh.toString().replace(" ", "")

+							+ "[" + SharedLabelCounter + "];\n\n");

+					fw.write("void shared_label_" + sh.toString().replace(" ", "") + "_init(){\n");

+					fw.write("\toutbuf_shared" + sh.toString().replace(" ", "") + "[0] = ("

+							+ fileUtil.datatype(sh.toString()) + " *) shared_mem_section"

+							+ sh.toString().replace(" ", "") + ";\n");

+					for (int i = 1; i < SharedLabelCounter; i++) {

+						fw.write("\toutbuf_shared" + sh.toString().replace(" ", "") + "[" + i + "]=outbuf_shared"

+								+ sh.toString().replace(" ", "") + "[" + i + "] + 1;\n");

+					}

+					fw.write("\tfor (int i=0;i<" + SharedLabelCounter + ";i++){\n");

+					fw.write("\t\t*outbuf_shared" + sh.toString().replace(" ", "") + "[i] =0;\n");

+					fw.write("\t}\n");

+					fw.write("}\n\n");

+					fw.write("void shared_label_" + sh.toString().replace(" ", "")

+							+ "_write(int label_indx,int payload){\n");

+					// fw.write("\t"+fileUtil.datatype(sh.toString())+"

+					// retval=NULL;\n");

+					fw.write("\t*outbuf_shared" + sh.toString().replace(" ", "") + "[label_indx] = payload;\n");

+					// fw.write("\treturn retval;\n\n");

+					fw.write("}\n\n");

+					fw.write("" + fileUtil.datatype(sh.toString()) + " shared_label_" + sh.toString().replace(" ", "")

+							+ "_read(int label_indx){\n");

+					fw.write("\treturn *outbuf_shared" + sh.toString().replace(" ", "") + "[label_indx];\n");

+					fw.write("}\n\n");

+				}

+				SharedLabelCounter = 0;

+			}

+			fw.write("\n\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param file

+	 * @param labellist

+	 */

+	private static void SharedLabelDeclarationHead(final File file, final Amalthea model,

+			final EList<Label> labellist) {

+		try {

+			final File fn = file;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final List<Label> SharedLabelList = LabelFileCreation.SharedLabelFinder(model);

+			final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+			if (SharedLabelList.size() == 0) {

+				System.out.println("Shared Label size 0");

+			}

+			else {

+				// System.out.println("Shared Label size

+				// "+SharedLabelList.size());

+				final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+						.LabelTaskMap(model, SharedLabelList);

+				for (final Label share : SharedLabelList) {

+					final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+					final Collection<ProcessingUnit> puList = TaskMap.values();

+					final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+					if (puListUnique.size() > 1) {

+						SharedLabelListSortCore.add(share);

+					}

+				}

+			}

+

+			final HashMap<Label, String> SharedLabelTypeMap = new HashMap<Label, String>();

+			for (final Label share : SharedLabelListSortCore) {

+				SharedLabelTypeMap.put(share, share.getSize().toString());

+			}

+			final List<String> SharedTypeMapList = new ArrayList<>(

+					SharedLabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+			final List<Label> SharedLabelMapList = new ArrayList<Label>(SharedLabelTypeMap.keySet());

+			for (int k = 0; k < SharedTypeMapList.size(); k++) {

+				final List<Label> SharedLabel = new ArrayList<Label>();

+				final String sh = SharedTypeMapList.get(k);

+				for (final Label s : SharedLabelMapList) {

+					final String ShTy = SharedLabelTypeMap.get(s);

+					if (sh.equals(ShTy)) {

+						SharedLabel.add(s);

+					}

+				}

+				int SharedLabelCounter = SharedLabel.size();

+				if (SharedLabelCounter != 0) {

+					fw.write("\n#define shared_mem_section" + sh.toString().replace(" ", "") + "	0x0" + (k + 1)

+							+ "000000\n\n");

+					fw.write("void shared_label_" + sh.toString().replace(" ", "") + "_init();\n");

+					fw.write("void shared_label_" + sh.toString().replace(" ", "")

+							+ "_write(int label_indx,int payload);\n");

+					fw.write("" + fileUtil.datatype(sh.toString()) + " shared_label_" + sh.toString().replace(" ", "")

+							+ "_read(int label_indx);\n");

+				}

+				SharedLabelCounter = 0;

+			}

+			fw.write("\n\n");

+			fw.write("#endif");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	/**

+	 * helper function to get the Amalthea Model

+	 *

+	 */

+	public Amalthea getModel() {

+		return this.model;

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/TaskFileCreation.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/TaskFileCreation.java
new file mode 100755
index 0000000..96d2815
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/TaskFileCreation.java
@@ -0,0 +1,683 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.math.BigInteger;

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Set;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.MappingModel;

+import org.eclipse.app4mc.amalthea.model.PeriodicStimulus;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.app4mc.amalthea.model.Stimulus;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.Time;

+import org.eclipse.app4mc.amalthea.model.TimeUnit;

+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;

+import org.eclipse.app4mc.amalthea.model.util.HardwareUtil;

+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil;

+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType;

+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;

+import org.eclipse.app4mc.amalthea.model.util.TimeUtil;

+import org.eclipse.app4mc.cdgen.utils.fileUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of Task Definition with Cin and Cout Calls.

+ *

+ *

+ */

+

+public class TaskFileCreation {

+	final private Amalthea model;

+

+	/**

+	 * Constructor TaskFileCreation

+	 *

+	 * @param Model

+	 *            - Amalthea Model

+	 * @param srcPath

+	 * @param pthreadFlag

+	 * @param preemptionFlag

+	 * @throws IOException

+	 */

+	public TaskFileCreation(final Amalthea Model, final String srcPath, final String path2, final int configFlag)

+			throws IOException {

+		this.model = Model;

+

+		if ((0x3100 == (0xFF00 & configFlag)) || (0x1300 == (0xFF00 & configFlag))) {

+			System.out.println("Task File Creation Begins");

+			fileCreate(this.model, srcPath, path2, configFlag);

+			System.out.println("Task File Creation Ends");

+		}

+		else {

+			System.out.println("Task File Creation Begins");

+			fileCreatePthread(this.model, srcPath, path2, configFlag);

+			System.out.println("Task File Creation Ends");

+		}

+

+	}

+

+

+	private static void fileCreate(final Amalthea model, final String srcPath, final String path2, final int configFlag)

+			throws IOException {

+		boolean preemptionFlag = false;

+		if (0x0020 == (0x00F0 & configFlag)) {

+			preemptionFlag = true;

+		}

+		else {

+			preemptionFlag = false;

+		}

+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();

+		int k = 0;

+		for (final SchedulerAllocation c : CoreNo) {

+			final ProcessingUnit pu = c.getResponsibility().get(0);

+			final Set<Task> task = DeploymentUtil.getTasksMappedToCore(pu, model);

+			final List<Task> tasks = new ArrayList<Task>(task);

+			final String fname = srcPath + File.separator + "taskDef" + k + ".c";

+			final File f2 = new File(srcPath);

+			final File f1 = new File(fname);

+			f2.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			try {

+				fileUtil.fileMainHeader(f1);

+				taskFileHeader(f1);

+				if ((0x3000 == (0xF000 & configFlag)) & (0x0100 == (0x0F00 & configFlag))) {

+					headerIncludesTaskHeadRMS(f1, k);

+					TaskCounter(f1, tasks);

+					TaskDefinitionRMS(f1, model, tasks, preemptionFlag);

+				}

+				else if ((0x1000 == (0xF000 & configFlag)) & (0x0300 == (0x0F00 & configFlag))) {

+					headerIncludesTaskHeadRMS(f1, k);

+					TaskCounter(f1, tasks);

+					TaskDefinitionFreeRTOS(f1, model, tasks, preemptionFlag);

+				}

+			}

+			finally {

+				try {

+					fw.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			final String fname2 = srcPath + File.separator + "taskDef" + k + ".h";

+			final File f4 = new File(srcPath);

+			final File f3 = new File(fname2);

+			f4.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+

+			final File fn1 = f3;

+			@SuppressWarnings("resource")

+			final FileWriter fw1 = new FileWriter(fn1, true);

+			try {

+				fileUtil.fileMainHeader(f3);

+				taskFileHeader(f3);

+				headerIncludesTaskRMSHead(f3, k);

+				mainStaticTaskDef(f3, tasks);

+

+			}

+			finally {

+				try {

+					fw1.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			k++;

+		}

+	}

+

+

+	private static void TaskCounter(final File f3, final List<Task> tasks) {

+		try {

+			final File fn = f3;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true); // the true will

+															// append the new

+															// data

+			fw.write("/* Task Counter Declaration. */\n");

+			for (final Task ta : tasks) {

+				fw.write("int taskCount" + ta.getName() + "\t=\t0;\n");

+			}

+			fw.write("\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+

+	private static void fileCreatePthread(final Amalthea model, final String path1, final String path2,

+			final int configFlag) throws IOException {

+		boolean preemptionFlag = false;

+		if (0x0020 == (0x00F0 & configFlag)) {

+			preemptionFlag = true;

+		}

+		else {

+			preemptionFlag = false;

+		}

+		final EList<SchedulerAllocation> CoreNo = model.getMappingModel().getSchedulerAllocation();

+		int k = 0;

+		for (final SchedulerAllocation c : CoreNo) {

+			final ProcessingUnit pu = c.getResponsibility().get(0);

+			final Set<Task> task = DeploymentUtil.getTasksMappedToCore(pu, model);

+			final List<Task> tasks = new ArrayList<Task>(task);

+			final String fname = path1 + File.separator + "taskDef" + k + ".c";

+			final File f2 = new File(path1);

+			final File f1 = new File(fname);

+			f2.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			try {

+				fileUtil.fileMainHeader(f1);

+				taskFileHeader(f1);

+				headerIncludesTaskPthreadHead(f1);

+				TaskDefinitionPthread(f1, tasks, model, preemptionFlag);

+			}

+			finally {

+				try {

+					fw.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			final String fname2 = path1 + File.separator + "taskDef" + k + ".h";

+			final File f4 = new File(path1);

+			final File f3 = new File(fname2);

+			f4.mkdirs();

+			try {

+				f1.createNewFile();

+			}

+			catch (final IOException e) {

+				e.printStackTrace();

+			}

+			final File fn1 = f3;

+			@SuppressWarnings("resource")

+			final FileWriter fw1 = new FileWriter(fn1, true);

+			try {

+				fileUtil.fileMainHeader(f3);

+				taskFileHeader(f3);

+				headerIncludesPthreadTask(f3, k);

+				mainStaticTaskPthreadDef(f3, tasks);

+			}

+			finally {

+				try {

+					fw1.close();

+				}

+				catch (final IOException e) {

+					e.printStackTrace();

+				}

+			}

+			k++;

+		}

+	}

+

+	private static void headerIncludesPthreadTask(final File f3, final int k) {

+		try {

+			final File fn = f3;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true); // the true will

+															// append the new

+															// data

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n\n");

+			fw.write("#include <stdint.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"runnable" + k + ".h\"\n");

+			fw.write("#include \"label" + k + ".h\"\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+

+	private static void mainStaticTaskPthreadDef(final File f3, final List<Task> tasks) {

+		try {

+			final File fn = f3;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Static definition of the tasks. */\n");

+			for (final Task task : tasks) {

+				fw.write("void v" + task.getName() + "( void *t );\n");

+			}

+			fw.write("\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+

+	private static void TaskDefinitionPthread(final File f1, final List<Task> tasks, final Amalthea model,

+			final boolean preemptionFlag) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			for (final Task task : tasks) {

+				final List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);

+				final ArrayList<Label> labellist1 = new ArrayList<Label>();

+				for (final Runnable run : runnablesOfTask) {

+					final Set<Label> labellist = SoftwareUtil.getAccessedLabelSet(run, null);

+					labellist1.addAll(labellist);

+				}

+				final List<Label> listWithoutDuplicates2 = labellist1.stream().distinct().collect(Collectors.toList());

+				for (final Label lab : listWithoutDuplicates2) {

+					final String type = fileUtil.datatype(lab.getSize().toString());

+					fw.write("\t\textern\t" + type + "\t" + lab.getName() + ";\n");

+				}

+				fw.write("\n\n\n");

+				for (final Label lab : listWithoutDuplicates2) {

+					final String type = fileUtil.datatype(lab.getSize().toString());

+					fw.write("\t\textern\t" + type + "\t" + lab.getName() + "_" + task.getName() + ";\n");

+				}

+				fw.write("\n\n\n");

+

+				fw.write("\n\tvoid cIN_" + task.getName() + "()\n\t{\n");

+				for (final Label lab : listWithoutDuplicates2) {

+					fw.write("\t\t" + lab.getName() + "_" + task.getName() + "\t=\t" + lab.getName() + ";\n");

+				}

+				fw.write("\t}\n");

+				fw.write("\n\tvoid cOUT_" + task.getName() + "()\n\t{\n");

+				final ArrayList<Label> labellist2 = new ArrayList<Label>();

+				for (final Runnable run : runnablesOfTask) {

+					final Set<Label> labellist = SoftwareUtil.getWriteLabelSet(run, null);

+					labellist2.addAll(labellist);

+				}

+				final List<Label> listWithoutDuplicates1 = labellist2.stream().distinct().collect(Collectors.toList());

+

+				for (final Label lab : listWithoutDuplicates1) {

+					fw.write("\t\t" + lab.getName() + "\t=\t" + lab.getName() + "_" + task.getName() + ";\n");

+				}

+				fw.write("\t}\n");

+				fw.write("\n\tvoid v" + task.getName() + "( void *t )" + "\n\t{\n");

+				final MappingModel mappingModel = model.getMappingModel();

+				if (mappingModel != null) {

+					final List<ProcessingUnit> processingUnits = HardwareUtil

+							.getModulesFromHwModel(ProcessingUnit.class, model);

+					final ArrayList<ProcessingUnit> localPU = new ArrayList<ProcessingUnit>();

+					localPU.addAll(processingUnits);

+

+					final HashMap<ProcessingUnit, Long> CoreMap = new HashMap<ProcessingUnit, Long>();

+					long count = 0;

+					for (final ProcessingUnit p : localPU) {

+						CoreMap.put(p, count);

+						count++;

+					}

+					final ProcessingUnit pu = DeploymentUtil.getAssignedCoreForProcess(task, model).iterator().next();

+					final Long coreID = CoreMap.get(pu);

+					fw.write("\t\tcpu_set_t cpuset;\n");

+					fw.write("\t\tint cpu = " + coreID + ";\n");

+					fw.write("\t\tCPU_ZERO(&cpuset);\n");

+					fw.write("\t\tCPU_SET( cpu , &cpuset);\n");

+					final Set<ProcessingUnit> procUniSet = DeploymentUtil.getAssignedCoreForProcess(task, model);

+					List<ProcessingUnit> procUniList = null;

+					if (procUniSet != null) {

+						procUniList = new ArrayList<ProcessingUnit>(procUniSet);

+					}

+					if (procUniList != null) {

+						procUniList.get(0);

+					}

+					fw.write("\t\tsched_setaffinity(0, sizeof(cpuset), &cpuset);\n\n");

+				}

+				fw.write("\t\tfor( ;; )\n\t\t{\n");

+				fw.write("\t\t\tsuspendMe ();\n");

+				fw.write("\t\tprint_affinity();\n");

+				fw.write("\t\t\tvDisplayMessagePthread( \"" + task.getName() + " is running\\r\\n\" );\n");

+				fw.write("\t\t\t/* Cin - Create local variables and copy the actual variable to them */\n");

+				fw.write("\t\t\tcIN_" + task.getName() + "();\n");

+				if (preemptionFlag == true) {

+					fw.write("\t\t\tresumeMe ();\n");

+				}

+				fw.write("\n\t\t\t/*Runnable calls */\n");

+				for (final Runnable run : runnablesOfTask) {

+					fw.write("\t\t\t" + run.getName() + "();\n");

+				}

+				fw.write("\n\t\t\t/* Cout - Write back the local variables back to the actual variables */\n");

+				if (preemptionFlag == true) {

+					fw.write("\t\t\tsuspendMe ();\n");

+				}

+				fw.write("\t\t\tcOUT_" + task.getName() + "();\n");

+				fw.write("\t\t\tresumeMe ();\n");

+				fw.write("\t\t\tsleepTimerMs(DELAY_MULT*NULL);\n");

+				fw.write("\t\t\tpthread_exit((void*) t);\n");

+				final Time tasktime = fileUtil.getRecurrence(task);

+				if (tasktime != null) {

+					// TimeUtil.getAsTimeUnit(fileUtil.getRecurrence(task),

+					// null);

+

+				}

+				fw.write("\t\t}\n");

+				fw.write("\t}\n\n");

+			}

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void taskFileHeader(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   Task Definition\n");

+			fw.write("*Description	:	Task Definition with Task Structure\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void headerIncludesTaskPthreadHead(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("#define _GNU_SOURCE\n\n");

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n");

+			fw.write("#include <pthread.h>\n");

+			fw.write("#include <sched.h>\n");

+			fw.write("#include <stdint.h>\n\n");

+

+			// fw.write("#define DELAY_MULT 100\n\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void headerIncludesTaskRMSHead(final File f1, final int k) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Standard includes. */\n");

+			fw.write("#include <stdio.h>\n");

+			fw.write("#include <stdlib.h>\n");

+			fw.write("#include <string.h>\n");

+			fw.write("#include <stdint.h>\n\n");

+			fw.write("/* Scheduler includes. */\n");

+			fw.write("#include \"FreeRTOS.h\"\n");

+			fw.write("#include \"queue.h\"\n");

+			fw.write("#include \"croutine.h\"\n");

+			fw.write("#include \"debugFlags.h\"\n");

+			fw.write("#include \"task.h\"\n");

+			fw.write("#include \"ParallellaUtils.h\"\n");

+			fw.write("#include \"label" + k + ".h\"\n");

+			fw.write("#include \"runnable" + k + ".h\"\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void headerIncludesTaskHeadRMS(final File f1, final int k) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("#include \"taskDef" + k + ".h\"\n\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	public static void mainStaticTaskDef(final File f1, final List<Task> tasks) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("/* Static definition of the tasks. */\n");

+			for (final Task task : tasks) {

+				fw.write("void v" + task.getName() + "( );\n");

+			}

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	public static HashMap<Task, Integer> TaskIndexMapping(final Amalthea model) {

+		final EList<Task> tasks = model.getSwModel().getTasks();

+		final HashMap<Task, Integer> TaskMapping = new HashMap<Task, Integer>();

+		int i = 0;

+		for (final Task Ta : tasks) {

+			TaskMapping.put(Ta, i);

+			i++;

+		}

+		return TaskMapping;

+	}

+

+

+	private static void TaskDefinitionRMS(final File f1, final Amalthea model, final List<Task> tasks,

+			final boolean preemptionFlag) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final HashMap<Task, Integer> taskIndex = TaskIndexMapping(model);

+			for (final Task task : tasks) {

+				final Integer taskCount = taskIndex.get(task);

+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);

+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());

+				fw.write("\n");

+				final List<Label> taskLabelList = TaskSpecificLabel(model, task);

+				for (final Label lab : taskLabelList) {

+					final String type = fileUtil.datatype(lab.getSize().toString());

+					fw.write("\t" + type + "\t" + lab.getName() + ";\n");

+				}

+				fw.write("\n");

+				fw.write("\n\n");

+				fw.write("\n\tvoid v" + task.getName() + "()" + "\n\t{\n");

+

+				// fw.write("\n\n");

+				fw.write("\t\tupdateDebugFlag(700);\n");

+				fw.write("\t\ttraceTaskPasses(1,1);\n");

+				fw.write("\n\t\t\t/*Runnable calls */\n");

+				for (final Runnable run : runnablesOfTask) {

+					fw.write("\t\t\t" + run.getName() + "();\n");

+				}

+				final MappingModel mappingModel = model.getMappingModel();

+				ProcessingUnit pu = null;

+				if (mappingModel != null) {

+					pu = DeploymentUtil.getAssignedCoreForProcess(task, model).iterator().next();

+					Time taskTime = RuntimeUtil.getExecutionTimeForProcess(task, pu, null, TimeType.WCET);

+					taskTime = TimeUtil.convertToTimeUnit(taskTime, TimeUnit.MS);

+					final BigInteger sleepTime = taskTime.getValue();

+					final BigInteger b2 = new BigInteger("1000");

+					final int comparevalue = sleepTime.compareTo(b2);

+					if (comparevalue < 0) {

+						fw.write("\n\t\t\tsleepTimerMs(1 , 1" + (taskCount + 1) + ");\n");

+					}

+					else {

+						fw.write("\n\t\t\tsleepTimerMs(" + sleepTime + ", " + taskCount + 1 + ");\n");

+					}

+

+				}

+				fw.write("\n\t\t\ttaskCount" + task.getName() + "++;");

+				fw.write("\n\t\t\ttraceTaskPasses(" + taskCount + ", taskCount" + task.getName() + ");");

+				fw.write("\n\t\t\ttraceRunningTask(0);\n");

+				fw.write("\t}\n\n");

+			}

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	private static void TaskDefinitionFreeRTOS(final File f1, final Amalthea model, final List<Task> tasks,

+			final boolean preemptionFlag) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			final HashMap<Task, Integer> taskIndex = TaskIndexMapping(model);

+			for (final Task task : tasks) {

+				Integer taskCount = taskIndex.get(task);

+				List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);

+				runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());

+				final List<Label> taskLabelList = TaskSpecificLabel(model, task);

+				fw.write("\n");

+				for (final Label lab : taskLabelList) {

+					final String type = fileUtil.datatype(lab.getSize().toString());

+					fw.write("\t\t" + type + "\t" + lab.getName() + ";\n");

+				}

+				fw.write("\n");

+				fw.write("\n\tvoid v" + task.getName() + "()" + "\n\t{\n");

+				fw.write("\tportTickType xLastWakeTime=xTaskGetTickCount();\n");

+				fw.write("\n\t\tfor( ;; )\n\t\t{\n");

+				fw.write("\t\tupdateDebugFlag(700);\n");

+				fw.write("\t\ttraceTaskPasses(1,1);\n");

+				fw.write("\t\t\t/* Cin - Create local variables and copy the actual variable to them */\n");

+				fw.write("\t\t\ttaskENTER_CRITICAL ();\n");

+				fw.write("\t\t\tcIN_" + task.getName() + "();\n");

+				fw.write("\t\t\ttaskEXIT_CRITICAL ();\n");

+				fw.write("\n\t\t\t/*Runnable calls */\n");

+				for (final Runnable run : runnablesOfTask) {

+					fw.write("\t\t\t" + run.getName() + "();\n");

+				}

+				fw.write("\n\t\t\t/* Cout - Write back the local variables back to the actual variables */\n");

+				fw.write("\t\t\ttaskENTER_CRITICAL ();\n");

+				fw.write("\t\t\tcOUT_" + task.getName() + "();\n");

+				fw.write("\t\t\ttaskEXIT_CRITICAL ();\n");

+				final MappingModel mappingModel = model.getMappingModel();

+				ProcessingUnit pu = null;

+				if (mappingModel != null) {

+					pu = DeploymentUtil.getAssignedCoreForProcess(task, model).iterator().next();

+					Time taskTime = RuntimeUtil.getExecutionTimeForProcess(task, pu, null, TimeType.WCET);

+					taskTime = TimeUtil.convertToTimeUnit(taskTime, TimeUnit.MS);

+					final BigInteger sleepTime = taskTime.getValue();

+					final BigInteger b2 = new BigInteger("1000");

+					final int comparevalue = sleepTime.compareTo(b2);

+					if (comparevalue < 0) {

+						fw.write("\n\t\t\tsleepTimerMs(1 , 1" + (taskCount + 1) + ");\n");

+					}

+					else {

+						fw.write("\n\t\t\tsleepTimerMs(" + sleepTime + ", " + taskCount + 1 + ");\n");

+					}

+					taskCount++;

+				}

+				fw.write("\n\t\t\ttaskCount" + task.getName() + "++;");

+				fw.write("\n\t\t\ttraceTaskPasses(" + taskCount + ", taskCount" + task.getName() + ");");

+				fw.write("\n\t\t\ttraceRunningTask(0);\n");

+				final EList<Stimulus> Stimuli = model.getStimuliModel().getStimuli();

+				for (final Stimulus s : Stimuli) {

+					if (s instanceof PeriodicStimulus) {

+						if (task.getStimuli().get(0) == s) {

+							fw.write("\t\t\tvTaskDelayUntil(&xLastWakeTime, "

+									+ ((PeriodicStimulus) s).getRecurrence().getValue() + ");\n");

+						}

+					}

+				}

+				fw.write("\t\t}\n");

+				fw.write("\t}\n\n");

+			}

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+	}

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param file

+	 * @param labellist

+	 */

+	public static List<Label> TaskSpecificLabel(final Amalthea model, final Task tasks) {

+		List<Label> SharedLabelList = new ArrayList<Label>(SoftwareUtil.getAccessedLabelSet(tasks, null));

+		SharedLabelList = SharedLabelList.stream().distinct().collect(Collectors.toList());

+		final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+		if (SharedLabelList.size() == 0) {

+			// System.out.println("Shared Label size 0");

+		}

+		else {

+			final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+					.LabelTaskMap(model, SharedLabelList);

+			for (final Label share : SharedLabelList) {

+				final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+				final Set<Task> taskList = TaskMap.keySet();

+				final Collection<ProcessingUnit> puList = TaskMap.values();

+				final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+				if (!((puListUnique.size() == 1 && taskList.size() > 1) || (puListUnique.size() > 1))) {

+					SharedLabelListSortCore.add(share);

+				}

+			}

+		}

+		return SharedLabelListSortCore;

+	}

+

+	/**

+	 * helper function to get the Amalthea Model

+	 *

+	 */

+	public Amalthea getModel() {

+		return this.model;

+	}

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFileCreateGUI.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFileCreateGUI.java
new file mode 100755
index 0000000..1f71463
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFileCreateGUI.java
@@ -0,0 +1,322 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen.checks;
+
+import java.awt.Color;
+import java.awt.Desktop;
+import java.awt.EventQueue;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.sql.Timestamp;
+
+import javax.imageio.ImageIO;
+import javax.swing.ButtonGroup;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JRadioButton;
+import javax.swing.JSeparator;
+import javax.swing.JTextField;
+import javax.swing.filechooser.FileNameExtensionFilter;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.io.AmaltheaLoader;
+
+/**
+ * Implementation of GUI Design and Action on Button Click.
+ */
+
+public class checkFileCreateGUI {
+	JFrame frame;
+
+	public static void main(final String[] args) {
+		EventQueue.invokeLater(new Runnable() {
+			@SuppressWarnings("null")
+			@Override
+			public void run() {
+				checkFileCreateGUI window = null;
+				try {
+					window = new checkFileCreateGUI();
+				}
+				catch (final IOException e) {
+					e.printStackTrace();
+				}
+				window.frame.setVisible(true);
+				window.frame.setTitle("CDGen");
+
+			}
+		});
+
+	}
+
+	public checkFileCreateGUI() throws IOException {
+		initialize();
+	}
+
+	int modelIndex;
+	String fileInput;
+	String fileInput1;
+	JTextField txtFieldScheduler = new JTextField("FreeRTOS / RMS / POSIX Browse path");
+	JTextField txtFieldModel = new JTextField("Amalthea Model Browse path");
+
+	private void initialize() throws IOException {
+		this.frame = new JFrame();
+		this.frame.setBounds(100, 100, 864, 272);
+		this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		this.frame.getContentPane().setLayout(null);
+
+		final JRadioButton cdgenFreeRTOS = new JRadioButton("FreeRTOS");
+		cdgenFreeRTOS.setBounds(40, 80, 145, 25);
+		this.frame.getContentPane().add(cdgenFreeRTOS);
+
+		final JRadioButton cdgenPosix = new JRadioButton("POSIX");
+		cdgenPosix.setBounds(40, 110, 145, 25);
+		this.frame.getContentPane().add(cdgenPosix);
+
+		final JRadioButton cdgenCustom = new JRadioButton("RMS(Rate Monotonic)");
+		cdgenCustom.setBounds(40, 140, 210, 25);
+		this.frame.getContentPane().add(cdgenCustom);
+
+		final ButtonGroup group = new ButtonGroup();
+		group.add(cdgenFreeRTOS);
+		group.add(cdgenPosix);
+		group.add(cdgenCustom);
+
+		final JRadioButton cdgenCooperative = new JRadioButton("Cooperative");
+		cdgenCooperative.setBounds(190, 80, 145, 25);
+		this.frame.getContentPane().add(cdgenCooperative);
+
+		final JRadioButton cdgenPreemptive = new JRadioButton("Preemptive");
+		cdgenPreemptive.setBounds(190, 110, 145, 25);
+		this.frame.getContentPane().add(cdgenPreemptive);
+
+		final ButtonGroup group3 = new ButtonGroup();
+		group3.add(cdgenCooperative);
+		group3.add(cdgenPreemptive);
+		final BufferedImage browseButtonIconScheduler = ImageIO.read(new File("./cdgen.graphics/browse.png"));
+		final JButton btnBrowseScheduler = new JButton(new ImageIcon(browseButtonIconScheduler));
+		final JFileChooser fc = new JFileChooser();
+		btnBrowseScheduler.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(final ActionEvent e) {
+				if (e.getSource() == btnBrowseScheduler) {
+					final int returnVal = fc.showOpenDialog(checkFileCreateGUI.this.frame);
+					if (returnVal == JFileChooser.APPROVE_OPTION) {
+						final File file = fc.getCurrentDirectory();
+						checkFileCreateGUI.this.fileInput = file.getPath();
+						checkFileCreateGUI.this.txtFieldScheduler.setText(checkFileCreateGUI.this.fileInput);
+					}
+				}
+			}
+		});
+		btnBrowseScheduler.setBounds(673, 75, 120, 35);
+		this.frame.getContentPane().add(btnBrowseScheduler);
+
+		final BufferedImage browseButtonIconModel = ImageIO.read(new File("./cdgen.graphics/browse.png"));
+		final JButton btnBrowseModel = new JButton(new ImageIcon(browseButtonIconModel));
+		final JFileChooser fc1 = new JFileChooser();
+		// final String fileInput1;
+		btnBrowseModel.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(final ActionEvent e) {
+
+				if (e.getSource() == btnBrowseModel) {
+					final FileNameExtensionFilter filter = new FileNameExtensionFilter("*.amxmi", "*.amxmi");
+					fc1.addChoosableFileFilter(filter);
+					fc1.setMultiSelectionEnabled(false);
+					// fc1.showOpenDialog(null);
+					final int returnVal = fc1.showOpenDialog(checkFileCreateGUI.this.frame);
+					// System.out.println("\nRam " +
+					// fileUtil.getFileExtension(fc1.getSelectedFile()));
+					// if(fileUtil.getFileExtension(fc1.getSelectedFile())=="amxmi"){
+					if (returnVal == JFileChooser.APPROVE_OPTION) {
+						final File file = fc1.getSelectedFile();
+						checkFileCreateGUI.this.fileInput1 = file.getPath();
+						checkFileCreateGUI.this.txtFieldModel.setText(checkFileCreateGUI.this.fileInput1);
+					}
+					/*
+					 * }else { JOptionPane.showMessageDialog(null,
+					 * " choose a file with \".amxmi\" file ","Wrong model file"
+					 * ,2); }
+					 */
+				}
+			}
+		});
+		btnBrowseModel.setBounds(673, 130, 120, 35);
+		this.frame.getContentPane().add(btnBrowseModel);
+		final BufferedImage helpButtonIcon = ImageIO.read(new File("./cdgen.graphics/help.png"));
+		final JButton btnHelp = new JButton(new ImageIcon(helpButtonIcon));
+		btnHelp.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(final ActionEvent e) {
+				try {
+					Desktop.getDesktop()
+							.browse(new URL("https://cdgendoc.readthedocs.io/en/latest/GUI_Layout.html").toURI());
+				}
+				catch (final Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		});
+		btnHelp.setBounds(800, 10, 30, 30);
+		this.frame.getContentPane().add(btnHelp);
+
+		this.txtFieldScheduler.setBounds(370, 80, 280, 25);
+		this.frame.getContentPane().add(this.txtFieldScheduler);
+
+
+		this.txtFieldModel.setBounds(370, 140, 280, 25);
+		this.frame.getContentPane().add(this.txtFieldModel);
+
+
+		final BufferedImage startButtonIcon = ImageIO.read(new File("./cdgen.graphics/start.png"));
+		final JButton btnSelectTasks = new JButton(new ImageIcon(startButtonIcon));
+		btnSelectTasks.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(final ActionEvent e) {
+				// File inputFile = new File();
+				// String inputFile = Constants.DEMOCARMULTI;
+				final Amalthea model = AmaltheaLoader
+						.loadFromFileNamed(checkFileCreateGUI.this.txtFieldModel.getText());
+				System.out.println("\n Model file " + checkFileCreateGUI.this.txtFieldModel.getText());
+				if (model == null) {
+					System.out.println("Error: No model loaded!");
+					return;
+				}
+				final String path = System.getProperty("user.dir");
+				String timestamp = new Timestamp(System.currentTimeMillis()).toString();
+				timestamp = timestamp.substring(0, timestamp.length() - 6).replaceAll(":", "");
+				timestamp = timestamp.replaceAll("-", "_");
+				timestamp = timestamp.replaceAll(" ", "_");
+				final File theDir = new File(timestamp);
+				if (!theDir.exists()) {
+					System.out.println("creating directory: " + theDir.getName());
+					boolean result = false;
+					try {
+						theDir.mkdir();
+						result = true;
+					}
+					catch (final SecurityException se) {
+						System.exit(0);
+					}
+					if (result) {
+						System.out.println("DIR created");
+					}
+				}
+				final String path1 = path + "/" + timestamp;
+				final String path2 = checkFileCreateGUI.this.txtFieldScheduler.getText();
+				int configFlag = 0xFFFF;
+				/*
+				 *
+				 * 0X1000 ==> FreeRTOS 0X2000 ==> POSIX 0x3000 ==> RMS
+				 *
+				 * 0X0010 ==> Cooperative 0X0020 ==> Preemptive
+				 *
+				 * FreeRTOS == Cooperative == 0x1X10 FreeRTOS == Preemptive ==
+				 * 0x1X20 POSIX == Cooperative == 0x2X10 POSIX == Preemptive ==
+				 * 0x2X20 RMS == Cooperative == 0x3X10 RMS == Preemptive ==
+				 * 0x3X20 X == Don't care
+				 */
+
+				System.out.println("############################################################");
+				if (cdgenFreeRTOS.isSelected() & cdgenPreemptive.isSelected()) {
+					configFlag = 0x1320;
+					System.out.println("\t\tFreeRTOS\tPreemptive");
+					System.out.println("############################################################");
+					new checkFreeRTOSConfiguration(model, path1, path2, configFlag);
+				}
+				else if (cdgenFreeRTOS.isSelected() & cdgenCooperative.isSelected()) {
+					configFlag = 0x1310;
+					System.out.println("\t\tFreeRTOS\tCooperative");
+					System.out.println("############################################################");
+					new checkFreeRTOSConfiguration(model, path1, path2, configFlag);
+				}
+				else if (cdgenPosix.isSelected() & cdgenPreemptive.isSelected()) {
+					configFlag = 0x2320;
+					System.out.println("\t\tPosix\tPreemptive");
+					System.out.println("############################################################");
+					new checkPOSIXConfiguration(model, path1, path2, configFlag);
+				}
+				else if (cdgenPosix.isSelected() & cdgenCooperative.isSelected()) {
+					configFlag = 0x2310;
+					System.out.println("\t\tPosix\tCooperative");
+					System.out.println("############################################################");
+					new checkPOSIXConfiguration(model, path1, path2, configFlag);
+				}
+				else if (cdgenCustom.isSelected() & cdgenPreemptive.isSelected()) {
+					configFlag = 0x3120;
+					System.out.println("\t\tRMS\tPreemptive");
+					System.out.println("############################################################");
+					new checkRMSConfiguration(model, path1, path2, configFlag);
+				}
+				else if (cdgenCustom.isSelected() & cdgenCooperative.isSelected()) {
+					configFlag = 0x3110;
+					System.out.println("\t\tRMS\tCooperative");
+					System.out.println("############################################################");
+					new checkRMSConfiguration(model, path1, path2, configFlag);
+				}
+				else {
+					System.out.println("Configuration Not Defined!");
+				}
+			}
+		});
+		btnSelectTasks.setBounds(190, 190, 120, 35);
+		this.frame.getContentPane().add(btnSelectTasks);
+		final BufferedImage closeButtonIcon = ImageIO.read(new File("./cdgen.graphics/close.png"));
+		final JButton btnClose = new JButton(new ImageIcon(closeButtonIcon));
+		btnClose.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(final ActionEvent e) {
+				System.exit(0);
+			}
+		});
+		btnClose.setBounds(370, 190, 120, 35);
+		this.frame.getContentPane().add(btnClose);
+		final JLabel lblAllTasks = new JLabel("OS Options");
+		lblAllTasks.setFont(new Font("Tahoma", Font.BOLD, 13));
+		lblAllTasks.setBounds(40, 55, 110, 16);
+		this.frame.getContentPane().add(lblAllTasks);
+
+		final JLabel lblModelSelection = new JLabel("Model selection");
+		lblModelSelection.setFont(new Font("Tahoma", Font.BOLD, 13));
+		lblModelSelection.setBounds(370, 110, 145, 25);
+		this.frame.getContentPane().add(lblModelSelection);
+
+		final JLabel lblSourcePath = new JLabel("Source Path");
+		lblSourcePath.setFont(new Font("Tahoma", Font.BOLD, 13));
+		lblSourcePath.setBounds(370, 50, 145, 25);
+		this.frame.getContentPane().add(lblSourcePath);
+
+		final JLabel lblResponsetime = new JLabel("Task Preemption");
+		lblResponsetime.setFont(new Font("Tahoma", Font.BOLD, 13));
+		lblResponsetime.setBounds(190, 55, 150, 16);
+		this.frame.getContentPane().add(lblResponsetime);
+
+		final JLabel lblPerformanceMetric = new JLabel("CDGen - Code Generator for APP4MC");
+		lblPerformanceMetric.setForeground(Color.ORANGE);
+		lblPerformanceMetric.setFont(new Font("Tahoma", Font.BOLD, 20));
+		lblPerformanceMetric.setBounds(27, 13, 450, 30);
+		this.frame.getContentPane().add(lblPerformanceMetric);
+
+		final JSeparator separator = new JSeparator();
+		separator.setBounds(12, 42, 822, 272);
+		this.frame.getContentPane().add(separator);
+	}
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFreeRTOSConfiguration.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFreeRTOSConfiguration.java
new file mode 100644
index 0000000..28b8fc0
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkFreeRTOSConfiguration.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen.checks;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Paths;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.cdgen.FreeRTOSConfigFileCreation;
+import org.eclipse.app4mc.cdgen.LabelFileCreation;
+import org.eclipse.app4mc.cdgen.MainRMSFileCreation;
+import org.eclipse.app4mc.cdgen.MakeFileCreation;
+import org.eclipse.app4mc.cdgen.RunFileCreation;
+import org.eclipse.app4mc.cdgen.SharedLabelsFileCreation;
+import org.eclipse.app4mc.cdgen.TaskFileCreation;
+import org.eclipse.app4mc.cdgen.test.testTaskStructure;
+import org.eclipse.app4mc.cdgen.utils.fileUtil;
+
+
+/**
+ * Implementation of GUI Design and Action on Button Click.
+ *
+ */
+
+public class checkFreeRTOSConfiguration {
+	public checkFreeRTOSConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		FreeRTOSConfiguration(model, srcPath, headerPath, configFlag);
+	}
+
+	public void FreeRTOSConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		try {
+			// String path = System.getProperty("user.dir");
+			// create new file
+			final File l_SourceDirectory = new File(headerPath);
+			// array of files and directory
+			final String[] filesName = l_SourceDirectory.list();
+			// for each name in the path array
+			for (final String pathi : filesName) {
+				final File SourceFile = new File(l_SourceDirectory.toString() + "/" + pathi);
+				final File DestinationFile = new File(Paths.get(srcPath).toString() + "/" + pathi);
+				if (fileUtil.getFileExtension(SourceFile) == "c" || fileUtil.getFileExtension(SourceFile) == "h"
+						|| fileUtil.getFileExtension(SourceFile) == "") {
+					com.google.common.io.Files.copy(SourceFile, DestinationFile);
+				}
+			}
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new MainRMSFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new RunFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new MakeFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new FreeRTOSConfigFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new TaskFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new SharedLabelsFileCreation(model, srcPath);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new LabelFileCreation(model, srcPath);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new testTaskStructure(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		System.out.println("Generation completed, Check path 	" + srcPath);
+		// TODO: Set hyperlink for path
+		// System.out.println("<a href=\"http://www.google.com\">whatever</a>");
+		try {
+			Desktop.getDesktop().open(new File(srcPath));
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		System.exit(0);
+	}
+
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkPOSIXConfiguration.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkPOSIXConfiguration.java
new file mode 100644
index 0000000..4bb4628
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkPOSIXConfiguration.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen.checks;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.cdgen.FreeRTOSConfigFileCreation;
+import org.eclipse.app4mc.cdgen.LabelFileCreation;
+import org.eclipse.app4mc.cdgen.MainFileCreation;
+import org.eclipse.app4mc.cdgen.MakeFileCreation;
+import org.eclipse.app4mc.cdgen.RunFileCreation;
+import org.eclipse.app4mc.cdgen.TaskFileCreation;
+import org.eclipse.app4mc.cdgen.test.testTaskStructure;
+
+
+/**
+ * Implementation of GUI Design and Action on Button Click.
+ *
+ *
+ */
+
+public class checkPOSIXConfiguration {
+	public checkPOSIXConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		POSIXConfiguration(model, srcPath, headerPath, configFlag);
+	}
+
+	public void POSIXConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		try {
+			new MainFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new RunFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new LabelFileCreation(model, srcPath);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new FreeRTOSConfigFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new TaskFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new TaskFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new MakeFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new testTaskStructure(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+
+
+		System.out.println("Generation completed, Check path 	" + srcPath);
+		// TODO: Set hyperlink for path
+		try {
+			Desktop.getDesktop().open(new File(srcPath));
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+
+		System.exit(0);
+
+	}
+
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkRMSConfiguration.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkRMSConfiguration.java
new file mode 100644
index 0000000..85b3211
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/checks/checkRMSConfiguration.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
+ *
+ *   This program and the accompanying materials are made
+ *   available under the terms of the Eclipse Public License 2.0
+ *   which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ *   SPDX-License-Identifier: EPL-2.0
+ *
+ *   Contributors:
+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.cdgen.checks;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Paths;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.cdgen.ArmCodeFileCreation;
+import org.eclipse.app4mc.cdgen.FreeRTOSConfigFileCreation;
+import org.eclipse.app4mc.cdgen.LabelFileCreation;
+import org.eclipse.app4mc.cdgen.MainRMSFileCreation;
+import org.eclipse.app4mc.cdgen.MakeFileCreation;
+import org.eclipse.app4mc.cdgen.RunFileCreation;
+import org.eclipse.app4mc.cdgen.SharedLabelsFileCreation;
+import org.eclipse.app4mc.cdgen.TaskFileCreation;
+import org.eclipse.app4mc.cdgen.test.testTaskStructure;
+import org.eclipse.app4mc.cdgen.utils.fileUtil;
+
+/**
+ * Implementation of GUI Design and Action on Button Click.
+ *
+ *
+ */
+
+public class checkRMSConfiguration {
+
+
+	public checkRMSConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		RMSConfiguration(model, srcPath, headerPath, configFlag);
+	}
+
+	public void RMSConfiguration(final Amalthea model, final String srcPath, final String headerPath,
+			final int configFlag) {
+		/*
+		 * try { String path = System.getProperty("user.dir"); File
+		 * l_SourceDirectory = null; if(0x3110 == (configFlag & 0xFFF0)) {
+		 * l_SourceDirectory = new File(path + "/ref/rms_coop/"); }else
+		 * if(0x3120 == (configFlag & 0xFFF0)){ l_SourceDirectory = new
+		 * File(path + "/ref/freertos_preem/"); } String[] filesName =
+		 * l_SourceDirectory.list(); for(String pathi:filesName) { File
+		 * SourceFile = new File(l_SourceDirectory.toString() +"/" + pathi);
+		 * File DestinationFile = new File(Paths.get(srcPath).toString() + "/" +
+		 * pathi ); com.google.common.io.Files.copy(SourceFile , DestinationFile
+		 * ); } } catch (IOException e1) { e1.printStackTrace(); }
+		 */
+		try {
+			// String path = System.getProperty("user.dir");
+			// create new file
+			final File l_SourceDirectory = new File(headerPath);
+			// array of files and directory
+			final String[] filesName = l_SourceDirectory.list();
+			// for each name in the path array
+			for (final String pathi : filesName) {
+				final File SourceFile = new File(l_SourceDirectory.toString() + "/" + pathi);
+				final File DestinationFile = new File(Paths.get(srcPath).toString() + "/" + pathi);
+				if (fileUtil.getFileExtension(SourceFile) == "c" || fileUtil.getFileExtension(SourceFile) == "h"
+						|| fileUtil.getFileExtension(SourceFile) == "") {
+					com.google.common.io.Files.copy(SourceFile, DestinationFile);
+				}
+			}
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new MainRMSFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new RunFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new TaskFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new FreeRTOSConfigFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new MakeFileCreation(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new SharedLabelsFileCreation(model, srcPath);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new LabelFileCreation(model, srcPath);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new ArmCodeFileCreation(model, srcPath, headerPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		try {
+			new testTaskStructure(model, srcPath, configFlag);
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		System.out.println("Generation completed, Check path 	" + srcPath);
+		// TODO: Set hyperlink for path
+		try {
+			Desktop.getDesktop().open(new File(srcPath));
+		}
+		catch (final IOException e1) {
+			e1.printStackTrace();
+		}
+		System.exit(0);
+	}
+
+}
diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testLabel.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testLabel.java
new file mode 100644
index 0000000..49a84a8
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testLabel.java
@@ -0,0 +1,99 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.test;

+

+import java.io.BufferedReader;

+import java.io.File;

+import java.io.FileReader;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.List;

+import java.util.Set;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;

+

+/**

+ * Implementation of testing Task, Runnable structure and Label types.

+ *

+ */

+

+public class testLabel

+

+{

+

+	public testLabel(final Amalthea Model, final String path1, final int k, final List<Task> taskmod)

+			throws IOException {

+		fileTestLabel(Model, path1, k, taskmod);

+	}

+

+	private void fileTestLabel(final Amalthea model2, final String path1, final int k, final List<Task> tasks)

+			throws IOException {

+		final String fname = path1 + File.separator + "label" + k + ".c";

+		// EList<Label> label = model2.getSwModel().getLabels();

+		final List<Label> label = new ArrayList<Label>();

+		for (final Task ta : tasks) {

+			label.addAll(SoftwareUtil.getAccessedLabelSet(ta, null));

+		}

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		final String input = "\tuint", input1 = "\t=\t";

+		int count = 0, count1 = 0;

+		int Counter = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (word.contains(input)) {

+					count++;

+				}

+				if (word.equals(input1)) {

+					count1++;

+				}

+			}

+		}

+		for (final Task task : tasks) {

+			List<Runnable> runnablesOfTask = SoftwareUtil.getRunnableList(task, null);

+			final ArrayList<Label> labellist1 = new ArrayList<Label>();

+			runnablesOfTask = runnablesOfTask.stream().distinct().collect(Collectors.toList());

+			for (final Runnable run : runnablesOfTask) {

+				final Set<Label> labellist = SoftwareUtil.getAccessedLabelSet(run, null);

+				labellist1.addAll(labellist);

+			}

+			final List<Label> listWithoutDuplicates2 = labellist1.stream().distinct().collect(Collectors.toList());

+			Counter = Counter + listWithoutDuplicates2.size();

+		}

+		if (count != label.size() + Counter) {

+			System.out.println((label.size() + Counter) + "\tLabel : ERROR: Label2 count\t" + count);

+		}

+		else {

+			System.out.println("Label : Label2 count OK");

+		}

+		if (count1 != label.size()) {

+			System.out.println(label.size() + "\tLabel : ERROR: Label count\t" + count1);

+		}

+		else {

+			System.out.println("Label : Label1 count OK");

+		}

+		fr.close();

+	}

+

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testMain.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testMain.java
new file mode 100644
index 0000000..5b860a2
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testMain.java
@@ -0,0 +1,113 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.test;

+

+import java.io.BufferedReader;

+import java.io.File;

+import java.io.FileReader;

+import java.io.IOException;

+import java.util.List;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Task;

+

+/**

+ * Implementation of testing Task, Runnable structure and Label types.

+ *

+ */

+

+public class testMain

+

+{

+

+	public testMain(final Amalthea model, final String path1, final int configFlag, final int k,

+			final List<Task> taskmod) throws IOException {

+		if ((0x1000 == (configFlag & 0xF000))) {

+			fileTestmainTask(model, path1, k, taskmod);

+		}

+		else if (0x2000 == (configFlag & 0xF000)) {

+			fileTestmainTaskPthread(model, path1, k, taskmod);

+		}

+	}

+

+	private void fileTestmainTaskPthread(final Amalthea model2, final String path1, final int k,

+			final List<Task> taskmod) throws IOException {

+		final String fname = path1 + File.separator + "main" + k + ".c";

+		// EList<Task> taskmod = model2.getSwModel().getTasks();

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		final String input = "\t\tpthread_create";

+		int count = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (word.equals(input)) {

+					count++;

+				}

+			}

+		}

+		if (count != taskmod.size()) {

+			System.out.println(taskmod.size() + "\tMain" + k + " : ERROR: Task create count\t" + count);

+		}

+		else {

+			System.out.println("Main" + k + " : Task create count OK");

+		}

+		fr.close();

+	}

+

+	private void fileTestmainTask(final Amalthea model2, final String path1, final int k, final List<Task> taskmod)

+			throws IOException {

+		final String fname = path1 + File.separator + "main" + k + ".c";

+		// EList<Task> taskmod = model2.getSwModel().getTasks();

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		final String input = "\txTaskCreate(";

+		final String input2 = "configMINIMAL_STACK_SIZE,";

+		int count = 0, count1 = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (word.equals(input)) {

+					count++;

+				}

+				else if (word.equals(input2)) {

+					count1++;

+				}

+			}

+		}

+		if (count != taskmod.size()) {

+			System.out.println(taskmod.size() + "\tMain" + k + " : ERROR: Task create count\t" + count);

+		}

+		else {

+			System.out.println("Main" + k + " : Task create count OK");

+		}

+		if (count1 != taskmod.size()) {

+			System.out.println(taskmod.size() + "\tMain" + k + " : ERROR: Task Priorities count\t" + count1);

+		}

+		else {

+			System.out.println("Main" + k + " : Task Priorities count OK");

+		}

+		fr.close();

+	}

+}

+

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testRunnable.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testRunnable.java
new file mode 100644
index 0000000..a30d9a2
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testRunnable.java
@@ -0,0 +1,146 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.test;

+

+import java.io.BufferedReader;

+import java.io.File;

+import java.io.FileReader;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;

+

+/**

+ * Implementation of testing Task, Runnable structure and Label types.

+ *

+ */

+

+

+public class testRunnable {

+	public testRunnable(final Amalthea Model, final String path1, final int configFlag, final int k,

+			final List<Task> tasks) throws IOException {

+		this.model = Model;

+		if (0x2000 != (configFlag & 0xF000)) {

+			fileTestRunnable(this.model, path1, k, tasks);

+		}

+		else {

+			fileTestRunnablePthread(this.model, path1, k, tasks);

+		}

+	}

+

+

+	private void fileTestRunnable(final Amalthea model2, final String path1, final int k, final List<Task> tasks)

+			throws IOException {

+		final String fname = path1 + File.separator + "runnable" + k + ".c";

+		final List<Runnable> runmod = new ArrayList<Runnable>();

+		for (final Task ta : tasks) {

+			runmod.addAll(SoftwareUtil.getRunnableList(ta, null));

+		}

+

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		final String input1 = "void";

+		int count1 = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				/*

+				 * if (word.equals(input)) { count++; }

+				 */

+				if (word.equals(input1)) {

+					count1++;

+				}

+			}

+		}

+		/*

+		 * if (count != runmod.size()) { System.out.println(runmod.size() +

+		 * "\tRunnable"+k+" : ERROR: Runnable size Not matching count\t" +

+		 * count); } else {

+		 * System.out.println("Runnable : Number of Runnables OK"); }

+		 */

+		if (count1 == runmod.size()) {

+			System.out.println("Runnable" + k + " : Number of Runnables  void OK");

+		}

+		else {

+

+			System.out.println(

+					runmod.size() + "\tRunnable" + k + " : ERROR: Runnable VOID Not matching count\t" + count1);

+		}

+		fr.close();

+	}

+

+	private void fileTestRunnablePthread(final Amalthea model2, final String path1, final int k, final List<Task> tasks)

+			throws IOException {

+		final String fname = path1 + File.separator + "runnable" + k + ".c";

+		final List<Runnable> runmod = new ArrayList<Runnable>();

+		for (final Task ta : tasks) {

+			runmod.addAll(SoftwareUtil.getRunnableList(ta, null));

+		}

+

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		boolean flagRun = false;

+		final String input = "\tRunnable", input1 = "void";

+		int count = 0, count1 = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (flagRun) {

+					// System.out.println("\nRunnable "+word);

+					flagRun = false;

+				}

+				if (word.equals(input)) {

+					count++;

+				}

+				if (word.equals(input1)) {

+					count1++;

+					flagRun = true;

+				}

+			}

+		}

+		if (count != runmod.size()) {

+			System.out

+					.println(runmod.size() + "\tRunnable" + k + " : ERROR: Runnable size Not matching count\t" + count);

+		}

+		else {

+			System.out.println("Runnable" + k + " : Number of Runnables OK");

+		}

+		if (count1 != runmod.size()) {

+			System.out.println(

+					runmod.size() + "\tRunnable" + k + " : ERROR: Runnable VOID Not matching count\t" + count1);

+		}

+		else {

+			System.out.println("Runnable" + k + " : Number of Runnables  void OK");

+		}

+		fr.close();

+	}

+

+

+	final private Amalthea model;

+

+

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskDef.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskDef.java
new file mode 100644
index 0000000..f8710e2
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskDef.java
@@ -0,0 +1,238 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.test;

+

+import java.io.BufferedReader;

+import java.io.File;

+import java.io.FileReader;

+import java.io.IOException;

+import java.util.List;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Task;

+

+/**

+ * Implementation of testing Task, Runnable structure and Label types.

+ *

+ */

+

+public class testTaskDef

+

+{

+

+

+	public testTaskDef(final Amalthea model, final String path1, final int configFlag, final int k,

+			final List<Task> tasks) throws IOException {

+

+		if (0x2000 != (configFlag & 0xF000)) {

+			fileTestTask(model, path1, configFlag, k, tasks);

+		}

+		else {

+			fileTestTaskPthread(model, path1, configFlag, k, tasks);

+		}

+	}

+

+	/**

+	 *

+	 * @param model2

+	 * @param path1

+	 * @param configFlag

+	 * @throws IOException

+	 */

+	private void fileTestTask(final Amalthea model2, final String path1, final int configFlag, final int k,

+			final List<Task> taskmod) throws IOException {

+		final String fname = path1 + File.separator + "taskDef" + k + ".c";

+		// EList<Task> taskmod = model2.getSwModel().getTasks();

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		// TODO

+		final String input = "Cout", input2 = "Cin", input3 = "\t\t\ttaskENTER_CRITICAL",

+				input4 = "\t\t\ttaskEXIT_CRITICAL";

+		final String input5 = "\tvoid";

+		int count = 0, count1 = 0, count2 = 0, count3 = 0, count4 = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (word.equals(input)) {

+					count++;

+				}

+				else if (word.equals(input2)) {

+					count1++;

+				}

+				else if (word.equals(input3)) {

+					count2++;

+				}

+				else if (word.equals(input4)) {

+					count3++;

+				}

+				else if (word.equals(input5)) {

+					count4++;

+				}

+			}

+		}

+		if (0x1000 == (configFlag & 0xF000)) {

+			if (count != taskmod.size()) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: Cout count\t" + count);

+			}

+			else {

+				System.out.println("Task" + k + " : Cout count OK");

+			}

+			if (count1 != taskmod.size()) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: Cin count\t" + count1);

+			}

+			else {

+				System.out.println("Task" + k + " : Cin count OK");

+			}

+			// if(0x0020 == (configFlag & 0x00F0)) {

+			if (count2 != taskmod.size() * 2) {

+				System.out.println(taskmod.size() * 2 + "\tTask" + k + " : ERROR: taskENTER_CRITICAL\t" + count2);

+			}

+			else {

+				System.out.println("Task" + k + " : taskENTER_CRITICAL OK");

+			}

+			/*

+			 * else { if (count2 != taskmod.size()) {

+			 * System.out.println(taskmod.size() * 2 +

+			 * "\tTask"+k+" : ERROR: taskENTER_CRITICAL\t" + count2); } else {

+			 * System.out.println("Task"+k+" : taskENTER_CRITICAL OK"); } }

+			 */

+			// if(0x0020 == (configFlag & 0x00F0)) {

+			if (count3 != taskmod.size() * 2) {

+				System.out.println(taskmod.size() * 2 + "\tTask" + k + " : ERROR: taskEXIT_CRITICAL\t" + count2);

+			}

+			else {

+				System.out.println("Task" + k + " : taskEXIT_CRITICAL OK");

+			}

+			/*

+			 * else { if (count3 != taskmod.size()) {

+			 * System.out.println(taskmod.size()+

+			 * "\tTask"+k+" : ERROR: taskEXIT_CRITICAL\t" + count2); } else {

+			 * System.out.println("Task"+k+" : taskEXIT_CRITICAL OK"); }

+			 */

+

+			if (count3 != count2) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: taskEXIT_CRITICAL\t" + count2);

+			}

+			else {

+				System.out.println("Task" + k + " : taskEXIT_CRITICAL and taskENTER_CRITICAL OK");

+			}

+		}

+		if (count4 != taskmod.size()) {

+			System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: taskEXIT_CRITICAL\t" + count4);

+		}

+		else {

+			System.out.println("Task" + k + " : Task Count OK");

+		}

+

+		fr.close();

+	}

+

+	private void fileTestTaskPthread(final Amalthea model2, final String path1, final int configFlag, final int k,

+			final List<Task> taskmod) throws IOException {

+		final String fname = path1 + File.separator + "taskDef" + k + ".c";

+		// EList<Task> taskmod = model2.getSwModel().getTasks();

+		final File f1 = new File(fname);

+		String[] words = null;

+		@SuppressWarnings("resource")

+		final FileReader fr = new FileReader(f1);

+		@SuppressWarnings("resource")

+		final BufferedReader br = new BufferedReader(fr);

+		String s;

+		final String input1 = "Cout", input2 = "Cin", input3 = "\t\t\tsuspendMe", input4 = "\t\t\tresumeMe",

+				input5 = "void";

+		int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0;

+		while ((s = br.readLine()) != null) {

+			words = s.split(" ");

+			for (final String word : words) {

+				if (word.equals(input1)) {

+					count1++;

+				}

+				else if (word.equals(input2)) {

+					count2++;

+				}

+				else if (word.equals(input3)) {

+					count3++;

+				}

+				else if (word.equals(input4)) {

+					count4++;

+				}

+				else if (word.equals(input5)) {

+					count5++;

+				}

+			}

+		}

+		if (0x3110 == (configFlag & 0xFFF0)) {

+			if (count1 != taskmod.size()) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: Cout count\t" + count1);

+			}

+			else {

+				System.out.println("Task" + k + " : Cout count OK");

+			}

+			if (count2 != taskmod.size()) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: Cin count\t" + count2);

+			}

+			else {

+				System.out.println("Task" + k + " : Cin count OK");

+			}

+

+			// if(0x0020 == (configFlag & 0x00F0)){

+			if (count3 != taskmod.size() * 2) {

+				System.out.println(taskmod.size() * 2 + "\tTask" + k + " : ERROR: suspendMe\t" + count3);

+			}

+			else {

+				System.out.println("Task" + k + " : suspendMe OK");

+			}

+			/*

+			 * }else { if (count3 != taskmod.size()) {

+			 * System.out.println(taskmod.size()+

+			 * "\tTask"+k+" : ERROR: suspendMe\t" + count3); } else {

+			 * System.out.println("Task"+k+" : suspendMe OK"); } }

+			 */

+

+			// if(0x0020 == (configFlag & 0x00F0)) {

+			if (count4 != taskmod.size() * 2) {

+				System.out.println(taskmod.size() * 2 + "\tTask" + k + " : ERROR: resumeMe\t" + count4);

+			}

+			else {

+				System.out.println("Task" + k + " : resumeMe OK");

+			}

+			/*

+			 * }else { if (count4 != taskmod.size()) {

+			 * System.out.println(taskmod.size()+

+			 * "\tTask"+k+" : ERROR: resumeMe\t" + count4); } else {

+			 * System.out.println("Task"+k+" : resumeMe OK"); } }

+			 */

+

+			if (count4 != count3) {

+				System.out.println(count4 + "\tTask" + k + " : ERROR: suspendMe \t" + count3);

+			}

+			else {

+				System.out.println("Task" + k + " : suspendMe and resumeMe OK");

+			}

+			if (count5 != taskmod.size()) {

+				System.out.println(taskmod.size() + "\tTask" + k + " : ERROR: taskEXIT_CRITICAL\t" + count5);

+			}

+			else {

+				System.out.println("Task" + k + " : Task Count OK");

+			}

+		}

+		fr.close();

+	}

+

+

+}

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskStructure.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskStructure.java
new file mode 100755
index 0000000..40199ab
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/test/testTaskStructure.java
@@ -0,0 +1,59 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.test;

+

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.List;

+import java.util.Set;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * Implementation of testing Task, Runnable structure and Label types.

+ *

+ */

+

+public class testTaskStructure

+

+{

+	final private Amalthea model;

+

+	public testTaskStructure(final Amalthea Model, final String path1, final int configFlag) throws IOException {

+		this.model = Model;

+		System.out.println("############################################################");

+		System.out.println("\t\t\tTest Begins");

+		System.out.println("############################################################");

+		final EList<SchedulerAllocation> CoreNo = this.model.getMappingModel().getSchedulerAllocation();

+		int k = 0;

+		for (final SchedulerAllocation c : CoreNo) {

+			final ProcessingUnit pu = c.getResponsibility().get(0);

+			final Set<Task> task = DeploymentUtil.getTasksMappedToCore(pu, this.model);

+			final List<Task> tasks = new ArrayList<Task>(task);

+			new testRunnable(this.model, path1, configFlag, k, tasks);

+			new testTaskDef(this.model, path1, configFlag, k, tasks);

+			new testMain(this.model, path1, configFlag, k, tasks);

+			// new testLabel(model, path1, k, tasks);

+			k++;

+		}

+		System.out.println("############################################################");

+		System.out.println("\t\t\tTest Ends");

+		System.out.println("############################################################");

+	}

+}

+

diff --git a/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/utils/fileUtil.java b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/utils/fileUtil.java
new file mode 100755
index 0000000..5b0598b
--- /dev/null
+++ b/eclipse-tools/cdgen/src/org/eclipse/app4mc/cdgen/utils/fileUtil.java
@@ -0,0 +1,290 @@
+/*******************************************************************************

+ *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.

+ *

+ *   This program and the accompanying materials are made

+ *   available under the terms of the Eclipse Public License 2.0

+ *   which is available at https://www.eclipse.org/legal/epl-2.0/

+ *

+ *   SPDX-License-Identifier: EPL-2.0

+ *

+ *   Contributors:

+ *       Dortmund University of Applied Sciences and Arts - initial API and implementation

+ *******************************************************************************/

+package org.eclipse.app4mc.cdgen.utils;

+

+import java.io.File;

+import java.io.FileWriter;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.LinkedHashMap;

+import java.util.List;

+import java.util.Map;

+import java.util.Map.Entry;

+import java.util.Set;

+import java.util.stream.Collectors;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.Label;

+import org.eclipse.app4mc.amalthea.model.PeriodicStimulus;

+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;

+import org.eclipse.app4mc.amalthea.model.Stimulus;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.Time;

+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil;

+import org.eclipse.app4mc.cdgen.LabelFileCreation;

+

+

+/**

+ * Implementation of Common API for CDGen.

+ *

+ */

+

+public class fileUtil {

+

+	@SuppressWarnings({ "null", "resource" })

+	public static void fileMainHeader(final File f) throws IOException {

+		FileWriter fr = null;

+		try {

+			fr = new FileWriter(f);

+			fr.write("/******************************************************************\n");

+			fr.write("******************************************************************\n");

+			fr.write("**************#####**####*****#####**######*###****##*************\n");

+			fr.write("*************##******#***##**##******##*****##*#***##*************\n");

+			fr.write("*************#*******#****#**#****##*######*##**#**##*************\n");

+			fr.write("*************##******#***##**##***##*##*****##***#*##*************\n");

+			fr.write("**************#####**####*****######*######*##****###*************\n");

+			fr.write("******************************************************************\n");

+			fr.write("******************************************************************\n");

+			fr.write("*Author		:	Ram Prasath Govindarajan\n");

+			fr.write("*Tool 		:	CDGen_GSoC\n");

+			fr.write("*Version 	:	V1.0.0\n");

+		}

+		catch (final IOException e) {

+			e.printStackTrace();

+		}

+

+		fr.close();

+	}

+

+	public static void FreeRTOSConfigFileHeader(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true);

+			fw.write("*Title 		:   FreeRTOSConfig\n");

+			fw.write("*Description	:	Holds configuration for the FreeRTOS Software\n");

+			fw.write("******************************************************************\n");

+			fw.write("******************************************************************/\n\n\n");

+

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+

+

+	public static String getFileExtension(final File file) {

+		final String fileName = file.getName();

+		String fileExtension = null;

+		if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) {

+			fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1);

+			// return fileName.substring(fileName.lastIndexOf(".") + 1);

+		}

+		return fileExtension;

+	}

+

+	public static String datatype(final String string) {

+		String type = null;

+		switch (string) {

+			case "8 bit":

+				type = "uint8_t";

+				break;

+			case "16 bit":

+				type = "uint16_t";

+				break;

+			case "32 bit":

+				type = "uint32_t";

+				break;

+			case "64 bit":

+				type = "uint64_t";

+				break;

+			default:

+				type = "int";

+				break;

+		}

+		return type;

+	}

+

+

+	public static String datatypeSize(final String string) {

+		String type = null;

+		switch (string) {

+			case "8 bit":

+				type = "8";

+				break;

+			case "16 bit":

+				type = "16";

+				break;

+			case "32 bit":

+				type = "32";

+				break;

+			case "64 bit":

+				type = "64";

+				break;

+			default:

+				type = "00";

+				break;

+		}

+		return type;

+	}

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param tasks

+	 *

+	 * @param file

+	 * @param labellist

+	 * @return

+	 */

+	public static List<Label> CoreSpecificLabel(final Amalthea model, final List<Task> tasks) {

+		List<Label> SharedLabelList = new ArrayList<Label>();

+		for (final Task ta : tasks) {

+			SharedLabelList.addAll(SoftwareUtil.getReadLabelSet(ta, null));

+		}

+		SharedLabelList = SharedLabelList.stream().distinct().collect(Collectors.toList());

+		final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+		if (SharedLabelList.size() == 0) {

+			System.out.println("Shared Label size 0");

+		}

+		else {

+			// System.out.println("Shared Label size "+SharedLabelList.size());

+			final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+					.LabelTaskMap(model, SharedLabelList);

+			for (final Label share : SharedLabelList) {

+				final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+				final Set<Task> taskList = TaskMap.keySet();

+				final Collection<ProcessingUnit> puList = TaskMap.values();

+				final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+				if (puListUnique.size() == 1 && taskList.size() > 1) {

+					SharedLabelListSortCore.add(share);

+				}

+			}

+		}

+		return SharedLabelListSortCore;

+	}

+

+	/**

+	 * Shared Label definition and initialization structure.

+	 *

+	 * @param tasks

+	 *

+	 * @param file

+	 * @param labellist

+	 * @return

+	 */

+	// public static List<Label> SharedLabelDeclarationHead(Amalthea model,

+	// List<Task> tasks) {

+	public static List<Label> SharedLabelDeclarationHead(final Amalthea model, final List<Task> tasks) {

+		final List<Label> SharedLabelList = LabelFileCreation.SharedLabelFinder(model);

+		final List<Label> SharedLabelListSortCore = new ArrayList<Label>();

+		final List<Label> SharedLabel = new ArrayList<Label>();

+		if (SharedLabelList.size() == 0) {

+			// System.out.println("Shared Label size 0");

+		}

+		else {

+			// System.out.println("Shared Label size "+SharedLabelList.size());

+			final HashMap<Label, HashMap<Task, ProcessingUnit>> sharedLabelTaskMap = LabelFileCreation

+					.LabelTaskMap(model, SharedLabelList);

+			for (final Label share : SharedLabelList) {

+				final HashMap<Task, ProcessingUnit> TaskMap = sharedLabelTaskMap.get(share);

+				final Collection<ProcessingUnit> puList = TaskMap.values();

+				final List<ProcessingUnit> puListUnique = puList.stream().distinct().collect(Collectors.toList());

+				if (puListUnique.size() > 1) {

+					SharedLabelListSortCore.add(share);

+				}

+			}

+		}

+

+		final HashMap<Label, String> SharedLabelTypeMap = new HashMap<Label, String>();

+		for (final Label share : SharedLabelListSortCore) {

+			SharedLabelTypeMap.put(share, share.getSize().toString());

+		}

+		final List<String> SharedTypeMapList = new ArrayList<>(

+				SharedLabelTypeMap.values().stream().distinct().collect(Collectors.toList()));

+		final List<Label> SharedLabelMapList = new ArrayList<Label>(SharedLabelTypeMap.keySet());

+		for (int k = 0; k < SharedTypeMapList.size(); k++) {

+			final String sh = SharedTypeMapList.get(k);

+			for (final Label s : SharedLabelMapList) {

+				final String ShTy = SharedLabelTypeMap.get(s);

+				if (sh.equals(ShTy)) {

+					SharedLabel.add(s);

+				}

+			}

+		}

+		return SharedLabel;

+	}

+

+

+	public static long intialisation(final String string) {

+		long init = 0;

+		switch (string) {

+			case "8 bit":

+				init = 255;

+				break;

+			case "16 bit":

+				init = 65535;

+				break;

+			// case "32 bit": init =4294967295; break;

+			// case "64 bit": init =18446744073709551615; break;

+			default:

+				init = 0000;

+				break;

+		}

+		return init;

+	}

+

+	public static void defineMain(final File f1) {

+		try {

+			final File fn = f1;

+			@SuppressWarnings("resource")

+			final FileWriter fw = new FileWriter(fn, true); // the true will

+			// append the new

+			// data

+			fw.write("#define DELAY_MULT 100");

+			fw.write("\n");

+			fw.close();

+		}

+		catch (final IOException ioe) {

+			System.err.println("IOException: " + ioe.getMessage());

+		}

+

+	}

+

+	public static Time getRecurrence(final Task t) {

+		final List<Stimulus> lStimuli = t.getStimuli();

+		for (final Stimulus s : lStimuli) {

+			if (s instanceof PeriodicStimulus) {

+				return ((PeriodicStimulus) s).getRecurrence();

+			}

+			System.out.println("ERR: Unsupported Stimulus in Task " + t + " -> " + s);

+		}

+		return null;

+	}

+

+	// This code is form stackoverflow https://stackoverflow.com/a/2581754

+	public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(final Map<K, V> map) {

+		final List<Entry<K, V>> list = new ArrayList<>(map.entrySet());

+		list.sort(Entry.comparingByValue());

+

+		final Map<K, V> result = new LinkedHashMap<>();

+		for (final Entry<K, V> entry : list) {

+			result.put(entry.getKey(), entry.getValue());

+		}

+		return result;

+	}

+}

diff --git a/eclipse-tools/emf-graphical-viewer/.gitignore b/eclipse-tools/emf-graphical-viewer/.gitignore
new file mode 100644
index 0000000..f1c734e
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/.gitignore
@@ -0,0 +1,5 @@
+.metadata/
+
+# Eclipse target directories
+bin/
+target/
diff --git a/eclipse-tools/emf-graphical-viewer/.mvn/extensions.xml b/eclipse-tools/emf-graphical-viewer/.mvn/extensions.xml
new file mode 100644
index 0000000..710a9ec
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/.mvn/extensions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extensions>
+  <extension>
+    <groupId>org.eclipse.tycho.extras</groupId>
+    <artifactId>tycho-pomless</artifactId>
+    <version>1.6.0</version>
+  </extension>
+</extensions>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/.project b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/.project
deleted file mode 100644
index c93b42d..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.emfutils.extractor.build</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/META-INF/MANIFEST.MF
deleted file mode 100644
index a77fb88..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EMF Content Extractor Build
-Bundle-SymbolicName: org.eclipse.app4mc.emfutils.extractor.build;singleton:=true
-Bundle-Version: 1.2.0
-Bundle-Activator: org.eclipse.app4mc.emfutils.content.extractor.Activator
-Require-Bundle: org.eclipse.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7,
- JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .,
- lib/plantuml.8041.jar
-Bundle-Vendor: Eclipse APP4MC
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/about.html b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/about.html
deleted file mode 100644
index 164f781..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/pom.xml b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/pom.xml
deleted file mode 100644
index 9fed643..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.extractor.build/pom.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<project>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-  <artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-  <version>0.8.3</version> 
-  <packaging>pom</packaging>
-  <name>Ecore Reference Extractor</name>
- 
-	<properties>
-		<tycho.version>0.22.0</tycho.version>
-		<jacoco.version>0.7.4.201502262128</jacoco.version>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-		<luna-repo.url>http://download.eclipse.org/releases/luna</luna-repo.url>
-		<amalthea-repo.url>http://download.eclipse.org/app4mc/updatesites/releases/0.8.3/</amalthea-repo.url>
-		
-		<franca-repo.url>http://franca.github.io/franca/update_site/releases/0.9.1/</franca-repo.url>
-		<orbit-repo.url>http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository/</orbit-repo.url>
-		<ease-repo-url>http://download.eclipse.org/ease/update/release</ease-repo-url>
-		<sphinx-repo-url>http://download.eclipse.org/sphinx/updates/interim</sphinx-repo-url>
-	</properties>
-  	<repositories>
-<repository>
-			<id>amalthea</id>
-			<url>${amalthea-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>franca</id>
-			<url>${franca-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>luna</id>
-			<url>${luna-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>orbit</id>
-			<url>${orbit-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>ease</id>
-			<url>${ease-repo-url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>sphinx</id>
-			<url>${sphinx-repo-url}</url>
-			<layout>p2</layout>
-		</repository>
-	</repositories>
-  
-
-  <modules>
-  	<!-- Plugins -->
-    <module>../../plugins/org.eclipse.app4mc.emfutils.content.extractor</module>
-   <module>../../plugins/org.eclipse.app4mc.emfutils.metamodelviewer</module>
-   <module>../../plugins/org.eclipse.app4mc.emfutils.resourceset.mapper</module>
-
-   <module>../../plugins/net.sourceforge.plantuml</module>
-   
-    <!-- Tests -->
-  
-    <!-- Features -->
-    <module>../../features/org.eclipse.app4mc.emfutils.content.extractor.feature</module>
-	<module>../../features/org.eclipse.app4mc.emfutils.metamodelviewer.feature</module>
-	  
-    <!-- P2Repo -->
-    <module>../org.eclipse.app4mc.emfutils.p2repo</module>
-
-  </modules>
-  
-  
-  	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-maven-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<extensions>true</extensions>
-				<configuration>
-
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-compiler-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<verbose>true</verbose>
-					<source>1.8</source>
-					<target>1.8</target>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>target-platform-configuration</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<dependency-resolution>
-						<extraRequirements>
-							<requirement>
-								<type>eclipse-plugin</type>
-								<id>org.hamcrest</id>
-								<versionRange>0.0.0</versionRange>
-							</requirement>
-						</extraRequirements>
-					</dependency-resolution>
-					<environments>
-						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
-							<os>macosx</os>
-							<ws>cocoa</ws>
-							<arch>x86_64</arch>
-						</environment>
-					</environments>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-surefire-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<!-- argLine>${tycho.testArgLine}</argLine> -->
-					<forkMode>never</forkMode>
-					<includes>
-						<include>**/*Test.*</include>
-					</includes>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.jacoco</groupId>
-				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.7.4.201502262128</version>
-				<configuration>
-					<excludes>
-
-					</excludes>
-				</configuration>
-				<executions>
-					<!-- Prepares the property pointing to the JaCoCo runtime agent which
-						is passed as VM argument when Maven the Surefire plugin is executed. -->
-					<execution>
-						<id>pre-unit-test</id>
-						<goals>
-							<goal>prepare-agent</goal>
-						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
-						</configuration>
-					</execution>
-					<!-- Ensures that the code coverage report for unit tests is created
-						after unit tests have been run. -->
-					<execution>
-						<id>post-unit-test</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>report</goal>
-						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
-							<!-- Sets the output directory for the code coverage report. -->
-							<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-  
-</project>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/category.xml b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/category.xml
deleted file mode 100644
index 661b7f4..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/category.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/org.eclipse.app4mc.emfutils.metamodelviewer.feature_0.8.3.jar" id="org.eclipse.app4mc.emfutils.metamodelviewer.feature" version="0.8.3">
-      <category name="Ecore Tools"/>
-   </feature>
-   <feature url="features/org.eclipse.app4mc.emfutils.content.extractor.feature_0.8.3.jar" id="org.eclipse.app4mc.emfutils.content.extractor.feature" version="0.8.3">
-      <category name="Ecore Tools"/>
-   </feature>
-   <category-def name="Ecore Tools" label="org.eclipse.app4mc.emfutils.content.extractor"/>
-</site>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/pom.xml b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/pom.xml
deleted file mode 100644
index 973db9b..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/pom.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.p2repo</artifactId>
-	<packaging>eclipse-repository</packaging>
-	
-	<properties>
-		<org.jboss.tools.tycho-plugins.version>0.22.0</org.jboss.tools.tycho-plugins.version>
-	</properties>
-	
-	<pluginRepositories>
-		<pluginRepository>
-			<id>jboss-public-repository-group</id>
-			<name>JBoss Public Repository Group</name>
-			<url>http://repository.jboss.org/nexus/content/groups/public/</url>
-		</pluginRepository>
-
-		<pluginRepository>
-			<id>jboss-snapshots-repository</id>
-			<name>JBoss Snapshots Repository</name>
-			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
-		</pluginRepository>
-	</pluginRepositories>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-p2-repository-plugin</artifactId>
-				<version>${tycho.version}</version>
-
-				<configuration>
-					<compress/>
-				</configuration>
-			</plugin>
-
-			
-			<plugin>
-				<groupId>org.jboss.tools.tycho-plugins</groupId>
-				<artifactId>repository-utils</artifactId>
-				<version>${org.jboss.tools.tycho-plugins.version}</version>
-
-				<executions>
-					<execution>
-						<id>generate-facade</id>
-						<phase>package</phase>
-	
-						<goals>
-							<goal>generate-repository-facade</goal>
-						</goals>
-	
-						<configuration>
-							<siteTemplateFolder>siteTemplate</siteTemplateFolder>
-							
-							<!-- Symbols are used while expanding index.html template -->
-							<symbols>
-								<update.site.name>${project.parent.name}</update.site.name>
-								<target.eclipse.version>4.3.2</target.eclipse.version>
-							</symbols>
-
-							<associateSites>
-								<!-- site>http://hudson.eclipse.org/hudson/job/damos-master/lastSuccessfulBuild/artifact/update-site</site>
-								<site>http://download.eclipse.org/modeling/emf/emf/updates/releases</site>
-								<site>http://download.eclipse.org/modeling/emf/compare/updates/releases</site>
-								<site>http://download.eclipse.org/rmf/updates</site>
-								<site>http://download.eclipse.org/sphinx/updates/interim</site>
-								<site>http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases</site>
-								<site>http://franca.github.io/franca/update_site/releases</site>
-								<site>http://updates.yakindu.org/sct/kepler/releases</site>
-								
-								<site>http://download.eclipse.org/sphinx/updates/interim</site-->
-							</associateSites>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-</project>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/site.xml b/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/site.xml
deleted file mode 100644
index 806f343..0000000
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/site.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/org.eclipse.app4mc.emfutils.content.extractor.feature_0.8.3.201704071342.jar" id="org.eclipse.app4mc.emfutils.content.extractor.feature" version="0.8.3.201704071342">
-      <category name="Ecore Tools"/>
-   </feature>
-   <feature url="features/org.eclipse.app4mc.emfutils.metamodelviewer.feature_0.8.3.201704071342.jar" id="org.eclipse.app4mc.emfutils.metamodelviewer.feature" version="0.8.3.201704071342">
-      <category name="Ecore Tools"/>
-   </feature>
-   <category-def name="Ecore Tools" label="Ecore Tools"/>
-</site>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.gitignore b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/.gitignore
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.gitignore
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/.gitignore
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/.project
similarity index 83%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/.project
index 2b681c4..30a42d9 100644
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project
+++ b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.emfutils.metamodelviewer.feature</name>
+	<name>org.eclipse.app4mc.emf.metamodelviewers</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/about.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/about.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/about.html
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/build.properties b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/build.properties
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/build.properties
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/build.properties
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/epl-2.0.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/epl-2.0.html
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/feature.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/feature.xml
new file mode 100644
index 0000000..d4d985d
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.metamodelviewers/feature.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.app4mc.emf.metamodelviewers"
+      label="APP4MC EMF MetaModel Viewers"
+      version="0.9.8.qualifier"
+      provider-name="Eclipse APP4MC"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2.qualifier">
+
+   <description url="https://projects.eclipse.org/projects/technology.app4mc">
+      APP4MC EMF MetaModel Viewers
+   </description>
+
+   <copyright url="https://projects.eclipse.org/projects/technology.app4mc">
+      (c) Copyright Robert Bosch GmbH. 2017-2020. 
+All rights reserved.
+   </copyright>
+
+   <requires>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.sphinx.emf"/>
+      <import plugin="org.eclipse.ui"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.app4mc.emf.metamodelviewer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/.gitignore b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/.gitignore
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/.gitignore
rename to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/.gitignore
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/.project
similarity index 83%
copy from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project
copy to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/.project
index 2b681c4..921ceb6 100644
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/.project
+++ b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.emfutils.metamodelviewer.feature</name>
+	<name>org.eclipse.app4mc.emf.viewers.graphical</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/about.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/about.html
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/about.html
copy to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/build.properties b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/build.properties
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/build.properties
copy to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/build.properties
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/epl-2.0.html
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/epl-2.0.html
copy to eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/feature.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/feature.xml
new file mode 100644
index 0000000..f9d3655
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emf.viewers.graphical/feature.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.app4mc.emf.viewers.graphical"
+      label="APP4MC EMF Graphical Viewers"
+      version="0.9.8.qualifier"
+      provider-name="Eclipse APP4MC"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2.qualifier">
+
+   <description url="https://projects.eclipse.org/projects/technology.app4mc">
+      APP4MC EMF Graphical Viewers
+   </description>
+
+   <copyright url="https://projects.eclipse.org/projects/technology.app4mc">
+      (c) Copyright Robert Bosch GmbH. 2017-2020. 
+All rights reserved.
+   </copyright>
+
+   <includes
+         id="org.eclipse.app4mc.emf.metamodelviewers"
+         version="0.0.0"/>
+
+   <requires>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.emf.ecore"/>
+      <import plugin="org.eclipse.emf.ecore.xmi"/>
+      <import plugin="org.eclipse.sphinx.emf"/>
+      <import plugin="org.eclipse.sphinx.emf.editors"/>
+      <import plugin="org.eclipse.sphinx.emf.editors.forms"/>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.ui.browser"/>
+      <import feature="net.sourceforge.plantuml.ecore.feature" version="1.1.24"/>
+      <import feature="net.sourceforge.plantuml.feature" version="1.1.24"/>
+      <import feature="net.sourceforge.plantuml.lib.feature" version="1.2019.11"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.app4mc.emf.viewer.plantuml"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/.project b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/.project
deleted file mode 100644
index b090637..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.emfutils.content.extractor.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/feature.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/feature.xml
deleted file mode 100644
index 92e1e33..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/feature.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.app4mc.emfutils.content.extractor.feature" label="AMALTHEA Graphical Tools" provider-name="Eclipse APP4MC" version="0.8.3">
-	<copyright url="http://www.example.com/copyright">
-		[Enter Copyright Description here.]
-	</copyright>
-	<description url="http://www.example.com/description">
-		[Enter Feature Description here.]
-	</description>
-	<includes id="org.eclipse.app4mc.emfutils.metamodelviewer.feature" version="0.0.0"/>
-	<license url="http://www.example.com/license">
-		[Enter License Description here.]
-	</license>
-	<plugin download-size="0" id="net.sourceforge.plantuml" install-size="0" version="0.0.0"/>
-	<plugin download-size="0" id="org.eclipse.app4mc.emfutils.content.extractor" install-size="0" unpack="false" version="0.0.0"/>
-	<requires>
-		<import plugin="org.eclipse.core.runtime"/>
-		<import plugin="org.eclipse.emf.ecore"/>
-		<import plugin="org.eclipse.emf.ecore.xmi"/>
-		<import plugin="org.eclipse.sphinx.emf"/>
-		<import plugin="org.eclipse.sphinx.emf.editors"/>
-		<import plugin="org.eclipse.sphinx.emf.editors.forms"/>
-		<import plugin="org.eclipse.ui"/>
-		<import plugin="org.eclipse.ui.browser"/>
-	</requires>
-</feature>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/pom.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/pom.xml
deleted file mode 100644
index 19ab779..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.content.extractor.feature/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.content.extractor.feature</artifactId>
-	<packaging>eclipse-feature</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/about.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/about.html
deleted file mode 100644
index 164f781..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/build.properties b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/build.properties
deleted file mode 100644
index 1690c70..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# *******************************************************************************
-#  Copyright (c) 2017 - 2018 Robert Bosch GmbH and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#   Contributors:
-#  	 Robert Bosch GmbH - initial API and implementation
-# 
-# *******************************************************************************
-bin.includes = feature.xml,\
-               epl-2.0.html,\
-               about.html
-src.includes = about.html,\
-               epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/feature.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/feature.xml
deleted file mode 100644
index e6a90b8..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/feature.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.app4mc.emfutils.metamodelviewer.feature" label="AMALTHEA MetaModel Viewer" provider-name="Eclipse APP4MC" version="0.8.3">
-	<copyright url="http://www.example.com/copyright">
-		[Enter Copyright Description here.]
-	</copyright>
-	<description url="http://www.example.com/description">
-		[Enter Feature Description here.]
-	</description>
-	<license url="http://www.example.com/license">
-		[Enter License Description here.]
-	</license>
-	<plugin download-size="0" id="org.eclipse.app4mc.emfutils.metamodelviewer" install-size="0" unpack="false" version="0.0.0"/>
-	<requires>
-		<import plugin="org.eclipse.core.runtime"/>
-		<import plugin="org.eclipse.sphinx.emf"/>
-		<import plugin="org.eclipse.ui"/>
-	</requires>
-</feature>
diff --git a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/pom.xml b/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/pom.xml
deleted file mode 100644
index 0dd477c..0000000
--- a/eclipse-tools/emf-graphical-viewer/features/org.eclipse.app4mc.emfutils.metamodelviewer.feature/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.metamodelviewer.feature</artifactId>
-	<packaging>eclipse-feature</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.classpath b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.classpath
deleted file mode 100644
index 3cd64d4..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="lib/plantuml-2018.8.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.gitignore b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.gitignore
deleted file mode 100644
index 09e3bc9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/
-/target/
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/META-INF/MANIFEST.MF
deleted file mode 100644
index 19c6390..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,152 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Plantuml
-Bundle-SymbolicName: net.sourceforge.plantuml
-Bundle-Version: 8000.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ClassPath: lib/plantuml-2018.8.jar
-Export-Package: gen.lib.cdt,
- gen.lib.cgraph,
- gen.lib.circogen,
- gen.lib.common,
- gen.lib.dotgen,
- gen.lib.fdpgen,
- gen.lib.gvc,
- gen.lib.label,
- gen.lib.ortho,
- gen.lib.pack,
- gen.lib.pathplan,
- gen.lib.xdot,
- gen.plugin.core,
- gen.plugin.dot_layout,
- h,
- net.sourceforge.plantuml,
- net.sourceforge.plantuml.activitydiagram,
- net.sourceforge.plantuml.activitydiagram.command,
- net.sourceforge.plantuml.activitydiagram3,
- net.sourceforge.plantuml.activitydiagram3.command,
- net.sourceforge.plantuml.activitydiagram3.ftile,
- net.sourceforge.plantuml.activitydiagram3.ftile.vcompact,
- net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond,
- net.sourceforge.plantuml.activitydiagram3.ftile.vertical,
- net.sourceforge.plantuml.anim,
- net.sourceforge.plantuml.ant,
- net.sourceforge.plantuml.api,
- net.sourceforge.plantuml.api.mda.option2,
- net.sourceforge.plantuml.api.mda.option3,
- net.sourceforge.plantuml.asciiart,
- net.sourceforge.plantuml.bpm,
- net.sourceforge.plantuml.braille,
- net.sourceforge.plantuml.brotli,
- net.sourceforge.plantuml.classdiagram,
- net.sourceforge.plantuml.classdiagram.command,
- net.sourceforge.plantuml.code,
- net.sourceforge.plantuml.command,
- net.sourceforge.plantuml.command.note,
- net.sourceforge.plantuml.command.note.sequence,
- net.sourceforge.plantuml.command.regex,
- net.sourceforge.plantuml.compositediagram,
- net.sourceforge.plantuml.compositediagram.command,
- net.sourceforge.plantuml.core,
- net.sourceforge.plantuml.creole,
- net.sourceforge.plantuml.cucadiagram,
- net.sourceforge.plantuml.cucadiagram.dot,
- net.sourceforge.plantuml.cucadiagram.entity,
- net.sourceforge.plantuml.cute,
- net.sourceforge.plantuml.dedication,
- net.sourceforge.plantuml.definition,
- net.sourceforge.plantuml.descdiagram,
- net.sourceforge.plantuml.descdiagram.command,
- net.sourceforge.plantuml.directdot,
- net.sourceforge.plantuml.donors,
- net.sourceforge.plantuml.eggs,
- net.sourceforge.plantuml.eps,
- net.sourceforge.plantuml.flashcode,
- net.sourceforge.plantuml.flowdiagram,
- net.sourceforge.plantuml.font,
- net.sourceforge.plantuml.ftp,
- net.sourceforge.plantuml.fun,
- net.sourceforge.plantuml.geom,
- net.sourceforge.plantuml.geom.kinetic,
- net.sourceforge.plantuml.golem,
- net.sourceforge.plantuml.graph,
- net.sourceforge.plantuml.graph2,
- net.sourceforge.plantuml.graphic,
- net.sourceforge.plantuml.graphic.color,
- net.sourceforge.plantuml.hector,
- net.sourceforge.plantuml.hector2,
- net.sourceforge.plantuml.hector2.continuity,
- net.sourceforge.plantuml.hector2.graphic,
- net.sourceforge.plantuml.hector2.layering,
- net.sourceforge.plantuml.hector2.mpos,
- net.sourceforge.plantuml.html,
- net.sourceforge.plantuml.jdot,
- net.sourceforge.plantuml.jungle,
- net.sourceforge.plantuml.math,
- net.sourceforge.plantuml.mda,
- net.sourceforge.plantuml.mjpeg,
- net.sourceforge.plantuml.objectdiagram,
- net.sourceforge.plantuml.objectdiagram.command,
- net.sourceforge.plantuml.openiconic,
- net.sourceforge.plantuml.openiconic.data,
- net.sourceforge.plantuml.oregon,
- net.sourceforge.plantuml.pdf,
- net.sourceforge.plantuml.png,
- net.sourceforge.plantuml.posimo,
- net.sourceforge.plantuml.postit,
- net.sourceforge.plantuml.preproc,
- net.sourceforge.plantuml.printskin,
- net.sourceforge.plantuml.project,
- net.sourceforge.plantuml.project.command,
- net.sourceforge.plantuml.project.graphic,
- net.sourceforge.plantuml.project2,
- net.sourceforge.plantuml.project2.command,
- net.sourceforge.plantuml.project3,
- net.sourceforge.plantuml.real,
- net.sourceforge.plantuml.salt,
- net.sourceforge.plantuml.salt.element,
- net.sourceforge.plantuml.salt.factory,
- net.sourceforge.plantuml.sequencediagram,
- net.sourceforge.plantuml.sequencediagram.command,
- net.sourceforge.plantuml.sequencediagram.graphic,
- net.sourceforge.plantuml.sequencediagram.puma,
- net.sourceforge.plantuml.sequencediagram.teoz,
- net.sourceforge.plantuml.skin,
- net.sourceforge.plantuml.skin.bluemodern,
- net.sourceforge.plantuml.skin.rose,
- net.sourceforge.plantuml.statediagram,
- net.sourceforge.plantuml.statediagram.command,
- net.sourceforge.plantuml.stats,
- net.sourceforge.plantuml.stats.api,
- net.sourceforge.plantuml.suggest,
- net.sourceforge.plantuml.svek,
- net.sourceforge.plantuml.svek.extremity,
- net.sourceforge.plantuml.svek.image,
- net.sourceforge.plantuml.svg,
- net.sourceforge.plantuml.swing,
- net.sourceforge.plantuml.syntax,
- net.sourceforge.plantuml.telnet,
- net.sourceforge.plantuml.tikz,
- net.sourceforge.plantuml.timingdiagram,
- net.sourceforge.plantuml.ugraphic,
- net.sourceforge.plantuml.ugraphic.arc,
- net.sourceforge.plantuml.ugraphic.crossing,
- net.sourceforge.plantuml.ugraphic.eps,
- net.sourceforge.plantuml.ugraphic.g2d,
- net.sourceforge.plantuml.ugraphic.hand,
- net.sourceforge.plantuml.ugraphic.html5,
- net.sourceforge.plantuml.ugraphic.sprite,
- net.sourceforge.plantuml.ugraphic.svg,
- net.sourceforge.plantuml.ugraphic.tikz,
- net.sourceforge.plantuml.ugraphic.txt,
- net.sourceforge.plantuml.ugraphic.visio,
- net.sourceforge.plantuml.utils,
- net.sourceforge.plantuml.version,
- net.sourceforge.plantuml.vizjs,
- net.sourceforge.plantuml.xmi,
- net.sourceforge.plantuml.xmlsc,
- net.sourceforge.plantuml.zopfli,
- smetana.core,
- smetana.core.amiga,
- smetana.core.debug
-Automatic-Module-Name: net.sourceforge.plantuml
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/build.properties b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/build.properties
deleted file mode 100644
index dc20abe..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# *******************************************************************************
-#  Copyright (c) 2017 - 2018 Robert Bosch GmbH and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#   Contributors:
-#  	 Robert Bosch GmbH - initial API and implementation
-# 
-# *******************************************************************************
-bin.includes = META-INF/,\
-               lib-src/,\
-               lib/plantuml-2018.8.jar
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/README.txt b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/README.txt
deleted file mode 100644
index 6416959..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Goto http://plantuml.sourceforge.net/ for product info
-
-CQ clearance as a part of eclipse IPZilla (CQ 8178): https://dev.eclipse.org/ipzilla/show_bug.cgi?id=8178 
-
-Downloaded jar from : http://sourceforge.net/projects/plantuml/files/plantuml-jar-epl-8000.zip/download
-
-Downloaded sources from :  https://dev.eclipse.org/ipzilla/attachment.cgi?id=11627
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/plantuml-sources-epl-8000.zip b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/plantuml-sources-epl-8000.zip
deleted file mode 100644
index 69db480..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib-src/plantuml-sources-epl-8000.zip
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib/plantuml-2018.8.jar b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib/plantuml-2018.8.jar
deleted file mode 100644
index 7f4bde6..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/lib/plantuml-2018.8.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/license/license.txt b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/license/license.txt
deleted file mode 100644
index 47adaf9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/license/license.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-========================================================================
-PlantUML : a free UML diagram generator
-========================================================================
-
-(C) Copyright 2009-2014, Arnaud Roques
-
-Project Info:  http://plantuml.sourceforge.net
-
-PlantUML is free software; you can redistribute it and/or modify it
-under the terms of the Eclipse Public License.
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
-LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
-
-ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
-RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-You may obtain a copy of the License at
-
-http://www.eclipse.org/legal/epl-v10.html
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Note that images (whatever their format : PNG, SVG...) generated by running PlantUML
-are owned by the author of their corresponding sources code (that is, their
-textual description in PlantUML language). Those images are not covered by
-the Eclipse Public License.
-
-The generated images can then be used without any reference to the Eclipse Public License.
-It is not even necessary to stipulate that they have been generated with PlantUML,
-also this will be appreciate by PlantUML team.
-
-There is an exception : if the textual description in PlantUML language is also covered
-by a license (like the EPL), then the generated images are logically covered
-by the very same license.
-
-Icon provided by OpenIconic :  https://useiconic.com/open/
-
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/pom.xml b/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/pom.xml
deleted file mode 100644
index f489eaa..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>net.sourceforge.plantuml</artifactId>
-	<packaging>eclipse-plugin</packaging>
-	<version>8000.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.classpath
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.classpath
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.gitignore b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.gitignore
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.gitignore
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.gitignore
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.project
similarity index 91%
copy from eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.project
index 7614bd0..751de6a 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>net.sourceforge.plantuml</name>
+	<name>org.eclipse.app4mc.emf.metamodelviewer</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.settings/org.eclipse.jdt.core.prefs
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/.settings/org.eclipse.jdt.core.prefs
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b54e4f2
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: APP4MC EMF Metamodel Viewer
+Bundle-SymbolicName: org.eclipse.app4mc.emf.metamodelviewer;singleton:=true
+Bundle-Version: 0.9.8.qualifier
+Bundle-Vendor: Eclipse APP4MC
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.sphinx.emf,
+ org.eclipse.jface;bundle-version="3.14.0",
+ org.eclipse.ui
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Activator: org.eclipse.app4mc.emf.metamodelviewer.base.Activator
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.app4mc.emf.metamodelviewer.base,
+ org.eclipse.app4mc.emf.metamodelviewer.dialogs,
+ org.eclipse.app4mc.emf.metamodelviewer.preferences,
+ org.eclipse.app4mc.emf.metamodelviewer.utils,
+ org.eclipse.app4mc.emf.metamodelviewer.views,
+ org.eclipse.app4mc.emf.metamodelviewer.views.providers
+Automatic-Module-Name: org.eclipse.app4mc.emf.metamodelviewer
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/about.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/about.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/about.html
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/build.properties b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/build.properties
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/build.properties
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/build.properties
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/epl-2.0.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/epl-2.0.html
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/abstract_class_obj.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/abstract_class_obj.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/abstract_class_obj.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/abstract_class_obj.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute_containment.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute_containment.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute_containment.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute_containment.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute_reference.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute_reference.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/attribute_reference.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/attribute_reference.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/class_obj.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/class_obj.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/class_obj.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/class_obj.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/container.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/container.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/container.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/container.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/downward_co.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/downward_co.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/downward_co.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/downward_co.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/enum_obj.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/enum_obj.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/enum_obj.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/enum_obj.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/hierarchy.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/hierarchy.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/hierarchy.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/hierarchy.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/interface_obj.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/interface_obj.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/interface_obj.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/interface_obj.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/prop_ps.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/prop_ps.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/prop_ps.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/prop_ps.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/register_ecores.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/register_ecores.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/register_ecores.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/register_ecores.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/sample.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/sample.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/sample.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/sample.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/super_co.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/super_co.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/super_co.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/super_co.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/type_obj.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/type_obj.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/type_obj.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/icons/type_obj.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/plugin.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/plugin.xml
new file mode 100644
index 0000000..8834d5d
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/plugin.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.views">
+      <category
+            name="Meta Model Explorer"
+            id="org.eclipse.app4mc.emf.metamodelviewer.explorer.view.category">
+      </category>
+      <view
+            allowMultiple="true"
+            category="org.eclipse.app4mc.emf.metamodelviewer.explorer.view.category"
+            class="org.eclipse.app4mc.emf.metamodelviewer.views.MetaModelExplorerView"
+            icon="icons/sample.gif"
+            id="org.eclipse.app4mc.emf.metamodelviewer.views.MetaModel-ExplorerView"
+            name="Meta Model Explorer">
+      </view>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.eclipse.app4mc.emf.metamodelviewer.preferences.PreferenceInitializer">
+      </initializer>
+   </extension>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.eclipse.app4mc.emf.metamodelviewer.preferences.MetaModelViewerPreferencePage"
+            id="org.eclipse.app4mc.emf.metamodelviewer.page1"
+            name="Meta Model Viewer">
+      </page>
+   </extension>
+
+</plugin>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/base/Activator.java
similarity index 86%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/base/Activator.java
index c86b924..952b3f5 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/base/Activator.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor;
+
+package org.eclipse.app4mc.emf.metamodelviewer.base;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
@@ -23,7 +24,7 @@
 public class Activator extends AbstractUIPlugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.app4mc.emfutils.content.extractor"; //$NON-NLS-1$
+	public static final String PLUGIN_ID = "org.eclipse.app4mc.emf.metamodelviewer"; //$NON-NLS-1$
 
 	// The shared instance
 	private static Activator plugin;
@@ -36,7 +37,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
 	 */
 	@Override
@@ -47,7 +48,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
 	 */
 	@Override
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/dialogs/SelectedElementContentDialog.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/dialogs/SelectedElementContentDialog.java
similarity index 84%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/dialogs/SelectedElementContentDialog.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/dialogs/SelectedElementContentDialog.java
index 71538d3..8de6d96 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/dialogs/SelectedElementContentDialog.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/dialogs/SelectedElementContentDialog.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,15 +12,16 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.dialogs;
+
+package org.eclipse.app4mc.emf.metamodelviewer.dialogs;
 
 import java.util.AbstractMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map.Entry;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
-import org.eclipse.app4mc.emfutils.metamodelviewer.preferences.MetaModelViewerPreferenceConstants;
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
+import org.eclipse.app4mc.emf.metamodelviewer.preferences.MetaModelViewerPreferenceConstants;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.action.IContributionItem;
@@ -54,7 +55,6 @@
 		this.iWorkbenchPartSite = iWorkbenchPartSite;
 	}
 
-
 	@Override
 	protected Control createDialogArea(final Composite parent) {
 		final Composite container = (Composite) super.createDialogArea(parent);
@@ -73,13 +73,11 @@
 		//
 		// this.tv = filteredTree.getViewer();
 
-
 		this.tv = new TreeViewer(container);
 		this.tv.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 		this.tv.setContentProvider(
-				new org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewContentProvider());
-		this.tv.setLabelProvider(new org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewLabelProvider());
-
+				new org.eclipse.app4mc.emf.metamodelviewer.views.providers.ViewContentProvider());
+		this.tv.setLabelProvider(new org.eclipse.app4mc.emf.metamodelviewer.views.providers.ViewLabelProvider());
 
 		final Entry<String, EObject> entry = new AbstractMap.SimpleEntry<String, EObject>("Selected Element",
 				this.eObject);
@@ -117,7 +115,6 @@
 		getIWorkbenchPartSite().registerContextMenu(menuMgr, this.tv);
 	}
 
-
 	private void hookDoubleClickAction() {
 		this.tv.addDoubleClickListener(new IDoubleClickListener() {
 			@Override
@@ -129,20 +126,24 @@
 				if (selection instanceof TreeSelection) {
 					final Object firstElement = ((TreeSelection) selection).getFirstElement();
 					if (firstElement instanceof EObject) {
-						 Shell parentShell = null;
-							
-							String displayDialogStyle=(Activator.getDefault().getPreferenceStore().getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
-							
-							if(displayDialogStyle !=null && displayDialogStyle.equals(MetaModelViewerPreferenceConstants.V_ON_TOP)){
-								parentShell=new Shell(SWT.ON_TOP);
-							}else{
-								parentShell=new Shell();
-							}
+						Shell parentShell = null;
 
-						// final String name = ((firstElement instanceof EClass) ? ((EClass) firstElement).getName() :
+						String displayDialogStyle = (Activator.getDefault().getPreferenceStore()
+								.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
+
+						if (displayDialogStyle != null
+								&& displayDialogStyle.equals(MetaModelViewerPreferenceConstants.V_ON_TOP)) {
+							parentShell = new Shell(SWT.ON_TOP);
+						} else {
+							parentShell = new Shell();
+						}
+
+						// final String name = ((firstElement instanceof EClass) ? ((EClass)
+						// firstElement).getName() :
 						// "");
 						//
-						// parentShell.setText("Details of : " + ((EClass) firstElement).eClass().getName() + " " +
+						// parentShell.setText("Details of : " + ((EClass)
+						// firstElement).eClass().getName() + " " +
 						// name);
 						//
 						//
@@ -153,7 +154,6 @@
 						// taskItem.setOverlayText(name);
 						// taskItem.setText(name);
 
-
 						new SelectedElementContentDialog(parentShell, getIWorkbenchPartSite(), (EObject) firstElement)
 								.open();
 
@@ -186,14 +186,12 @@
 		return new Point(450, 300);
 	}
 
-
 	@Override
 	protected void setShellStyle(final int newShellStyle) {
 		super.setShellStyle(SWT.CLOSE | SWT.MODELESS | SWT.BORDER | SWT.TITLE | SWT.RESIZE);
 		setBlockOnOpen(false);
 	}
 
-
 	public IWorkbenchPartSite getIWorkbenchPartSite() {
 		return this.iWorkbenchPartSite;
 	}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java
similarity index 86%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java
index 7a9cfcf..33bf14b 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferenceConstants.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.preferences;
+
+package org.eclipse.app4mc.emf.metamodelviewer.preferences;
 
 /**
  * Constant definitions for plug-in preferences
@@ -22,8 +23,7 @@
 	public static final String P_DIALOG_DISPLAY = "P_DIALOG_DISPLAY";
 
 	public static final String V_ON_TOP = "On Top";
-	
-	public static final String V_DEFAUT = "Default";
 
+	public static final String V_DEFAUT = "Default";
 
 }
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferencePage.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferencePage.java
similarity index 66%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferencePage.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferencePage.java
index ae3c590..4fdf827 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/MetaModelViewerPreferencePage.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/MetaModelViewerPreferencePage.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,24 +12,21 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.preferences;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
+package org.eclipse.app4mc.emf.metamodelviewer.preferences;
+
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
 import org.eclipse.jface.preference.ComboFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
- 
-
-public class MetaModelViewerPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
+public class MetaModelViewerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
 	public MetaModelViewerPreferencePage() {
 		super(GRID);
 		setPreferenceStore(Activator.getDefault().getPreferenceStore());
-		setDescription(
-				"Preference page to specify the properties/behaviour of MetaModel viewer");
+		setDescription("Preference page to specify the properties/behaviour of MetaModel viewer");
 	}
 
 	/**
@@ -39,17 +36,12 @@
 	@Override
 	public void createFieldEditors() {
 
- 
+		final String[][] options = {
+				{ MetaModelViewerPreferenceConstants.V_DEFAUT, MetaModelViewerPreferenceConstants.V_DEFAUT },
+				{ MetaModelViewerPreferenceConstants.V_ON_TOP, MetaModelViewerPreferenceConstants.V_ON_TOP } };
 
-		final String[][] options = { { MetaModelViewerPreferenceConstants.V_DEFAUT,
-			MetaModelViewerPreferenceConstants.V_DEFAUT} ,{ MetaModelViewerPreferenceConstants.V_ON_TOP, MetaModelViewerPreferenceConstants.V_ON_TOP }
-				};
-		
-		
-		addField(new ComboFieldEditor(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY, "&Configure the way child dialogs should be displayed", options,
-				getFieldEditorParent()));
-
-		 
+		addField(new ComboFieldEditor(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY,
+				"&Configure the way child dialogs should be displayed", options, getFieldEditorParent()));
 
 	}
 
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/PreferenceInitializer.java
similarity index 75%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/PreferenceInitializer.java
index 08cdcee..2efdec9 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/preferences/PreferenceInitializer.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,9 +12,10 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.preferences;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
+package org.eclipse.app4mc.emf.metamodelviewer.preferences;
+
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
 
@@ -31,7 +32,9 @@
 	@Override
 	public void initializeDefaultPreferences() {
 		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-		store.setDefault(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY, store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY) != null
-				? store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY) : "");
+		store.setDefault(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY,
+				store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY) != null
+						? store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY)
+						: "");
 	}
 }
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/ElementSearchPatternFilter.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/ElementSearchPatternFilter.java
similarity index 82%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/ElementSearchPatternFilter.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/ElementSearchPatternFilter.java
index 9fd047a..d11f69b 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/ElementSearchPatternFilter.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/ElementSearchPatternFilter.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -21,7 +22,6 @@
 
 public class ElementSearchPatternFilter extends PatternFilter {
 
-
 	private boolean filterForEClassifiersBoolean;
 
 	private boolean filterForAttributesBoolean;
@@ -38,11 +38,9 @@
 
 		if (element instanceof SuperClassesListBuilder) {
 			return false;
-		}
-		else if (element instanceof SubClassesListBuilder) {
+		} else if (element instanceof SubClassesListBuilder) {
 			return false;
-		}
-		else if (element instanceof EStructuralFeature) {
+		} else if (element instanceof EStructuralFeature) {
 			return false;
 		}
 
@@ -62,21 +60,17 @@
 			}
 			return super.isLeafMatch(viewer, element);
 
-		}
-		else if ((element instanceof EStructuralFeature)) {
+		} else if ((element instanceof EStructuralFeature)) {
 			if (!isFilterForAttributesBoolean()) {
 				return false;
 			}
 			return super.isLeafMatch(viewer, element);
 
-		}
-		else if (element instanceof SuperClassesListBuilder) {
+		} else if (element instanceof SuperClassesListBuilder) {
 			return false;
-		}
-		else if (element instanceof org.eclipse.app4mc.emfutils.metamodelviewer.utils.SubClassesListBuilder) {
+		} else if (element instanceof org.eclipse.app4mc.emf.metamodelviewer.utils.SubClassesListBuilder) {
 			return false;
-		}
-		else if (element instanceof TypeElement) {
+		} else if (element instanceof TypeElement) {
 			return false;
 		}
 		return super.isLeafMatch(viewer, element);
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/PluginUtils.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/PluginUtils.java
similarity index 82%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/PluginUtils.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/PluginUtils.java
index de67922..6d84865 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/PluginUtils.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/PluginUtils.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,12 +12,13 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import java.io.IOException;
 import java.net.URL;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.jface.resource.ImageDescriptor;
 
@@ -34,11 +35,9 @@
 				fileURL = FileLocator.toFileURL(entry);
 				if (fileURL != null) {
 
-
 					return ImageDescriptor.createFromURL(fileURL);
 				}
-			}
-			catch (final IOException e) {
+			} catch (final IOException e) {
 				e.printStackTrace();
 			}
 
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/RegisterECOREfilesAction.java
similarity index 82%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/RegisterECOREfilesAction.java
index 814999c..e57bad8 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/RegisterECOREfilesAction.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -13,7 +13,7 @@
  ********************************************************************************
  */
 
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import java.io.File;
 import java.io.IOException;
@@ -26,8 +26,8 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
@@ -39,48 +39,47 @@
 
 	@SuppressWarnings({ "unused", "rawtypes", "unchecked" })
 	public static ResourceSet loadECOREs(List<String> ecoreFiles, ComboViewer combo_ecore) throws IOException {
-		
+
 		final Registry master_ePackageRegistry = EPackage.Registry.INSTANCE;
-		
+
 		System.out.println(master_ePackageRegistry.size());
-		
+
 		ResourceSet metaDataResourceSet = new ResourceSetImpl();
 
-		if(metaDataResourceSet instanceof ResourceSetImpl){
+		if (metaDataResourceSet instanceof ResourceSetImpl) {
 			((ResourceSetImpl) metaDataResourceSet).setURIResourceMap(new HashMap<>());
 		}
-		Map<String, Object> extensionToFactoryMap = metaDataResourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap();
+		Map<String, Object> extensionToFactoryMap = metaDataResourceSet.getResourceFactoryRegistry()
+				.getExtensionToFactoryMap();
 
 		extensionToFactoryMap.put("ecore", new EcoreResourceFactoryImpl());
 
 //		extensionToFactoryMap.put("xmi", new XMIResourceFactoryImpl());
-		
+
 		// resourceSet.getURIConverter().getURIMap().putAll(EcorePlugin.computePlatformURIMap(true));
 
 		EcorePackage ecorePackage = EcorePackage.eINSTANCE;
 
 		// register Ecore model in resourceSet registry
 		Map packageRegistry = metaDataResourceSet.getPackageRegistry();
-		
-		  packageRegistry.put("http://www.eclipse.org/emf/2002/Ecore",
-				  EcorePackage.eINSTANCE);
-		
+
+		packageRegistry.put("http://www.eclipse.org/emf/2002/Ecore", EcorePackage.eINSTANCE);
 
 		for (String ecorePath : ecoreFiles) {
 
 			EPackage loadEPackage = loadEPackage(ecorePath, metaDataResourceSet);
 
-			if(packageRegistry.containsKey(loadEPackage.getNsURI())){
+			if (packageRegistry.containsKey(loadEPackage.getNsURI())) {
 				Object object = packageRegistry.get(loadEPackage.getNsURI());
-				
-				if(object instanceof EPackage){
-					((EPackage)object).getESubpackages().add(loadEPackage);
+
+				if (object instanceof EPackage) {
+					((EPackage) object).getESubpackages().add(loadEPackage);
 				}
-			}else{
+			} else {
 				packageRegistry.put(loadEPackage.getNsURI(), loadEPackage);
-				
+
 			}
-			
+
 //			master_ePackageRegistry.put(loadEPackage.getNsURI(), loadEPackage);
 
 		}
@@ -88,27 +87,24 @@
 		EcoreUtil.resolveAll(metaDataResourceSet);
 
 		/*-for sorting */
-		
+
 		ArrayList arrayList = new ArrayList(master_ePackageRegistry.keySet());
 
 		Collections.sort(arrayList);
-		
+
 		arrayList.addAll(0, metaDataResourceSet.getPackageRegistry().keySet());
-		
+
 		master_ePackageRegistry.putAll(metaDataResourceSet.getPackageRegistry());
-		
-		
+
 		combo_ecore.setInput(arrayList.toArray());
-		
-		
+
 		return metaDataResourceSet;
 	}
-	
-	private static EPackage loadEPackage(String path,  ResourceSet metaResourceSet) throws IOException { 
 
+	private static EPackage loadEPackage(String path, ResourceSet metaResourceSet) throws IOException {
 
 //		path = path.contains("file:////") ? path : "file:////" + getCanonicalPathFullPath(path);
-		path =  getCanonicalPathFullPath(path);
+		path = getCanonicalPathFullPath(path);
 
 //		Resource metaResource = metaResourceSet.getResource(URI.createURI(path), true);
 		Resource metaResource = metaResourceSet.getResource(URI.createFileURI(path), true);
@@ -118,9 +114,9 @@
 		EObject eObject = metaResource.getContents().get(0);
 
 		return (EPackage) eObject;
-	
+
 	}
-	
+
 	private static String getCanonicalPathFullPath(String path) throws IOException {
 
 		File file = new File(path);
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SubClassesListBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SubClassesListBuilder.java
similarity index 88%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SubClassesListBuilder.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SubClassesListBuilder.java
index 040bb44..d0a6fbc 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SubClassesListBuilder.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SubClassesListBuilder.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -51,12 +52,10 @@
 
 				this.allSubClasses.addAll(classList.getAllSubClasses());
 
-
 			}
 
 		}
 
-
 		return this.allSubClasses;
 
 	}
@@ -82,30 +81,29 @@
 //					final EObject eObject = contents.get(0);
 
 					for (EObject eObj : contents) {
-						
+
 						if (eObj instanceof EPackage) {
 							allSubClasses.addAll(getSubClasses(selectedObjClass, (EPackage) eObj));
 						}
-						
+
 					}
 				}
 
 			}
-		}
-		else {
+		} else {
 
 			final EPackage ePackage = selectedObjClass.getEPackage();
-			
-			if(ePackage !=null){
-				EObject rootEPackage=org.eclipse.emf.ecore.util.EcoreUtil.getRootContainer(selectedObjClass);
-				
-				if(rootEPackage instanceof EPackage){
+
+			if (ePackage != null) {
+				EObject rootEPackage = org.eclipse.emf.ecore.util.EcoreUtil.getRootContainer(selectedObjClass);
+
+				if (rootEPackage instanceof EPackage) {
 					return getSubClasses(selectedObjClass, (EPackage) rootEPackage);
-				} 
-			} 
-				
-				return getSubClasses(selectedObjClass, ePackage);
-			
+				}
+			}
+
+			return getSubClasses(selectedObjClass, ePackage);
+
 		}
 
 		return allSubClasses;
@@ -113,17 +111,15 @@
 	}
 
 	private List<EClass> getSubClasses(final EClass selectedObjClass, final EPackage ePackage) {
-		
-		
-		
+
 		final List<EClass> allSubClasses = new ArrayList<EClass>();
 
 		EList<EPackage> eSubpackages = ePackage.getESubpackages();
-		
+
 		for (EPackage eSubPackage : eSubpackages) {
 			allSubClasses.addAll(getSubClasses(selectedObjClass, eSubPackage));
 		}
-		
+
 		final EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
 
 		for (final EClassifier eClassifier : eClassifiers) {
@@ -134,7 +130,6 @@
 					allSubClasses.add((EClass) eClassifier);
 				}
 
-
 			}
 		}
 		return allSubClasses;
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SuperClassesListBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SuperClassesListBuilder.java
similarity index 91%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SuperClassesListBuilder.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SuperClassesListBuilder.java
index 9f7991f..8d38bf2 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/SuperClassesListBuilder.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/SuperClassesListBuilder.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -46,7 +47,6 @@
 
 				this.allSuperClasses.addAll(classList.getAllSuperClasses());
 
-
 			}
 		}
 
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/TypeElement.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/TypeElement.java
similarity index 87%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/TypeElement.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/TypeElement.java
index 886f3f9..543e82e 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/TypeElement.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/utils/TypeElement.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+package org.eclipse.app4mc.emf.metamodelviewer.utils;
 
 import org.eclipse.emf.ecore.EClassifier;
 
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/MetaModelExplorerView.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/MetaModelExplorerView.java
new file mode 100644
index 0000000..dea0599
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/MetaModelExplorerView.java
@@ -0,0 +1,448 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.metamodelviewer.views;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
+import org.eclipse.app4mc.emf.metamodelviewer.dialogs.SelectedElementContentDialog;
+import org.eclipse.app4mc.emf.metamodelviewer.preferences.MetaModelViewerPreferenceConstants;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.ElementSearchPatternFilter;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.PluginUtils;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.RegisterECOREfilesAction;
+import org.eclipse.app4mc.emf.metamodelviewer.views.providers.ViewContentProvider;
+import org.eclipse.app4mc.emf.metamodelviewer.views.providers.ViewLabelProvider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
+import org.eclipse.sphinx.emf.metamodel.MetaModelDescriptorRegistry;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.dialogs.FilteredTree;
+import org.eclipse.ui.part.ViewPart;
+
+public class MetaModelExplorerView extends ViewPart {
+	/**
+	 * The ID of the view as specified by the extension.
+	 */
+	public static final String ID = "org.eclipse.app4mc.emf.metamodelviewer.views.MetaModelExplorerView";
+	private static int id_Counter = 1;
+	private TreeViewer viewer;
+	private Action filterClassesAction;
+	private Action registerEcoreFilesAction;
+	private Action filterAttributesAction;
+	private Action cloneViewAction;
+	private boolean filterForEClassifiersBoolean = true;
+	private boolean filterForAttributesBoolean;
+	private ElementSearchPatternFilter patternFilter;
+	private ComboViewer combo_ecore;
+
+	/**
+	 * The constructor.
+	 */
+	public MetaModelExplorerView() {
+	}
+
+	/**
+	 * This is a callback that will allow us to create the viewer and initialize it.
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		parent.setLayout(new GridLayout(2, false));
+
+		final Label label = new Label(parent, 0);
+
+		label.setText("SPHINX Registry");
+
+		label.setLayoutData(new GridData());
+
+		final Combo combo = new Combo(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
+
+		final Label label_ecore = new Label(parent, 0);
+
+		label_ecore.setText("ECORE Registry");
+
+		label_ecore.setLayoutData(new GridData());
+
+		combo_ecore = new ComboViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
+
+		final Registry ePackageRegistry = EPackage.Registry.INSTANCE;
+
+		final Set<String> keySet = ePackageRegistry.keySet();
+		// for (final String string : new TreeSet<String>(keySet)) {
+		//
+		// combo_ecore.add(string);
+		// }
+		combo_ecore.setContentProvider(ArrayContentProvider.getInstance());
+		combo_ecore.setLabelProvider(new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				return super.getText(element);
+			}
+		});
+
+		ArrayList<String> arrayList = new ArrayList<String>(keySet);
+
+		Collections.sort(arrayList);
+
+		combo_ecore.setInput(arrayList.toArray());
+
+		combo_ecore.getCombo().addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(final SelectionEvent e) {
+				combo.deselectAll();
+
+				final String text = combo_ecore.getCombo().getText();
+
+				final EPackage ePackage = ePackageRegistry.getEPackage(text);
+
+				getViewer().setInput(ePackage);
+			}
+		});
+
+		final List<IMetaModelDescriptor> descriptors = MetaModelDescriptorRegistry.INSTANCE
+				.getDescriptors(MetaModelDescriptorRegistry.ANY_MM);
+
+		for (final IMetaModelDescriptor iMetaModelDescriptor : descriptors) {
+			final String identifier = iMetaModelDescriptor.getIdentifier();
+			combo.add(identifier);
+		}
+
+		combo.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(final SelectionEvent e) {
+				combo_ecore.getCombo().deselectAll();
+
+				final String text = combo.getText();
+
+				final IMetaModelDescriptor descriptor = MetaModelDescriptorRegistry.INSTANCE.getDescriptor(text);
+
+				getViewer().setInput(descriptor);
+			}
+		});
+
+		this.patternFilter = new ElementSearchPatternFilter(this.filterForEClassifiersBoolean,
+				this.filterForAttributesBoolean);
+
+		final FilteredTree filteredTree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
+				this.patternFilter, true);
+
+		filteredTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 0));
+
+		this.viewer = filteredTree.getViewer();
+
+		final GridData gridLayoutData = new GridData();
+		gridLayoutData.horizontalSpan = 2;
+		gridLayoutData.grabExcessHorizontalSpace = true;
+		gridLayoutData.grabExcessVerticalSpace = true;
+		gridLayoutData.horizontalAlignment = GridData.FILL;
+		gridLayoutData.verticalAlignment = GridData.FILL;
+
+		this.viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 0));
+
+		this.viewer.setContentProvider(new ViewContentProvider());
+
+		this.viewer.setInput(getViewSite());
+
+		this.viewer.setLabelProvider(new ViewLabelProvider());
+
+		getSite().setSelectionProvider(this.viewer);
+
+		makeActions();
+
+		hookContextMenu();
+
+		hookDoubleClickAction();
+
+		contributeToActionBars();
+	}
+
+	public TreeViewer getViewer() {
+		return this.viewer;
+	}
+
+	private void hookContextMenu() {
+		final MenuManager menuMgr = new MenuManager("#PopupMenu") {
+			@Override
+			public IContributionItem[] getItems() {
+				IContributionItem[] menuItems = super.getItems();
+
+				final List<IContributionItem> filteredContributionItems = new LinkedList<IContributionItem>();
+
+				for (final IContributionItem contributionItem : menuItems) {
+					if ((contributionItem != null) && ((contributionItem.getId() != null) && (!(contributionItem.getId()
+							.startsWith("org.eclipse.emf.ecore.editor.CreateDynamicInstance"))))) {
+						filteredContributionItems.add(contributionItem);
+					}
+				}
+
+				menuItems = new IContributionItem[filteredContributionItems.size()];
+
+				return filteredContributionItems.toArray(menuItems);
+			}
+		};
+
+		menuMgr.setRemoveAllWhenShown(true);
+		menuMgr.addMenuListener(new IMenuListener() {
+			@Override
+			public void menuAboutToShow(final IMenuManager manager) {
+				MetaModelExplorerView.this.fillContextMenu(manager);
+			}
+		});
+
+		final Menu menu = menuMgr.createContextMenu(this.viewer.getControl());
+		this.viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(menuMgr, this.viewer);
+	}
+
+	private void contributeToActionBars() {
+		final IActionBars bars = getViewSite().getActionBars();
+		fillLocalPullDown(bars.getMenuManager());
+		fillLocalToolBar(bars.getToolBarManager());
+	}
+
+	private void fillLocalPullDown(final IMenuManager manager) {
+		manager.add(this.filterClassesAction);
+		manager.add(new Separator());
+		manager.add(this.filterAttributesAction);
+		manager.add(new Separator());
+		manager.add(this.cloneViewAction);
+	}
+
+	void fillContextMenu(final IMenuManager manager) {
+		// manager.add(this.filterClassesAction);
+		// manager.add(this.filterAttributesAction);
+		// manager.add(new Separator());
+		// this.drillDownAdapter.addNavigationActions(manager);
+		// Other plug-ins can contribute there actions here
+		// manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+	}
+
+	private void fillLocalToolBar(final IToolBarManager manager) {
+		manager.add(this.filterClassesAction);
+		manager.add(this.filterAttributesAction);
+		manager.add(new Separator());
+
+		manager.add(this.registerEcoreFilesAction);
+	}
+
+	private void makeActions() {
+		this.filterClassesAction = new Action("Filter for EClassifers", IAction.AS_CHECK_BOX) {
+			@Override
+			public void run() {
+				if (isChecked()) {
+					setFilterForEClassifiersBoolean(true);
+				} else {
+					setFilterForEClassifiersBoolean(false);
+				}
+			}
+		};
+
+		this.filterClassesAction.setEnabled(true);
+
+		this.filterClassesAction.setToolTipText("Filter for EClassifiers");
+		this.filterClassesAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/class_obj.png"));
+
+		this.filterAttributesAction = new Action("Filter for Attributes", IAction.AS_CHECK_BOX) {
+			@Override
+			public void run() {
+				if (isChecked()) {
+					setFilterForAttributesBoolean(true);
+				} else {
+					setFilterForAttributesBoolean(false);
+				}
+			}
+		};
+		this.filterAttributesAction.setToolTipText("Filter for Attributes");
+		this.filterAttributesAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/prop_ps.gif"));
+
+		this.cloneViewAction = new Action("Clone View", IAction.AS_CHECK_BOX) {
+			@Override
+			public void run() {
+				try {
+					getViewSite().getPage().showView(ID, id_Counter++ + "", IWorkbenchPage.VIEW_VISIBLE);
+				} catch (PartInitException e) {
+					e.printStackTrace();
+				}
+			}
+		};
+		this.cloneViewAction.setToolTipText("Clone View");
+		this.cloneViewAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/prop_ps.gif"));
+
+		this.registerEcoreFilesAction = new Action("Register ECORE files") {
+			@Override
+			public void run() {
+				// TODO: add implementation for CSV report generation
+				Object input = viewer.getInput();
+
+				FileDialog dialog = new FileDialog(Display.getDefault().getActiveShell(), SWT.OPEN | SWT.MULTI);
+
+				dialog.setFilterExtensions(new String[] { "*.ecore" });
+
+				dialog.open();
+
+				if ((dialog.getFileName() == null) || (dialog.getFileNames() == null)) {
+					return;
+				}
+
+				List<String> files = new ArrayList<String>();
+
+				for (String fileName : dialog.getFileNames()) {
+					String filePath = dialog.getFilterPath() + File.separator + fileName;
+
+					files.add(filePath);
+				}
+
+				try {
+					RegisterECOREfilesAction.loadECOREs(files, combo_ecore);
+				} catch (Exception e) {
+					Display.getDefault().asyncExec(new Runnable() {
+						@Override
+						public void run() {
+							MessageDialog.openError(Display.getDefault().getActiveShell(), "Error", e.getMessage());
+						}
+					});
+				}
+			}
+		};
+		this.registerEcoreFilesAction.setToolTipText("Register ECORE files");
+		this.registerEcoreFilesAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/register_ecores.png"));
+	}
+
+	private void hookDoubleClickAction() {
+		this.viewer.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(final DoubleClickEvent event) {
+				final ISelection selection = event.getSelection();
+
+				if (selection instanceof TreeSelection) {
+					final Object firstElement = ((TreeSelection) selection).getFirstElement();
+
+					if (firstElement instanceof EObject) {
+						Shell parentShell = null;
+
+						String displayDialogStyle = (Activator.getDefault().getPreferenceStore()
+								.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
+
+						if ((displayDialogStyle != null)
+								&& displayDialogStyle.equals(MetaModelViewerPreferenceConstants.V_ON_TOP)) {
+							parentShell = new Shell(SWT.ON_TOP);
+						} else {
+							parentShell = new Shell();
+						}
+
+						// final String name = ((firstElement instanceof EClass) ? ((EClass)
+						// firstElement).getName() :
+						// "");
+						//
+						// parentShell.setText("Details of : " + ((EClass)
+						// firstElement).eClass().getName() + " " +
+						// name);
+						//
+						//
+						// final TaskBar systemTaskBar = parentShell.getDisplay().getSystemTaskBar();
+						// final TaskItem taskItem = systemTaskBar.getItem(parentShell);
+						//
+						// taskItem.setData(parentShell);
+						// taskItem.setOverlayText(name);
+						// taskItem.setText(name);
+						new SelectedElementContentDialog(parentShell, getSite(), (EObject) firstElement).open();
+					}
+				}
+			}
+		});
+	}
+
+	/**
+	 * Passing the focus request to the viewer's control.
+	 */
+	@Override
+	public void setFocus() {
+		this.viewer.getControl().setFocus();
+	}
+
+	public Action getFilterClassesAction() {
+		return this.filterClassesAction;
+	}
+
+	public Action getFilterAttributesAction() {
+		return this.filterAttributesAction;
+	}
+
+	public boolean isFilterForEClassifiersBoolean() {
+		return this.filterForEClassifiersBoolean;
+	}
+
+	public boolean isFilterForAttributesBoolean() {
+		return this.filterForAttributesBoolean;
+	}
+
+	public void setFilterClassesAction(final Action filterClassesAction) {
+		this.filterClassesAction = filterClassesAction;
+	}
+
+	public void setFilterAttributesAction(final Action filterAttributesAction) {
+		this.filterAttributesAction = filterAttributesAction;
+	}
+
+	public void setFilterForEClassifiersBoolean(final boolean filterForEClassifiersBoolean) {
+		this.filterForEClassifiersBoolean = filterForEClassifiersBoolean;
+
+		this.patternFilter.setFilterForEClassifiersBoolean(filterForEClassifiersBoolean);
+	}
+
+	public void setFilterForAttributesBoolean(final boolean filterForAttributesBoolean) {
+		this.filterForAttributesBoolean = filterForAttributesBoolean;
+
+		this.patternFilter.setFilterForAttributesBoolean(filterForAttributesBoolean);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewContentProvider.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewContentProvider.java
similarity index 85%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewContentProvider.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewContentProvider.java
index 22e154f..aa2519d 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewContentProvider.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewContentProvider.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.views.providers;
+
+package org.eclipse.app4mc.emf.metamodelviewer.views.providers;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -22,9 +23,9 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.SubClassesListBuilder;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.SuperClassesListBuilder;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.TypeElement;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.SubClassesListBuilder;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.SuperClassesListBuilder;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.TypeElement;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
@@ -48,8 +49,7 @@
 			final Collection<EPackage> ePackages = ((IMetaModelDescriptor) parent).getEPackages();
 
 			return ePackages.toArray();
-		}
-		else if (parent instanceof EPackage) {
+		} else if (parent instanceof EPackage) {
 
 			final EList<EPackage> eSubpackages = ((EPackage) parent).getESubpackages();
 			final EList<EClassifier> eClassifiers = ((EPackage) parent).getEClassifiers();
@@ -58,7 +58,6 @@
 
 			arrayList1.addAll(eSubpackages);
 
-
 			Collections.sort(arrayList1, this.comparator);
 
 			final ArrayList<EClassifier> arrayList2 = new ArrayList<EClassifier>();
@@ -74,8 +73,7 @@
 
 			return combinedList.toArray();
 
-		}
-		else if (parent instanceof Entry) {
+		} else if (parent instanceof Entry) {
 			return new Object[] { ((Entry<?, ?>) parent).getValue() };
 		}
 
@@ -87,11 +85,9 @@
 
 		if (child instanceof EPackage) {
 			return ((EPackage) child).eContainer();
-		}
-		else if (child instanceof EClass) {
+		} else if (child instanceof EClass) {
 			return ((EClass) child).eContainer();
-		}
-		else if (child instanceof EStructuralFeature) {
+		} else if (child instanceof EStructuralFeature) {
 			return ((EStructuralFeature) child).eContainer();
 		}
 
@@ -110,7 +106,6 @@
 
 			arrayList1.addAll(eSubpackages);
 
-
 			Collections.sort(arrayList1, this.comparator);
 
 			final ArrayList<EClassifier> arrayList2 = new ArrayList<EClassifier>();
@@ -126,8 +121,7 @@
 
 			return combinedList.toArray();
 
-		}
-		else if (parent instanceof EClass) {
+		} else if (parent instanceof EClass) {
 
 			final EList<EStructuralFeature> eAllStructuralFeatures = ((EClass) parent).getEAllStructuralFeatures();
 
@@ -135,7 +129,6 @@
 
 			list.addAll(eAllStructuralFeatures);
 
-
 			Collections.sort(list, this.comparator);
 
 			int index = 0;
@@ -154,8 +147,7 @@
 			}
 
 			return list.toArray();
-		}
-		else if (parent instanceof EDataType) {
+		} else if (parent instanceof EDataType) {
 
 			if (parent instanceof EEnum) {
 
@@ -179,8 +171,7 @@
 			Collections.sort(list, this.comparator);
 
 			return list.toArray();
-		}
-		else if (parent instanceof EEnum) {
+		} else if (parent instanceof EEnum) {
 
 			final EList<EEnumLiteral> eLiterals = ((EEnum) parent).getELiterals();
 
@@ -191,24 +182,20 @@
 			Collections.sort(list, this.comparator);
 
 			return list.toArray();
-		}
-		else if (parent instanceof SuperClassesListBuilder) {
+		} else if (parent instanceof SuperClassesListBuilder) {
 			final Set<EClass> allSuperClasses = ((SuperClassesListBuilder) parent).getAllSuperClasses();
 			final ArrayList<ENamedElement> arrayList = new ArrayList<ENamedElement>(allSuperClasses);
 			Collections.sort(arrayList, this.comparator);
 			return arrayList.toArray();
-		}
-		else if (parent instanceof SubClassesListBuilder) {
+		} else if (parent instanceof SubClassesListBuilder) {
 			final Set<EClass> allSubClasses = ((SubClassesListBuilder) parent).getAllSubClasses();
 			final ArrayList<ENamedElement> arrayList = new ArrayList<ENamedElement>(allSubClasses);
 			Collections.sort(arrayList, this.comparator);
 			return arrayList.toArray();
-		}
-		else if (parent instanceof EStructuralFeature) {
+		} else if (parent instanceof EStructuralFeature) {
 			final EClassifier eType = ((EStructuralFeature) parent).getEType();
 			return new Object[] { new TypeElement(eType) };
-		}
-		else if (parent instanceof TypeElement) {
+		} else if (parent instanceof TypeElement) {
 			final EClassifier eType = ((TypeElement) parent).getClassifier();
 			return new Object[] { eType };
 		}
@@ -219,18 +206,15 @@
 	public boolean hasChildren(final Object parent) {
 		if (parent instanceof EPackage) {
 			return true;
-		}
-		else if (parent instanceof EClass) {
+		} else if (parent instanceof EClass) {
 			return true;
-		}
-		else if (parent instanceof EDataType) {
+		} else if (parent instanceof EDataType) {
 
 			if (parent instanceof EEnum) {
 				return ((EEnum) parent).getELiterals().size() > 0;
 			}
 			return ((EDataType) parent).getETypeParameters().size() > 0;
-		}
-		else if (parent instanceof EEnum) {
+		} else if (parent instanceof EEnum) {
 			return ((EEnum) parent).getELiterals().size() > 0;
 		}
 
@@ -240,14 +224,11 @@
 
 		else if (parent instanceof SuperClassesListBuilder) {
 			return ((SuperClassesListBuilder) parent).getAllSuperClasses().size() > 0;
-		}
-		else if (parent instanceof SubClassesListBuilder) {
+		} else if (parent instanceof SubClassesListBuilder) {
 			return ((SubClassesListBuilder) parent).getAllSubClasses().size() > 0;
-		}
-		else if (parent instanceof EEnumLiteral) {
+		} else if (parent instanceof EEnumLiteral) {
 			return false;
-		}
-		else if (parent instanceof TypeElement) {
+		} else if (parent instanceof TypeElement) {
 			return true;
 		}
 		return true;
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewLabelProvider.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewLabelProvider.java
similarity index 74%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewLabelProvider.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewLabelProvider.java
index 2ce42f0..907a5cd 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/providers/ViewLabelProvider.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.metamodelviewer/src/org/eclipse/app4mc/emf/metamodelviewer/views/providers/ViewLabelProvider.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,15 +12,16 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.views.providers;
+
+package org.eclipse.app4mc.emf.metamodelviewer.views.providers;
 
 import java.io.IOException;
 import java.net.URL;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.SubClassesListBuilder;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.SuperClassesListBuilder;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.TypeElement;
+import org.eclipse.app4mc.emf.metamodelviewer.base.Activator;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.SubClassesListBuilder;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.SuperClassesListBuilder;
+import org.eclipse.app4mc.emf.metamodelviewer.utils.TypeElement;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
@@ -39,12 +40,11 @@
 
 public class ViewLabelProvider extends LabelProvider {
 
-
 	private final Image classImage;
 	private final Image enumImage;
 	private final Image containmentImage;
 	private final Image superClassListImage;
-	private final Image SubClassesListBuilderImage;
+	private final Image subClassListImage;
 	private final Image attributeImage;
 	private final Image attribute_referenceImage;
 	private final Image abstractClassImage;
@@ -57,7 +57,7 @@
 		this.enumImage = getImage("icons/enum_obj.png");
 		this.containmentImage = getImage("icons/attribute_containment.png");
 		this.superClassListImage = getImage("icons/super_co.gif");
-		this.SubClassesListBuilderImage = getImage("icons/downward_co.gif");
+		this.subClassListImage = getImage("icons/downward_co.gif");
 		this.attributeImage = getImage("icons/attribute.png");
 		this.attribute_referenceImage = getImage("icons/attribute_reference.png");
 		this.abstractClassImage = getImage("icons/abstract_class_obj.png");
@@ -65,7 +65,6 @@
 		this.eTypeImage = getImage("icons/type_obj.gif");
 	}
 
-
 	private Image getImage(final String location) {
 
 		final URL entry = Activator.getDefault().getBundle().getEntry(location);
@@ -78,8 +77,7 @@
 				if (fileURL != null) {
 					return new Image(Display.getDefault(), new ImageData(fileURL.getFile()));
 				}
-			}
-			catch (final IOException e) {
+			} catch (final IOException e) {
 				e.printStackTrace();
 			}
 
@@ -87,26 +85,20 @@
 		return null;
 	}
 
-
 	@Override
 	public String getText(final Object child) {
 
 		if (child instanceof EPackage) {
 			return ((EPackage) child).getName();
-		}
-		else if (child instanceof EClass) {
+		} else if (child instanceof EClass) {
 			return ((EClass) child).getName();
-		}
-		else if (child instanceof EDataType) {
+		} else if (child instanceof EDataType) {
 			return ((EDataType) child).getName();
-		}
-		else if (child instanceof EEnum) {
+		} else if (child instanceof EEnum) {
 			return "Enum : " + ((EEnum) child).getName();
-		}
-		else if (child instanceof EEnumLiteral) {
+		} else if (child instanceof EEnumLiteral) {
 			return ((EEnumLiteral) child).getName();
-		}
-		else if (child instanceof EStructuralFeature) {
+		} else if (child instanceof EStructuralFeature) {
 			final EStructuralFeature eStFeature = (EStructuralFeature) child;
 
 			final int lowerBound = eStFeature.getLowerBound();
@@ -119,14 +111,11 @@
 			final String multiplicity = "[" + lowerBoundString + " " + upperBoundString + "]";
 
 			return eStFeature.getName() + "  " + multiplicity + " " + eStFeature.getEType().getName();
-		}
-		else if (child instanceof SuperClassesListBuilder) {
-			return "Super Classes";
-		}
-		else if (child instanceof SubClassesListBuilder) {
-			return "All-Sub Classes";
-		}
-		else if (child instanceof TypeElement) {
+		} else if (child instanceof SuperClassesListBuilder) {
+			return "All Super Classes (flat)";
+		} else if (child instanceof SubClassesListBuilder) {
+			return "All Sub Classes (flat)";
+		} else if (child instanceof TypeElement) {
 			return "<--EType-->";
 		}
 		return child.toString();
@@ -137,28 +126,24 @@
 		String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
 		if (obj instanceof EPackage) {
 			imageKey = ISharedImages.IMG_OBJ_FOLDER;
-		}
-		else if (obj instanceof EStructuralFeature && obj instanceof EReference) {
+		} else if (obj instanceof EStructuralFeature && obj instanceof EReference) {
 
 			if (((EReference) obj).isContainment()) {
 				return this.containmentImage;
 			}
 
 			return this.attribute_referenceImage;
-		}
-		else if (obj instanceof EAttribute) {
+		} else if (obj instanceof EAttribute) {
 			return this.attributeImage;
 
-		}
-		else if (obj instanceof EDataType) {
+		} else if (obj instanceof EDataType) {
 			imageKey = ISharedImages.IMG_OBJ_ELEMENT;
 
 			if (obj instanceof EEnum) {
 				return this.enumImage;
 			}
 
-		}
-		else if (obj instanceof EClass) {
+		} else if (obj instanceof EClass) {
 			if (((EClass) obj).isAbstract() && ((EClass) obj).isInterface()) {
 				return this.interfaceImage;
 			}
@@ -167,18 +152,14 @@
 			}
 
 			return this.classImage;
-		}
-		else if (obj instanceof EEnum) {
+		} else if (obj instanceof EEnum) {
 			return this.enumImage;
-		}
-		else if (obj instanceof SuperClassesListBuilder) {
+		} else if (obj instanceof SuperClassesListBuilder) {
 			return this.superClassListImage;
-		}
-		else if (obj instanceof SubClassesListBuilder) {
+		} else if (obj instanceof SubClassesListBuilder) {
 
-			return this.SubClassesListBuilderImage;
-		}
-		else if (obj instanceof TypeElement) {
+			return this.subClassListImage;
+		} else if (obj instanceof TypeElement) {
 
 			return this.eTypeImage;
 		}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.classpath
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.classpath
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.gitignore b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.gitignore
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.gitignore
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.gitignore
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.project
similarity index 92%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.project
index 5f0bcdd..c38f4fa 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.emfutils.content.extractor</name>
+	<name>org.eclipse.app4mc.emf.viewer.plantuml</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.settings/org.eclipse.jdt.core.prefs
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/.settings/org.eclipse.jdt.core.prefs
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..63a221b
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/META-INF/MANIFEST.MF
@@ -0,0 +1,37 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: APP4MC EMF Viewer (PlantUML)
+Bundle-SymbolicName: org.eclipse.app4mc.emf.viewer.plantuml;singleton:=true
+Bundle-Version: 0.9.8.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.app4mc.emf.viewer.plantuml.Activator
+Bundle-Vendor: Eclipse APP4MC
+Require-Bundle: com.google.guava,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro,
+ org.eclipse.ui,
+ org.eclipse.ui.browser,
+ org.eclipse.sphinx.emf,
+ org.eclipse.sphinx.emf.editors,
+ org.eclipse.sphinx.emf.editors.forms,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.core.di,
+ org.eclipse.e4.core.contexts,
+ org.eclipse.e4.core.di.extensions,
+ org.eclipse.e4.ui.di,
+ org.eclipse.e4.ui.services,
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.e4.core.services
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Import-Package: javax.annotation;version="1.2.0",
+ javax.inject;version="1.0.0",
+ net.sourceforge.plantuml;version="1.2019.0",
+ net.sourceforge.plantuml.core;version="1.2019.0",
+ net.sourceforge.plantuml.eclipse.utils,
+ org.slf4j;version="1.7.2"
+Automatic-Module-Name: org.eclipse.app4mc.emf.viewer.plantuml
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/about.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/about.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/about.html
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/build.properties b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/build.properties
new file mode 100644
index 0000000..4f03bd5
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/build.properties
@@ -0,0 +1,11 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               epl-2.0.html,\
+               about.html,\
+               fragment.e4xmi
+src.includes = about.html,\
+               epl-2.0.html
+source.. = src/
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/epl-2.0.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/epl-2.0.html
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/fragment.e4xmi b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/fragment.e4xmi
new file mode 100644
index 0000000..eb733e8
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/fragment.e4xmi
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ASCII"?>
+<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/descriptor/basic" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_24JxkGmpEeqly_jY3FLnyw">
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_4M1skGmpEeqly_jY3FLnyw" featurename="descriptors" parentElementId="xpath:/">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_7EwU4GmpEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView" label="Diagram View" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/sample.gif" category="APP4MC" closeable="true" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView">
+      <toolbar xmi:id="_DIC14GmqEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.toolbar.0">
+        <children xsi:type="menu:DirectToolItem" xmi:id="_jgBp0GmqEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.directtoolitem.select" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/synced.png" tooltip="Link the selection in the editor with the current diagram type" type="Check" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.LinkWithEditorHandler"/>
+      </toolbar>
+    </elements>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_gMvh4GmvEeqly_jY3FLnyw" featurename="commands" parentElementId="xpath:/">
+    <elements xsi:type="commands:Command" xmi:id="_hnm9YGmvEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.extracteclasshierarchy" commandName="Extract EClass Hierarchy" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_1iuA8GmvEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.extracteobjectreferences" commandName="Extract EObject References" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_P8RuoGmwEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.extracteclassallreferences" commandName="Extract EClass All References" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_SVoLoGmwEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.extracteclasshierarchyandtheircontents" commandName="Extract EClass Hierarchy And Their Contents" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_W4xmsGmwEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.extracteclassumlcontents" commandName="Extract EClass UML Contents" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_Zw9UwGmwEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.fromreference-extracteclassumlcontents" commandName="From reference -> Extract EClass UML Contents" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Command" xmi:id="_dIkJwGmwEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.command.copycontentsandgeneratecsv" commandName="Copy Contents and Generate CSV" category="_qKzGcGmvEeqly_jY3FLnyw"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_nfvOYGmvEeqly_jY3FLnyw" featurename="categories" parentElementId="xpath:/">
+    <elements xsi:type="commands:Category" xmi:id="_qKzGcGmvEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.category" name="Extract Eclass References"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_bQFvwGmxEeqly_jY3FLnyw" featurename="handlers" parentElementId="xpath:/">
+    <elements xsi:type="commands:Handler" xmi:id="_ceh40GmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.0" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassHierarchyHandler" command="_hnm9YGmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_kV_kUGmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.1" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EObjectRefsHandler" command="_1iuA8GmvEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_qg0H0GmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.2" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassAllReferencesHandler" command="_P8RuoGmwEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_uBWPUGmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.3" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassContentsAndHierarchyHandler" command="_SVoLoGmwEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_ylP4UGmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.4" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassContentsHandler" command="_W4xmsGmwEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_17314GmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.5" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassContentsFromReferenceHandler" command="_Zw9UwGmwEeqly_jY3FLnyw"/>
+    <elements xsi:type="commands:Handler" xmi:id="_43st0GmxEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handler.6" contributionURI="bundleclass://org.eclipse.app4mc.emf.viewer.plantuml/org.eclipse.app4mc.emf.viewer.plantuml.handlers.CopyContentsHandler" command="_dIkJwGmwEeqly_jY3FLnyw"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_U-pKYGmyEeqly_jY3FLnyw" featurename="menuContributions" parentElementId="xpath:/">
+    <elements xsi:type="menu:MenuContribution" xmi:id="_WQga4GmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.menucontribution.0" positionInParent="after=additions" parentId="popup">
+      <children xsi:type="menu:Menu" xmi:id="_ddrMMGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.menu" label="APP4MC EMF Utils" mnemonics="">
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_n6-cEGmzEeqly_jY3FLnyw" coreExpressionId="org.eclipse.app4mc.emf.viewer.plantuml.definition.ecore"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_hJ60cGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eclasshierarchy" label="EClass Hierarchy" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/keygroups_obj.gif" mnemonics="" command="_hnm9YGmvEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_n74QcGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eobjectrefs" label="EObject Refs" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/sample.gif" command="_1iuA8GmvEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_tYaKkGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eclassallreferences" label="EClass All References" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/tag_blue_add.png" command="_P8RuoGmwEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_0rNCwGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eclasscontentshierarchy" label="EClass Contents + Hierarchy" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/elements_obj.gif" command="_SVoLoGmwEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_8Xoi8GmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eclasscontents" label="EClass Contents" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/prop_ps.gif" command="_W4xmsGmwEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="__g6BAGmyEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.eclasscontentsfromreference" label="EClass Contents from Reference" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/drive_go.png" command="_Zw9UwGmwEeqly_jY3FLnyw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_HvDuMGmzEeqly_jY3FLnyw" elementId="org.eclipse.app4mc.emf.viewer.plantuml.handledmenuitem.copycontentscommand" label="Copy Contents Command" iconURI="platform:/plugin/org.eclipse.app4mc.emf.viewer.plantuml/icons/keygroups_obj.gif" command="_dIkJwGmwEeqly_jY3FLnyw"/>
+      </children>
+    </elements>
+  </fragments>
+</fragment:ModelFragments>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/drive_go.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/drive_go.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/drive_go.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/drive_go.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/elements_obj.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/elements_obj.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/elements_obj.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/elements_obj.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/filenav_nav.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/filenav_nav.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/filenav_nav.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/filenav_nav.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/keygroups_obj.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/keygroups_obj.gif
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/keygroups_obj.gif
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/keygroups_obj.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/prop_ps.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/prop_ps.gif
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/prop_ps.gif
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/prop_ps.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/sample.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/sample.gif
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/sample.gif
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/sample.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/super_co.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/super_co.gif
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/super_co.gif
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/super_co.gif
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/synced.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/synced.png
new file mode 100644
index 0000000..3e630fc
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/synced.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/tag_blue_add.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/tag_blue_add.png
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/tag_blue_add.png
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/tag_blue_add.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/targetinternal_obj.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/targetinternal_obj.png
new file mode 100644
index 0000000..9c483c1
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/icons/targetinternal_obj.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/plugin.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/plugin.xml
new file mode 100644
index 0000000..4c28402
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/plugin.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.eclipse.app4mc.emf.viewer.plantuml.preferences.AmaltheaGraphicalRepresentationPreferencePage"
+            id="org.eclipse.app4mc.emf.viewer.plantuml.preferences.AmaltheaPreferencePage"
+            name="AMALTHEA Graphical Representation">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceInitializer">
+      </initializer>
+   </extension>
+   <extension
+         point="org.eclipse.ui.perspectiveExtensions">
+      <perspectiveExtension
+            targetID="org.eclipse.jdt.ui.JavaPerspective">
+         <view
+               id="org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView"
+               ratio="0.5"
+               relationship="right"
+               relative="org.eclipse.ui.views.ProblemView">
+         </view>
+      </perspectiveExtension>
+   </extension>
+   <extension
+         id="org.eclipse.app4mc.emf.viewer.plantuml.fragment"
+         point="org.eclipse.e4.workbench.model">
+      <fragment
+            uri="fragment.e4xmi"
+            apply="always">
+      </fragment>
+   </extension>
+   <extension
+         point="org.eclipse.core.expressions.definitions">
+      <definition
+            id="org.eclipse.app4mc.emf.viewer.plantuml.definition.ecore">
+           <with
+                 variable="activeMenuSelection">
+              <iterate>
+                 <instanceof
+                       value="org.eclipse.emf.ecore.EObject">
+                 </instanceof>
+              </iterate>
+           </with>
+      </definition>
+   </extension>
+
+</plugin>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/Activator.java
similarity index 86%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/Activator.java
index c86b924..54ff0f8 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/Activator.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/Activator.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor;
+
+package org.eclipse.app4mc.emf.viewer.plantuml;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
@@ -23,7 +24,7 @@
 public class Activator extends AbstractUIPlugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.app4mc.emfutils.content.extractor"; //$NON-NLS-1$
+	public static final String PLUGIN_ID = "org.eclipse.app4mc.emf.viewer.plantuml"; //$NON-NLS-1$
 
 	// The shared instance
 	private static Activator plugin;
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/AbstractPlantUMLBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/AbstractPlantUMLBuilder.java
new file mode 100644
index 0000000..4ed3691
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/AbstractPlantUMLBuilder.java
@@ -0,0 +1,317 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public abstract class AbstractPlantUMLBuilder {
+
+	private Map<String, Object> id2ObjectMap;
+	private Map<Object, String> object2IdMap;
+	private Set<Object> nodes;
+	private Set<String> connections;
+
+	public BuilderResult generatePlantUML(Object selectedObject) {
+		if (selectedObject instanceof EClass) {
+			return generatePlantUML((EClass) selectedObject);
+		} else if (selectedObject instanceof EObject) {
+			return generatePlantUML((EObject) selectedObject);
+		}
+		return null;
+	}
+	
+	public abstract BuilderResult generatePlantUML(EClass selectedObjClass);
+	
+	public abstract BuilderResult generatePlantUML(EObject eObject);
+	
+	protected void resetCaches() {
+		id2ObjectMap = null;
+		object2IdMap = null;
+		nodes = null;
+		connections = null;
+	}
+
+	protected Map<String, Object> getId2ObjectMap() {
+		if (id2ObjectMap == null) {
+			id2ObjectMap = new HashMap<String, Object>();
+		}
+		return id2ObjectMap;
+	}
+
+	protected Map<Object, String> getObject2IdMap() {
+		if (object2IdMap == null) {
+			object2IdMap = new HashMap<Object, String>();
+		}
+		return object2IdMap;
+	}
+
+	protected String getIdForObject(Object obj) {
+		if (getObject2IdMap().containsKey(obj)) {
+			return getObject2IdMap().get(obj);
+		}
+
+		// create new UUID
+		final String uuid = EcoreUtil.generateUUID();
+		getId2ObjectMap().put(uuid, obj);
+		getObject2IdMap().put(obj, uuid);
+
+		return uuid;
+	}
+
+	protected Set<Object> getNodes() {
+		if (nodes == null) {
+			nodes = new HashSet<Object>();
+		}
+		return nodes;
+	}
+
+	protected Set<String> getConnections() {
+		if (connections == null) {
+			connections = new HashSet<String>();
+		}
+		return connections;
+	}
+
+	protected void addNode(Object obj) {
+		getNodes().add(obj);
+	}
+
+	protected void addConnection(String str) {
+		getConnections().add(str);
+	}
+
+	protected String timestamp() {
+		final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
+		return dateFormat.format(new Date());
+	}
+
+	protected void appendSkinParams(final StringBuilder plantuml) {
+		plantuml.append("skinparam class {");
+		plantuml.append("\n  BackgroundColor PaleGreen");
+		plantuml.append("\n  ArrowColor SeaGreen");
+		plantuml.append("\n  BorderColor SpringGreen");
+		plantuml.append("\n  BackgroundColor<<H>> Wheat");
+		plantuml.append("\n  BorderColor<<H>> Tomato");
+		
+		plantuml.append("\n  BackgroundColor<<SelectedElement>> DarkOrange ");
+		plantuml.append("\n  BorderColor<<SelectedElement>> Tomato");
+		plantuml.append("\n}");
+		plantuml.append("\nskinparam stereotypeCBackgroundColor YellowGreen");
+		plantuml.append("\nskinparam stereotypeCBackgroundColor<<H>> DimGray");
+		plantuml.append("\n");
+	}
+
+	protected void appendInheritance(final StringBuilder plantuml, final EClass superClass, final EClass subClass, final String color) {
+		
+		String connector = superClass.getName() + " <|-- " + subClass.getName();
+		String style = (color != null && color.length() > 0) ? ("  " + color) : "";
+		
+		appendConnection(plantuml, connector, style);
+	}
+
+	protected void appendAsContainment(final StringBuilder plantuml, final EStructuralFeature feature) {
+		final EClass source = feature.getEContainingClass();
+		final EClassifier target = feature.getEType();
+
+		appendAsContainment(plantuml, feature, source, target);
+	}
+
+	protected void appendAsContainment(final StringBuilder plantuml, final EStructuralFeature feature, final EClass source, final EClassifier target) {
+		
+		final String cardinality = feature.isMany() ? " (0-*) " : "";
+		final String refName = feature.getName();
+		
+		String connector = source.getName() + " *--> " + target.getName() + " : "  + refName + cardinality;
+		
+		appendConnection(plantuml, connector, "");
+	}
+
+	protected void appendReference(final StringBuilder plantuml, final EReference reference) {
+		final EClass source = reference.getEContainingClass();
+		final EClass target = (EClass) reference.getEType();
+
+		appendReference(plantuml, reference, source, target);
+	}
+
+	protected void appendReference(final StringBuilder plantuml, final EReference ref, final EClass source, final EClass target) {
+		
+		final String relation = ref.isContainment() ? " *--> " : " --> ";
+		final String lowerBound = ref.getLowerBound() == -1 ? "*" : Integer.toString(ref.getLowerBound());
+		final String upperBound = ref.getUpperBound() == -1 ? "*" : Integer.toString(ref.getUpperBound());
+		final String cardinality = " [" + lowerBound + ":" + upperBound + "]";
+		final String refName = ref.getName();
+	
+		String connector = source.getName() + relation + target.getName() + " : "+ refName + cardinality ;
+		
+		appendConnection(plantuml, connector, "");
+	}
+
+	private void appendConnection(final StringBuilder plantuml, String connection, String style) {
+		
+		if (!getConnections().contains(connection)) {
+			addConnection(connection); // mark as created
+			
+			plantuml.append(connection + style);
+			plantuml.append("\n");
+		}
+	}
+
+	protected void appendClassifier(final StringBuilder plantuml, final EClassifier eClassifier, final boolean withUUID) {
+
+		if (!getNodes().contains(eClassifier)) {
+			addNode(eClassifier); // mark as created
+			
+			plantuml.append("class \"" + eClassifier.getName() + "\"");
+			
+			if (withUUID) {
+				final String uuid = getIdForObject(eClassifier);
+				plantuml.append(" [[" + uuid + "]]");
+			}
+
+			plantuml.append("\n");
+		}
+	}
+
+	protected void appendEnum(final StringBuilder plantuml, final EEnum eEnum) {
+
+		if (!getNodes().contains(eEnum)) {
+			addNode(eEnum); // mark as created
+			
+			plantuml.append("enum \"" + eEnum.getName() + "\"");
+			plantuml.append(" {");
+
+			for (final EEnumLiteral literal : eEnum.getELiterals()) {
+
+				plantuml.append("\n  ");
+				plantuml.append(literal.getName());
+			}
+
+			plantuml.append("\n}\n");
+		}
+	}
+
+	protected void appendDataType(final StringBuilder plantuml, final EDataType eDataType) {
+
+	}
+
+	protected void appendClass(final StringBuilder plantuml, final EClass eClass, final String stereoType,
+			final boolean withUUID, final EList<EAttribute> attributes, final EList<EReference> references) {
+
+		if (!getNodes().contains(eClass)) {
+			addNode(eClass); // mark as created
+			
+			appendClassHeader(plantuml, eClass, stereoType, withUUID);
+			
+			boolean withAttributes = attributes != null && attributes.isEmpty() == false;
+			boolean withReferences = references != null && references.isEmpty() == false;
+					
+			if (withAttributes || withReferences) {
+				plantuml.append(" {");
+				
+				if (withAttributes) {
+					appendClassAttributes(plantuml, eClass, attributes);			
+				}
+				
+				if (withReferences) {
+					appendClassReferences(plantuml, eClass, references);			
+				}
+				
+				plantuml.append("\n}");
+			}
+			
+			plantuml.append("\n");
+		}
+	}
+
+	private void appendClassHeader(final StringBuilder plantuml, final EClass eClass, final String stereoType, final boolean withUUID) {
+
+		if (eClass.isAbstract() && eClass.isInterface()) {
+			plantuml.append("interface \"" + eClass.getName() + "\"");
+		} else if (eClass.isAbstract()) {
+			plantuml.append("abstract \"" + eClass.getName() + "\"");
+		} else if (eClass.isInterface()) {
+			plantuml.append("interface \"" + eClass.getName() + "\"");
+		} else {
+			plantuml.append("class \"" + eClass.getName() + "\"");
+		}
+
+		if (stereoType != null) {
+			plantuml.append("<<" + stereoType + ">>");
+		}
+
+		if (withUUID) {
+			final String uuid = getIdForObject(eClass);
+			plantuml.append(" [[" + uuid + "]]");
+		}
+	}
+
+	private void appendClassAttributes(final StringBuilder plantuml, final EClass eClass, EList<EAttribute> attributeList) {
+		
+		/* listing attributes belonging to the specific EMF element */
+		
+		for (final EAttribute attribute : attributeList) {
+
+			plantuml.append("\n  ");
+
+			final String lowerBound = attribute.getLowerBound() == -1 ? "*" : attribute.getLowerBound() + "";
+			final String upperBound = attribute.getUpperBound() == -1 ? "*" : attribute.getUpperBound() + "";
+
+			plantuml.append(
+					attribute.getEType().getName() + " "
+					+ attribute.getName()
+					+ " [" + lowerBound + ":" + upperBound + "]");
+		}
+	}
+	
+	private void appendClassReferences(final StringBuilder plantuml, final EClass eClass, EList<EReference> referenceList) {
+
+		/* listing references belonging to the specific EMF element */
+
+		for (final EReference reference : referenceList) {
+			
+				plantuml.append("\n  ");
+
+				final String lowerBound = reference.getLowerBound() == -1 ? "*" : reference.getLowerBound() + "";
+				final String upperBound = reference.getUpperBound() == -1 ? "*" : reference.getUpperBound() + "";
+
+				plantuml.append(
+						reference.getEType().getName() + " "
+						+ reference.getName()
+						+ " [" + lowerBound + ":" + upperBound + "]");
+		}
+	}
+
+}
+
+
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderResult.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderResult.java
new file mode 100644
index 0000000..a5e0975
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderResult.java
@@ -0,0 +1,41 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class BuilderResult {
+	
+	private Map<String, Object> id2Object;
+	private String plantUML;
+
+	public BuilderResult(Map<String, Object> id2ObjectMap, String plantUMLText) {
+		this.id2Object = new HashMap<String, Object>();
+		if (id2ObjectMap != null && !id2ObjectMap.isEmpty()) {
+			id2Object.putAll(id2ObjectMap);
+		}
+		this.plantUML = plantUMLText;
+	}
+
+	public Map<String, Object> getId2ObjectMap() {
+		return id2Object;
+	}
+
+	public String getPlantUMLText() {
+		return plantUML;
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderUtil.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderUtil.java
new file mode 100644
index 0000000..3ac4d49
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/BuilderUtil.java
@@ -0,0 +1,69 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class BuilderUtil {
+
+	public static Set<EClass> getSubClasses(final EClass eClass) {
+
+		final Set<EClass> allSubClasses = new HashSet<EClass>();
+
+		final Resource eResource = eClass.eResource();
+		if (eResource != null && eResource.getResourceSet() != null) {
+
+			// Find the subclasses for the supplied EClass in all the packages belonging to the resource set
+
+			for (final Resource resource : eResource.getResourceSet().getResources()) {
+				for (EObject eObj : resource.getContents()) {
+					if (eObj instanceof EPackage) {
+						allSubClasses.addAll(getSubClasses(eClass, (EPackage) eObj));
+					}
+				}
+			}
+
+		} else {
+
+			return getSubClasses(eClass, eClass.getEPackage());
+		}
+
+		return allSubClasses;
+	}
+
+	public static Set<EClass> getSubClasses(final EClass eClass, final EPackage ePackage) {
+		final Set<EClass> allSubClasses = new HashSet<EClass>();
+
+		for (final EClassifier eClassifier : ePackage.getEClassifiers()) {
+
+			if (eClassifier instanceof EClass) {
+
+				if (!(eClass == eClassifier) && eClass.isSuperTypeOf((EClass) eClassifier)) {
+					allSubClasses.add((EClass) eClassifier);
+				}
+			}
+		}
+		return allSubClasses;
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassAllReferencesBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassAllReferencesBuilder.java
new file mode 100644
index 0000000..0480aa8
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassAllReferencesBuilder.java
@@ -0,0 +1,206 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class EClassAllReferencesBuilder extends AbstractPlantUMLBuilder {
+
+	@Override
+	public BuilderResult generatePlantUML(final EClass selectedObjClass) {
+
+		resetCaches();
+
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+		
+		plantuml.append("' Created by EClassAllReferencesBuilder (" + timestamp() + ")\n\n");
+
+		plantuml.append("skinparam class {\n");
+		plantuml.append("  BackgroundColor<<selected>> Moccasin\n");
+		plantuml.append("}\n\n");
+		
+		plantuml.append("' ===== Main Class =====\n\n");
+		
+		appendClass(plantuml, selectedObjClass, "selected", false, null, null);
+
+		plantuml.append("\n' ===== Super Classes =====\n\n");
+
+		populateSuperClasses(plantuml, selectedObjClass);
+
+		plantuml.append("\n' ===== Sub Classes =====\n\n");
+
+		populateSubClasses(plantuml, selectedObjClass, BuilderUtil.getSubClasses(selectedObjClass));
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(EObject eObject) {
+		return generatePlantUML(eObject.eClass());
+	}
+	
+	private void populateSuperClasses(final StringBuilder plantuml, final EClass eClass) {
+
+		populateEClassReferences(plantuml, eClass);
+
+		for (final EClass superClass : eClass.getESuperTypes()) {
+
+			appendClass(plantuml, superClass, null, true, null, null);
+
+			appendInheritance(plantuml, superClass, eClass, "#darkblue");
+
+			populateSuperClasses(plantuml, superClass);
+		}
+	}
+
+	private void populateSubClasses(final StringBuilder plantuml, final EClass eClass, final Set<EClass> subClasses) {
+
+		for (final EClass subClass : subClasses) {
+
+			if (subClass.getESuperTypes().contains(eClass)) {
+
+				appendClass(plantuml, subClass, null, true, null, null);
+				
+				appendInheritance(plantuml, eClass, subClass, "#darkGreen");
+				
+				populateEClassContainerInfo(plantuml, subClass);
+
+				populateSubClasses(plantuml, subClass, subClasses);
+			}
+		}
+	}
+
+	private void populateEClassReferences(final StringBuilder plantuml, final EClass selectedObjClass) {
+		final List<EReference> result = new ArrayList<EReference>();
+
+		final Object searchScope = (selectedObjClass.eResource().getResourceSet() == null)
+				? selectedObjClass.eResource()
+				: selectedObjClass.eResource().getResourceSet();
+
+		/*- getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
+
+		Collection<Setting> allRefSettings = null;
+		if (searchScope instanceof Resource) {
+			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (Resource) searchScope);
+		} else if (searchScope instanceof ResourceSet) {
+			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (ResourceSet) searchScope);
+		}
+
+		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
+
+		if (allRefSettings.size() > 0) {
+
+			for (final EStructuralFeature.Setting refSetting : allRefSettings) {
+
+				if (refSetting.getEObject() instanceof EReference
+						&& !isElementContained(result, (EReference) refSetting.getEObject())) {
+					result.add((EReference) refSetting.getEObject());
+				}
+			}
+
+			for (final EReference eReference : result) {
+
+				final EClass sourceClass = eReference.getEContainingClass();
+
+				appendClassifier(plantuml, sourceClass, true);
+				
+				appendReference(plantuml, eReference, sourceClass, selectedObjClass);
+			}
+
+		} else {
+			/*- no references for this EClass are found */
+			
+			appendClassifier(plantuml, selectedObjClass, true);
+		}
+	}
+
+	private void populateEClassContainerInfo(final StringBuilder plantuml, final EClass selectedObjClass) {
+		final List<EReference> result = new ArrayList<EReference>();
+
+		final Object searchScope = (selectedObjClass.eResource().getResourceSet() == null)
+				? selectedObjClass.eResource()
+				: selectedObjClass.eResource().getResourceSet();
+
+		/*- getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
+
+		Collection<Setting> allRefSettings = null;
+		if (searchScope instanceof Resource) {
+			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (Resource) searchScope);
+		} else if (searchScope instanceof ResourceSet) {
+			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (ResourceSet) searchScope);
+		}
+
+		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
+
+		if (allRefSettings.size() > 0) {
+
+			for (final EStructuralFeature.Setting refSetting : allRefSettings) {
+
+				if (refSetting.getEObject() instanceof EReference
+						&& !isElementContained(result, (EReference) refSetting.getEObject())) {
+					if (((EReference) refSetting.getEObject()).isContainment()) {
+						result.add((EReference) refSetting.getEObject());
+					}
+				}
+			}
+
+			for (final EReference eReference : result) {
+				
+				final EClass sourceClass = eReference.getEContainingClass();
+
+				appendClassifier(plantuml, sourceClass, true);
+				
+				appendReference(plantuml, eReference, sourceClass, selectedObjClass);	
+			}
+
+		} else {
+
+			/*- no references for this EClass are found */
+
+			appendClassifier(plantuml, selectedObjClass, true);
+		}
+	}
+
+	private boolean isElementContained(final List<EReference> l, final EReference eRef) {
+		boolean isElementFound = false;
+		final Iterator<EReference> it = l.iterator();
+		while (it.hasNext() && !isElementFound) {
+			final EReference isContained = it.next();
+			if (isContained.equals(eRef)) {
+				isElementFound = true;
+			}
+		}
+		return isElementFound;
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsAndHierarchyBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsAndHierarchyBuilder.java
new file mode 100644
index 0000000..e9fdb9d
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsAndHierarchyBuilder.java
@@ -0,0 +1,121 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+public class EClassContentsAndHierarchyBuilder extends AbstractPlantUMLBuilder {
+
+	@Override
+	public BuilderResult generatePlantUML(final EClass selectedObjClass) {
+
+		this.resetCaches();
+
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+
+		plantuml.append("' Created by EClassContentsAndHierarchyBuilder (" + timestamp() + ")\n\n");
+
+		appendSkinParams(plantuml);
+
+		plantuml.append("\n' ===== Main Class =====\n\n");
+
+		createClass(plantuml, selectedObjClass, "SelectedElement");
+
+		plantuml.append("\n' ===== Super Classes =====\n\n");
+
+		populateSuperClasses(plantuml, selectedObjClass);
+
+		plantuml.append("\n' ===== Sub Classes =====\n\n");
+
+		populateSubClassInfo(plantuml, selectedObjClass);
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(EObject eObject) {
+		return generatePlantUML(eObject.eClass());
+	}
+
+	private void populateSubClassInfo(final StringBuilder plantuml, final EClass eClass) {
+
+		for (final EClass subClass : BuilderUtil.getSubClasses(eClass)) {
+
+			createClass(plantuml, subClass, "H");
+
+			appendInheritance(plantuml, eClass, subClass, null);
+		}
+	}
+
+	private void populateSuperClasses(final StringBuilder plantuml, final EClass eClass) {
+
+		for (final EClass superClass : eClass.getESuperTypes()) {
+
+			createClass(plantuml, superClass, "H");
+
+			appendInheritance(plantuml, superClass, eClass, null);
+
+			populateSuperClasses(plantuml, superClass);
+		}
+	}
+
+	private void createClass(final StringBuilder plantuml, final EClass eClass, final String stereoType) {
+
+		if (!getNodes().contains(eClass)) {
+
+			boolean createUUID = ("SelectedElement".equals(stereoType) == false);
+			
+			appendClass(plantuml, eClass, stereoType, createUUID, eClass.getEAttributes(), eClass.getEReferences());
+
+			/*- managing EEnums belonging to the specific EMF element */
+
+			for (final EAttribute attribute : eClass.getEAttributes()) {
+				if (attribute.getEAttributeType() instanceof EEnum) {
+
+					EEnum eEnum = (EEnum) attribute.getEType();
+					
+					appendEnum(plantuml, eEnum);
+
+					appendAsContainment(plantuml, attribute, eClass, eEnum);
+				}
+			}
+
+			/*- managing EReferences belonging to the specific EMF element */
+
+			for (final EReference reference : eClass.getEReferences()) {
+				if (reference.getEType() instanceof EClass) {
+
+					EClass target = (EClass) reference.getEType();
+
+					createClass(plantuml, target, null);
+
+					appendReference(plantuml, reference, eClass, target);
+				}
+			}
+
+			plantuml.append("\n");
+		}
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsFromReferenceBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsFromReferenceBuilder.java
new file mode 100644
index 0000000..203fb48
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassContentsFromReferenceBuilder.java
@@ -0,0 +1,107 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+public class EClassContentsFromReferenceBuilder extends AbstractPlantUMLBuilder {
+
+	@Override
+	public BuilderResult generatePlantUML(final EClass selectedObjClass) {
+
+		this.resetCaches();
+
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+
+		plantuml.append("' Created by EClassContentsFromReferenceBuilder (" + timestamp() + ")\n\n");
+
+		appendSkinParams(plantuml);
+
+		plantuml.append("\n' ===== Main Class =====\n\n");
+
+		createClass(plantuml, selectedObjClass, "SelectedElement", 1);
+
+		plantuml.append("\n' ===== Sub Classes =====\n\n");
+
+		populateSubClassInfo(plantuml, selectedObjClass);
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(EObject eObject) {
+		return generatePlantUML(eObject.eClass());
+	}
+
+	private void populateSubClassInfo(final StringBuilder plantuml, final EClass eClass) {
+
+		for (final EClass subClass : BuilderUtil.getSubClasses(eClass)) {
+
+			createClass(plantuml, subClass, "H", 1);
+
+			appendInheritance(plantuml, eClass, subClass, null);
+		}
+	}
+
+	private void createClass(final StringBuilder plantuml, final EClass eClass, final String stereoType, final int level) {
+
+		if (level > 2) return;
+
+		if (!getNodes().contains(eClass)) {
+
+			boolean createUUID = ("SelectedElement".equals(stereoType) == false);
+			
+			appendClass(plantuml, eClass, stereoType, createUUID, eClass.getEAllAttributes(), eClass.getEAllReferences());
+
+			/*- managing EEnums belonging to the specific EMF element */
+
+			for (final EAttribute attribute : eClass.getEAllAttributes()) {
+				if (attribute.getEAttributeType() instanceof EEnum) {
+
+					EEnum eEnum = (EEnum) attribute.getEType();
+					
+					appendEnum(plantuml, eEnum);
+
+					appendAsContainment(plantuml, attribute, eClass, eEnum);
+				}
+			}
+
+			/*- managing EReferences belonging to the specific EMF element */
+
+			for (final EReference reference : eClass.getEAllReferences()) {
+				if (reference.getEType() instanceof EClass) {
+
+					EClass target = (EClass) reference.getEType();
+
+					createClass(plantuml, target, null, level + 1);
+
+					appendReference(plantuml, reference, eClass, target);
+				}
+			}
+
+			plantuml.append("\n");
+		}
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassHierarchyBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassHierarchyBuilder.java
new file mode 100644
index 0000000..cf8b598
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EClassHierarchyBuilder.java
@@ -0,0 +1,89 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+public class EClassHierarchyBuilder extends AbstractPlantUMLBuilder {
+
+	@Override
+	public BuilderResult generatePlantUML(EClass selectedObjClass) {
+
+		resetCaches();
+
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+		
+		plantuml.append("' Created by EClassHierarchyBuilder (" + timestamp() + ")\n\n");
+
+		plantuml.append("skinparam class {\n");
+		plantuml.append("  BackgroundColor<<selected>> Moccasin\n");
+		plantuml.append("}\n\n");
+		
+		plantuml.append("' ===== Main Class =====\n\n");
+		
+		appendClass(plantuml, selectedObjClass, "selected", false, null, null);
+		
+		plantuml.append("\n' ===== Super Classes =====\n\n");
+
+		populateSuperClasses(plantuml, selectedObjClass);
+
+		plantuml.append("\n' ===== Sub Classes =====\n\n");
+
+		populateSubClasses(plantuml, selectedObjClass, BuilderUtil.getSubClasses(selectedObjClass));
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(EObject eObject) {
+		return generatePlantUML(eObject.eClass());
+	}
+
+	private void populateSuperClasses(final StringBuilder plantuml, final EClass eClass) {
+		
+		for (final EClass superClass : eClass.getESuperTypes()) {
+	
+			appendClass(plantuml, superClass, null, true, null, null);
+
+			appendInheritance(plantuml, superClass, eClass, null);
+	
+			populateSuperClasses(plantuml, superClass);
+		}
+	}
+
+	private void populateSubClasses(final StringBuilder plantuml, final EClass eClass, final Set<EClass> subClasses) {
+
+		for (final EClass subClass : subClasses) {
+
+			if (subClass.getESuperTypes().contains(eClass)) {
+
+				appendClass(plantuml, subClass, null, true, null, null);
+				
+				appendInheritance(plantuml, eClass, subClass, null);
+
+				populateSubClasses(plantuml, subClass, subClasses);
+			}
+		}
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EObjectRefsBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EObjectRefsBuilder.java
new file mode 100644
index 0000000..af73c89
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/EObjectRefsBuilder.java
@@ -0,0 +1,283 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.swt.widgets.Display;
+
+public class EObjectRefsBuilder extends AbstractPlantUMLBuilder {
+
+	UISynchronize sync;
+	
+	public EObjectRefsBuilder(UISynchronize sync) {
+		this.sync = sync;
+	}
+
+	// NOTE: EClass is an EObject
+	
+	@Override
+	public BuilderResult generatePlantUML(final EClass eObject) {
+		return generatePlantUML((EObject) eObject);
+	}
+	
+	@Override
+	public BuilderResult generatePlantUML(final EObject eObject) {
+
+		resetCaches();
+
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+		
+		plantuml.append("' Created by EObjectRefsBuilder (" + timestamp() + ")\n\n");
+
+		plantuml.append("skinparam class {\n");
+		plantuml.append("  BackgroundColor<<selected>> Moccasin\n");
+		plantuml.append("}\n\n");
+
+		plantuml.append("' ===== Main Object =====\n\n");
+		
+		buildBuffer(eObject, plantuml);
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	private void buildBuffer(final EObject selectedEObj, final StringBuilder plantuml) {
+
+		final List<EObject> result = new ArrayList<EObject>();
+
+		/* getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
+
+		final Collection<Setting> allRefSettings = filterBackReferences(getAllRefSettings(selectedEObj));
+		
+		/*
+		 * In case of many elements it is difficult to visualize the contents in the diagram.
+		 *
+		 * Below code provides the possibility to specify the range
+		 */
+		if (allRefSettings.size() > 100) {
+
+			if (sync != null) {
+				sync.syncExec(() -> {
+					InputDialog inputDialog = new InputDialog(
+							Display.getDefault().getActiveShell(), 
+							"Element selection dialog",
+							"There are " + allRefSettings.size() + " references. Specify the range for which contents should be represented graphically",
+							"0-" + (allRefSettings.size() - 1), new IInputValidator() {
+
+								@Override
+								public String isValid(final String newText) {
+									if (!Pattern.matches("(\\d)+\\-(\\d)+", newText)) {
+										return "Specify the range in the following way int-int eg. 10-20 ";
+									}
+									return null;
+								}
+							});
+
+					int status = inputDialog.open();
+
+					List<Setting> subList = null;
+					if (status == Dialog.OK) {
+						String value = inputDialog.getValue();
+						String[] split = value.split("-");
+
+						subList = new ArrayList<>(allRefSettings).subList(Integer.parseInt(split[0]),
+								Integer.parseInt(split[1]) < allRefSettings.size() 
+										? Integer.parseInt(split[1])
+										: (allRefSettings.size() - 1));
+
+					} else {
+						subList = new ArrayList<Setting>(allRefSettings).subList(0, 99);
+					}
+					
+					allRefSettings.clear();
+					allRefSettings.addAll(subList);
+				});
+				
+			} else {
+				List<Setting> subList = new ArrayList<>(allRefSettings).subList(0, 99);
+				allRefSettings.clear();
+				allRefSettings.addAll(subList);
+			}
+		}
+
+		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
+
+		if (allRefSettings.size() > 0) {
+
+			for (final EStructuralFeature.Setting setting : allRefSettings) {
+
+				if (!isElementContained(result, setting.getEObject())) {
+					result.add(setting.getEObject());
+				}
+			}
+
+			createClass(plantuml, selectedEObj);
+
+			for (final EObject eobj : result) {
+
+				createClass(plantuml, eobj);
+
+				if (!isNamePresent(eobj)) {
+
+					/*- As name is not present, generate the hierarchy till the level Object with Structural Feature name is present */
+					associateContainer(plantuml, eobj);
+				}
+			}
+
+			for (final EObject eobj : result) {
+
+				final String name = getName(eobj).toString();
+
+				plantuml.append(name + "--> " + getName(selectedEObj));
+				plantuml.append("\n");
+			}
+			
+		} else {
+
+			/*- no references for this EClass are found */
+			createClass(plantuml, selectedEObj);
+		}
+	}
+
+	/**
+	 * In case of certain meta-models (e.g: Amalthea), to have back references -> derived attributes are specified on Reference in Ecore.
+	 * This method is used to remove back reference objects from the collection.
+	 * @param allRefSettings
+	 * @return filteredSettings which do not have derived references
+	 */
+	private Collection<Setting> filterBackReferences(Collection<Setting> allRefSettings) {
+
+		Collection<Setting> filteredSettingElements=new ArrayList<EStructuralFeature.Setting>();
+
+		if (allRefSettings.size() > 0) {
+
+			for (final EStructuralFeature.Setting setting : allRefSettings) {
+
+				EStructuralFeature eStructuralFeature = setting.getEStructuralFeature();
+				
+				if (eStructuralFeature instanceof EReference
+						&& (((EReference) eStructuralFeature).isContainment() == false)
+						&& (((EReference) eStructuralFeature).isDerived() == false)) {
+					filteredSettingElements.add(setting);
+				}
+			}
+		}
+		
+		return filteredSettingElements;
+	}
+
+	private Collection<Setting> getAllRefSettings(EObject selectedEObj) {
+		Resource eResource = selectedEObj.eResource();
+		if (eResource == null) {
+			return EcoreUtil.UsageCrossReferencer.find(selectedEObj, EcoreUtil.getRootContainer(selectedEObj));
+		} else if (eResource.getResourceSet() == null) {
+			return EcoreUtil.UsageCrossReferencer.find(selectedEObj, eResource);
+		}
+		return EcoreUtil.UsageCrossReferencer.find(selectedEObj, eResource.getResourceSet());
+	}
+	
+	private void createClass(final StringBuilder plantuml, final EObject selectedEObj) {
+		if (!getNodes().contains(selectedEObj)) {
+			addNode(selectedEObj); // mark as created
+			
+			final Object name = getName(selectedEObj);
+			final String className = selectedEObj.eClass().getName();
+			final String uuid = getIdForObject(selectedEObj);
+			
+			plantuml.append("class " + name + " << (O,#B4A7E5) " + className + " >>" + " [[" + uuid + "]]");
+			plantuml.append("\n");
+		}
+	}
+
+	private Object getName(final EObject eObject) {
+		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
+
+		if (eStructuralFeature != null) {
+
+			final Object originalName = eObject.eGet(eStructuralFeature);
+
+			if (originalName == null || originalName.toString().length() == 0) {
+				return eObject.eClass().getName() + "__" + eObject.hashCode();
+			}
+
+			return "\"" + originalName + "\"";
+		}
+
+		return eObject.eClass().getName() + "__" + eObject.hashCode();
+	}
+
+	private void associateContainer(final StringBuilder plantuml, final EObject eObject) {
+
+		final EObject eContainerObj = eObject.eContainer();
+
+		if (eContainerObj == null) {
+			return;
+		}
+
+		createClass(plantuml, eContainerObj);
+
+		plantuml.append(getName(eContainerObj) + " *-- " + getName(eObject));
+
+		plantuml.append("\n");
+
+		if (!isNamePresent(eContainerObj)) {
+			associateContainer(plantuml, eContainerObj);
+		}
+
+	}
+
+	private boolean isNamePresent(final EObject eObject) {
+		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
+
+		if (eStructuralFeature == null) {
+			return false;
+		}
+
+		return true;
+	}
+
+	private boolean isElementContained(final List<EObject> list, final EObject eRef) {
+		boolean isElementFound = false;
+		final Iterator<EObject> it = list.iterator();
+		while (it.hasNext() && !isElementFound) {
+			final EObject isContained = it.next();
+			if (isContained.equals(eRef)) {
+				isElementFound = true;
+			}
+		}
+		return isElementFound;
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/ObjectContentBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/ObjectContentBuilder.java
new file mode 100644
index 0000000..6057aad
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/builders/ObjectContentBuilder.java
@@ -0,0 +1,272 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.builders;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.swt.widgets.Display;
+
+public class ObjectContentBuilder extends AbstractPlantUMLBuilder {
+
+	UISynchronize sync;
+	
+	public ObjectContentBuilder(UISynchronize sync) {
+		this.sync = sync;
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(Object selectedObject) {
+		if (selectedObject instanceof EList) {
+			return generatePlantUMLForCollection((EList<?>) selectedObject);
+		}
+		return super.generatePlantUML(selectedObject);
+	}
+
+	// NOTE: EClass is an EObject
+	
+	@Override
+	public BuilderResult generatePlantUML(final EClass eObject) {
+		return generatePlantUML((EObject) eObject);
+	}
+
+	@Override
+	public BuilderResult generatePlantUML(final EObject eObject) {
+
+		resetCaches();
+		
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+		
+		plantuml.append("' Created by ObjectContentBuilder (" + timestamp() + ")\n\n");
+
+		plantuml.append("' ===== Main Object =====\n\n");
+
+		buildBuffer(eObject, plantuml);
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	public BuilderResult generatePlantUMLForCollection(final EList<?> eList) {
+
+		resetCaches();
+		
+		final StringBuilder plantuml = new StringBuilder();
+
+		plantuml.append("@startuml\n\n");
+
+		plantuml.append("' Created by ObjectContentBuilder (" + timestamp() + ")\n\n");
+
+		plantuml.append("' ===== Main Objects =====\n\n");
+
+		createClass(plantuml, eList, null);
+
+		for (final Object object : getElementsBasedOnRange(eList)) {
+			if (object instanceof EObject) {
+
+				createClass(plantuml, (EObject) object);
+
+				final String name = getName((EObject) object).toString();
+
+				plantuml.append("Collection --> " + name);
+				plantuml.append("\n");
+			}
+		}
+
+		plantuml.append("\n@enduml");
+
+		return new BuilderResult(getId2ObjectMap(), plantuml.toString());
+	}
+
+	private void buildBuffer(final EObject selectedEObj, final StringBuilder plantuml) {
+
+		final EList<EStructuralFeature> eStructuralFeatures = selectedEObj.eClass().getEAllStructuralFeatures();
+
+		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
+
+		if (eStructuralFeatures.size() > 0) {
+
+			createClass(plantuml, selectedEObj);
+
+			final List<EStructuralFeature> processedFeatures = new ArrayList<EStructuralFeature>();
+
+			for (final EStructuralFeature eStructuralFeature : eStructuralFeatures) {
+
+				final boolean eIsSet = selectedEObj.eIsSet(eStructuralFeature);
+
+				if (eIsSet && !processedFeatures.contains(eStructuralFeature)
+						&& (eStructuralFeature instanceof EReference)) {
+
+					processedFeatures.add(eStructuralFeature);
+
+					final Object eobj = selectedEObj.eGet(eStructuralFeature);
+
+					if (eobj instanceof EObject) {
+						createClass(plantuml, (EObject) eobj);
+
+						final String name = getName((EObject) eobj).toString();
+
+						final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
+
+						plantuml.append(getName(selectedEObj) + relation + name);
+						plantuml.append("\n");
+
+					} else if (eobj instanceof EList) {
+
+						createClass(plantuml, (EList<?>) eobj, eStructuralFeature);
+
+						final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
+
+						plantuml.append(getName(selectedEObj) + relation + eStructuralFeature.getName());
+						plantuml.append("\n");
+					}
+
+				}
+			}
+
+		} else {
+
+			/*- no references for this EClass are found */
+			createClass(plantuml, selectedEObj);
+		}
+
+	}
+
+	private void createClass(final StringBuilder plantuml, final EList<?> eList, final EStructuralFeature eStructuralFeature) {
+
+		final String uuid = getIdForObject(eList);
+
+		if (eStructuralFeature != null) {
+			final String name = eStructuralFeature.getName();
+			final String typeName = eStructuralFeature.getEType().getName();
+
+			plantuml.append("class \"" + name + "\"" + " << (*,#FF7700) EList<" + typeName + "> >>" + " [[" + uuid + "]]");
+		} else {
+			plantuml.append("class \"" + "Collection" + "\"" + " << (*,#FF7700) Collection<" + "EList" + "> >>" + " [[" + uuid + "]]");
+		}
+
+		plantuml.append("\n");
+	}
+
+	private void createClass(final StringBuilder plantuml, final EObject selectedEObj) {
+
+		final Object name = getName(selectedEObj);
+		final String className = selectedEObj.eClass().getName();
+		final String uuid = getIdForObject(selectedEObj);
+
+		plantuml.append("class " + name + " << (O,#B4A7E5) " + className + " >>" + " [[" + uuid + "]]");
+
+		final EList<EAttribute> eAllAttributes = selectedEObj.eClass().getEAllAttributes();
+
+		if (eAllAttributes.size() > 0) {
+
+			plantuml.append(" {");
+
+			final List<EAttribute> processedFeatures = new ArrayList<EAttribute>();
+
+			for (final EAttribute eAttribute : eAllAttributes) {
+
+				if (selectedEObj.eIsSet(eAttribute) && !processedFeatures.contains(eAttribute)) {
+
+					processedFeatures.add(eAttribute);
+
+					plantuml.append("\n  ");
+					plantuml.append(eAttribute.getEType().getName() + " " + eAttribute.getName() + " = " + selectedEObj.eGet(eAttribute));
+				}
+			}
+			plantuml.append("\n}");
+		}
+
+		plantuml.append("\n");
+	}
+
+	private Object getName(final EObject eObject) {
+		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
+
+		if (eStructuralFeature != null) {
+
+			final Object originalName = eObject.eGet(eStructuralFeature);
+
+			return "\"" + originalName + "\"";
+		}
+
+		return eObject.eClass().getName() + "__" + eObject.hashCode();
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	private List<?> getElementsBasedOnRange(final EList<?> eList) {
+
+		if (eList.size() > 100) {
+
+			if (sync != null) {
+				sync.syncExec(() -> {
+					
+					List subList = new ArrayList();
+					
+					InputDialog inputDialog = new InputDialog(
+							Display.getDefault().getActiveShell(), 
+							"Element selection dialog",
+							"There are " + eList.size() + " references. Specify the range for which contents should be represented graphically",
+							"0-" + (eList.size() - 1), new IInputValidator() {
+								
+								@Override
+								public String isValid(final String newText) {
+									if (!Pattern.matches("(\\d)+\\-(\\d)+", newText)) {
+										return "Specify the range in the following way int-int eg. 10-20 ";
+									}
+									return null;
+								}
+							});
+					
+					int status = inputDialog.open();
+					
+					if (status == Dialog.OK) {
+						String value = inputDialog.getValue();
+						
+						String[] split = value.split("-");
+						
+						subList = new ArrayList<>(eList).subList(
+								Integer.parseInt(split[0]),
+								Integer.parseInt(split[1]) < eList.size() 
+										? Integer.parseInt(split[1]) 
+										: (eList.size() - 1));
+					} else {
+						subList = new ArrayList<>(eList).subList(0, 99);
+					}
+					
+					eList.clear();
+					eList.addAll(subList);
+				});
+			}
+		}
+		
+		return eList;
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/AbstractPlantUMLHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/AbstractPlantUMLHandler.java
new file mode 100644
index 0000000..3de0a86
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/AbstractPlantUMLHandler.java
@@ -0,0 +1,156 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import java.io.File;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.BuilderResult;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.DiagramCreator;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionUtil;
+import org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class AbstractPlantUMLHandler {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPlantUMLHandler.class);
+	
+	protected abstract AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync);
+	
+	protected abstract ExecutionCategory getExecutionCategory();
+
+	public abstract String getFileNamePrefix(Object eObject);
+	
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			String dotPath,
+			String genFolderPath,
+			IStructuredSelection selection,
+			EPartService partService) {
+		
+		EClass selectedObjClass = null;
+		
+		Object element = selection.getFirstElement();
+		if (element instanceof EObject) {
+			if (element instanceof EClass) {
+				selectedObjClass = (EClass) element;
+			} else {
+				selectedObjClass = ((EObject) element).eClass();
+			}
+		} else {
+			openErrorDialog(shell);
+			return;
+		}
+		
+		execute(
+				shell,
+				sync,
+				dotPath,
+				genFolderPath,
+				partService,
+				selectedObjClass,
+				(EObject)element);
+	}
+	
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			String dotPath,
+			String genFolderPath,
+			EPartService partService,
+			Object selected,
+			EObject eObject) {
+		
+		// check if there is a valid dot path
+		if (verifyDotPath(shell, dotPath)) {
+			
+			// generate UML
+			if (selected != null) {
+				
+				String genFolder = DiagramCreator.getGenFolder(genFolderPath, eObject != null ? eObject.eResource() : null);
+				if (genFolder == null || genFolder.length() == 0) {
+					openErrorDialog(shell, "Folder for diagram generation is not set. Configure a folder path in Preferences -> AMALTHEA Graphical Representation");
+					return;
+				} else if (!new File(genFolder).exists()) {
+					openErrorDialog(shell, "Invalid folder path is specified. Configure a valid folder path in Preferences -> AMALTHEA Graphical Representation");
+					return;
+				}
+				
+				// generate UML and SVG
+				Job job = Job.create("Generate diagram", monitor -> {
+					AbstractPlantUMLBuilder builder = createPlantUMLBuilder(sync);
+					BuilderResult result = builder.generatePlantUML(selected);
+					
+					LOGGER.info(result.getPlantUMLText());
+					
+					ExecutionUtil.setExecutionCategory(getExecutionCategory());
+					String fileNamePrefix = getFileNamePrefix(eObject != null ? eObject : selected);
+					String svgFilePath = DiagramCreator.generateSVG(result, genFolder, fileNamePrefix, eObject);
+					
+					sync.asyncExec(() -> {
+						// display view
+						MPart diagramPart = partService.findPart(DiagramView.ID);
+						if (diagramPart == null) {
+							diagramPart = partService.createPart(DiagramView.ID);
+						}
+						if (diagramPart != null) {
+							partService.showPart(diagramPart, PartState.VISIBLE);
+							DiagramView diagramView = (DiagramView) diagramPart.getObject();
+							diagramView.showDiagram(fileNamePrefix, eObject, svgFilePath, result.getId2ObjectMap());
+						}
+					});
+				});
+				job.schedule();
+			}
+		}
+	}
+	
+	protected boolean verifyDotPath(Shell shell, String dotPath) {
+		if (dotPath == null) {
+			openErrorDialog(shell, "Missing Graphviz DOT.exe location in Preferences."+System.getProperty("line.separator")+"Please specify location via \"Window - Preferences - PlantUML - Path to the dot executable of Graphviz.\"");
+			return false;
+		} else if (!new File(dotPath).exists()) {
+			openErrorDialog(shell, "Invalid path of Graphviz DOT.exe is present in Preferences."+System.getProperty("line.separator")+"Please specify valid path via \"Window - Preferences - PlantUML - Path to the dot executable of Graphviz.\"");
+			return false;
+		}
+
+		System.setProperty("GRAPHVIZ_DOT", dotPath);
+
+		return true;
+	}
+	
+	protected void openErrorDialog(Shell shell) {
+		openErrorDialog(shell, "Selected object is not a EMF object");
+	}
+
+	protected void openErrorDialog(Shell shell, String msg) {
+		MessageDialog.openError(shell, "EMF content extractor dialog", msg);
+	}
+
+}
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/CopyContentsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/CopyContentsHandler.java
new file mode 100644
index 0000000..35c6ac1
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/CopyContentsHandler.java
@@ -0,0 +1,53 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
+import java.util.Iterator;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+public class CopyContentsHandler {
+
+	@Execute
+	public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection) {
+		StringBuilder sb = new StringBuilder();
+
+		Iterator<?> iterator = selection.iterator();
+
+		while (iterator.hasNext()) {
+			Object next = iterator.next();
+			System.out.println(next);
+
+			if (next instanceof ENamedElement) {
+				String name = ((ENamedElement) next).getName();
+				sb.append(name);
+				sb.append("\n");
+			}
+		}
+		StringSelection selection1 = new StringSelection(sb.toString());
+		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
+		clipboard.setContents(selection1, selection1);
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassAllReferencesHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassAllReferencesHandler.java
new file mode 100644
index 0000000..35d16ad
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassAllReferencesHandler.java
@@ -0,0 +1,77 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EClassAllReferencesBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EClassAllReferencesHandler extends AbstractPlantUMLHandler {
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EClassAllReferencesBuilder(); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eClassAllReferences;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			return ((EObject)eObject).eClass().getName() + "_SuperTypes_References";
+		}
+		return eObject.getClass().getName() + "_SuperTypes_References";
+	}
+
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		super.execute(shell, sync, dotPath, genFolderPath, selection, partService);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsAndHierarchyHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsAndHierarchyHandler.java
new file mode 100644
index 0000000..9a3dcbb
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsAndHierarchyHandler.java
@@ -0,0 +1,77 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EClassContentsAndHierarchyBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EClassContentsAndHierarchyHandler extends AbstractPlantUMLHandler {
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EClassContentsAndHierarchyBuilder(); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eClassContentsAndHierarchy;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			return ((EObject)eObject).eClass().getName() + "__contents_deep_Hierarchy";
+		}
+		return eObject.getClass().getName() + "__contents_deep_Hierarchy";
+	}
+	
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		super.execute(shell, sync, dotPath, genFolderPath, selection, partService);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsFromReferenceHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsFromReferenceHandler.java
new file mode 100644
index 0000000..2153391
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsFromReferenceHandler.java
@@ -0,0 +1,77 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EClassContentsFromReferenceBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EClassContentsFromReferenceHandler extends AbstractPlantUMLHandler {
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EClassContentsFromReferenceBuilder(); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eClassContentsFromReference;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			return ((EObject)eObject).eClass().getName() + "__reference_type_Hierarchy";
+		}
+		return eObject.getClass().getName() + "__reference_type_Hierarchy";
+	}
+	
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		super.execute(shell, sync, dotPath, genFolderPath, selection, partService);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsHandler.java
new file mode 100644
index 0000000..28c262f
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassContentsHandler.java
@@ -0,0 +1,77 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EClassContentsFromReferenceBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EClassContentsHandler extends AbstractPlantUMLHandler {
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EClassContentsFromReferenceBuilder(); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eClassContents;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			return ((EObject)eObject).eClass().getName() + "__precise_Hierarchy";
+		}
+		return eObject.getClass().getName() + "__precise_Hierarchy";
+	}
+	
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		super.execute(shell, sync, dotPath, genFolderPath, selection, partService);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassHierarchyHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassHierarchyHandler.java
new file mode 100644
index 0000000..b493ebb
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EClassHierarchyHandler.java
@@ -0,0 +1,81 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EClassHierarchyBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EClassHierarchyHandler extends AbstractPlantUMLHandler {
+	
+	EPartService partService;
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EClassHierarchyBuilder(); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eClassHierarchy;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			return ((EObject)eObject).eClass().getName() + "__eclass_Hierarchy";
+		}
+		return eObject.getClass().getName() + "__eclass_Hierarchy";
+	}
+	
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		this.partService = partService;
+		
+		super.execute(shell, sync, dotPath, genFolderPath, selection, partService);
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EObjectRefsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EObjectRefsHandler.java
new file mode 100644
index 0000000..1ecb788
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/EObjectRefsHandler.java
@@ -0,0 +1,97 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.EObjectRefsBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class EObjectRefsHandler extends AbstractPlantUMLHandler {
+
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new EObjectRefsBuilder(sync); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.eObjectRefs;
+	}
+
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EObject) {
+			EObject e = (EObject)eObject;
+			EStructuralFeature eStructuralFeature = e.eClass().getEStructuralFeature("name");
+			
+			String name = (eStructuralFeature != null) 
+					? (String) e.eGet(eStructuralFeature) 
+					: e.eClass().getName() + "__" + eObject.hashCode();
+			
+			return e.eClass().getName() + "__" + name + "_References";
+		}
+		return eObject.getClass().getName() + "__" + "_References";
+	}
+
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		Object element = selection.getFirstElement();
+		if (element instanceof EObject) {
+			execute(
+					shell,
+					sync,
+					dotPath,
+					genFolderPath,
+					partService,
+					element,
+					(EObject)element);
+		} else {
+			openErrorDialog(shell);
+		}
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/LinkWithEditorHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/LinkWithEditorHandler.java
new file mode 100644
index 0000000..64ca72f
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/LinkWithEditorHandler.java
@@ -0,0 +1,42 @@
+/*********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */ 
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView;
+import org.eclipse.e4.core.contexts.Active;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MDirectToolItem;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBarElement;
+
+public class LinkWithEditorHandler {
+	
+	@Execute
+	public void execute(@Active MPart activePart) {
+		
+		if (activePart.getObject() instanceof DiagramView) {
+			for (MToolBarElement element : activePart.getToolbar().getChildren()) {
+				if (element.getElementId().equals("org.eclipse.app4mc.emf.viewer.plantuml.directtoolitem.select")) {
+					MDirectToolItem toolItem = (MDirectToolItem) element;
+					
+					DiagramView diagramView = (DiagramView) activePart.getObject();
+					
+					boolean isLinked = diagramView.isLinkedWithEditor();
+					diagramView.setLinkedWithEditor(!isLinked);
+					toolItem.setSelected(!isLinked);
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/ObjectContentHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/ObjectContentHandler.java
new file mode 100644
index 0000000..aae6a8c
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/handlers/ObjectContentHandler.java
@@ -0,0 +1,102 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.handlers;
+
+import java.lang.reflect.Type;
+
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.AbstractPlantUMLBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.ObjectContentBuilder;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class ObjectContentHandler extends AbstractPlantUMLHandler {
+	
+	@Override
+	protected AbstractPlantUMLBuilder createPlantUMLBuilder(UISynchronize sync) {
+		return new ObjectContentBuilder(sync); 
+	}
+	
+	@Override
+	protected ExecutionCategory getExecutionCategory() {
+		return ExecutionCategory.dummy;
+	}
+	
+	@Override
+	public String getFileNamePrefix(Object eObject) {
+		if (eObject instanceof EList) {
+			EList<?> eList = (EList<?>) eObject;
+			String typeString = "";
+			if (!eList.isEmpty()) {
+				Type[] genericInterfaces = eList.getClass().getGenericInterfaces();
+				
+				typeString = genericInterfaces.length > 0 ? genericInterfaces[0].getTypeName() : "";
+				
+				// replace generic information
+				typeString = typeString.replaceAll("<[a-zA-Z]+>", "");
+			}
+			return "Collection" + "_" + typeString + "__object_Content";
+		}
+		return eObject.getClass().getName() + "__object_Content";
+	}
+	
+	@Override
+	@Execute
+	public void execute(
+			Shell shell,
+			UISynchronize sync,
+			@Optional
+			@Preference(
+					nodePath = "net.sourceforge.plantuml.eclipse", 
+					value = PlantumlConstants.GRAPHVIZ_PATH) 
+			String dotPath,
+			@Optional
+			@Preference(
+					nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+					value = PreferenceConstants.P_FOLDER_PATH) 
+			String genFolderPath,
+			@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+			EPartService partService) {
+		
+		Object element = selection.getFirstElement();
+		if (element instanceof EObject) {
+			execute(
+					shell,
+					sync,
+					dotPath,
+					genFolderPath,
+					partService,
+					element,
+					(EObject)element);
+		} else {
+			openErrorDialog(shell);
+		}
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/AmaltheaGraphicalRepresentationPreferencePage.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/AmaltheaGraphicalRepresentationPreferencePage.java
similarity index 65%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/AmaltheaGraphicalRepresentationPreferencePage.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/AmaltheaGraphicalRepresentationPreferencePage.java
index d52afef..fc30077 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/AmaltheaGraphicalRepresentationPreferencePage.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/AmaltheaGraphicalRepresentationPreferencePage.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,15 +12,14 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor.preferences;
+
+package org.eclipse.app4mc.emf.viewer.plantuml.preferences;
 
 import java.io.IOException;
 
-import org.eclipse.app4mc.emfutils.content.extractor.Activator;
-import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.app4mc.emf.viewer.plantuml.Activator;
 import org.eclipse.jface.preference.DirectoryFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.FileFieldEditor;
 import org.eclipse.jface.preference.IPersistentPreferenceStore;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.ui.IWorkbench;
@@ -41,8 +40,7 @@
 	public AmaltheaGraphicalRepresentationPreferencePage() {
 		super(GRID);
 		setPreferenceStore(Activator.getDefault().getPreferenceStore());
-		setDescription(
-				"Preference page to specify the Graphviz (dot executable) location & the folder (with RW access) to generate SVG files");
+		setDescription("Preference page to specify the directory in which the diagrams should be generated.");
 	}
 
 	/**
@@ -52,42 +50,22 @@
 	@Override
 	public void createFieldEditors() {
 
-		addField(new FileFieldEditor(PreferenceConstants.P_DOT_PATH, "&Path to the dot executable of Graphviz:",
-				getFieldEditorParent()));
-
 		addField(new DirectoryFieldEditor(PreferenceConstants.P_FOLDER_PATH,
 				"&Path to the directory where SVG files shall be generated:", getFieldEditorParent()));
 
-		addField(new BooleanFieldEditor(PreferenceConstants.P_DRILL_DOWN,
-				"&Show the details of selected element (Contents)", getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(PreferenceConstants.P_REDRAW_TREE_ON_SELECTION,
-				"&Collapse other elements and make the selection (by enabling this -> selected element will be focused more precisely in the tree )",
-				getFieldEditorParent()));
-
 	}
 
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
+	@Override
 	public void init(final IWorkbench workbench) {
 	}
 
 	@Override
-	public boolean performOk() {
-		// TODO Auto-generated method stub
-		return super.performOk();
-	}
-	
-	@Override
 	protected void performApply() {
 		super.performApply();
-		
+
 		IPreferenceStore preferenceStore = getPreferenceStore();
-		
-		if(preferenceStore instanceof IPersistentPreferenceStore) {
+
+		if (preferenceStore instanceof IPersistentPreferenceStore) {
 			try {
 				((IPersistentPreferenceStore) preferenceStore).save();
 			} catch (IOException e) {
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceConstants.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceConstants.java
similarity index 66%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceConstants.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceConstants.java
index 23c5d43..363153e 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceConstants.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceConstants.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,18 +12,14 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor.preferences;
+
+package org.eclipse.app4mc.emf.viewer.plantuml.preferences;
 
 /**
  * Constant definitions for plug-in preferences
  */
 public class PreferenceConstants {
 
-	public static final String P_DOT_PATH = "P_DOT_PATH";
-
 	public static final String P_FOLDER_PATH = "P_FOLDER_PATH";
 
-	public static final String P_DRILL_DOWN = "P_DRILL_DOWN";
-
-	public static final String P_REDRAW_TREE_ON_SELECTION = "P_REDRAW_TREE_ON_SELECTION";
 }
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceInitializer.java
similarity index 61%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java
copy to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceInitializer.java
index 08cdcee..15a13c1 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/preferences/PreferenceInitializer.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/preferences/PreferenceInitializer.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,9 +12,10 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.metamodelviewer.preferences;
 
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
+package org.eclipse.app4mc.emf.viewer.plantuml.preferences;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.Activator;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
 
@@ -23,15 +24,14 @@
  */
 public class PreferenceInitializer extends AbstractPreferenceInitializer {
 
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
 	@Override
 	public void initializeDefaultPreferences() {
+
 		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-		store.setDefault(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY, store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY) != null
-				? store.getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY) : "");
+		store.setDefault(PreferenceConstants.P_FOLDER_PATH,
+				store.getString(PreferenceConstants.P_FOLDER_PATH) != null
+						? store.getString(PreferenceConstants.P_FOLDER_PATH)
+						: "");
 	}
+
 }
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/DiagramCreator.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/DiagramCreator.java
new file mode 100644
index 0000000..6e4346f
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/DiagramCreator.java
@@ -0,0 +1,126 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.app4mc.emf.viewer.plantuml.utils;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.builders.BuilderResult;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import net.sourceforge.plantuml.FileFormat;
+import net.sourceforge.plantuml.FileFormatOption;
+import net.sourceforge.plantuml.SourceStringReader;
+
+public final class DiagramCreator {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(DiagramCreator.class);
+
+	private DiagramCreator() {
+		// empty default constructor for static helper class
+	}
+	
+	public static String generateSVG(
+			BuilderResult result, 
+			String genFolder, 
+			String fileNamePrefix,
+			EObject selectedElement) {
+		
+		SourceStringReader reader = new SourceStringReader(result.getPlantUMLText());
+
+		String genFileLocation = genFolder + "/" + fileNamePrefix;	// always use standard delimiter !
+
+		// write plantuml file
+		try (FileOutputStream fileOutputStream = new FileOutputStream(new File(genFileLocation + ".plantuml"));
+				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fileOutputStream));) {
+			bw.write(result.getPlantUMLText());
+		} catch (IOException e) {
+			LOGGER.error("Error on PlantUML persistence", e);
+		}
+
+		// write SVG file
+		File svgFile = new File(genFileLocation + ".svg");
+		try (FileOutputStream fileOutputStream = new FileOutputStream(svgFile);) {
+			reader.outputImage(fileOutputStream, new FileFormatOption(FileFormat.SVG));
+		} catch (IOException e) {
+			LOGGER.error("Error on SVG persistence", e);
+		}
+
+		if (selectedElement != null) {
+			URI uri = selectedElement.eResource().getURI();
+			String platformString = uri.toPlatformString(true);
+			if (platformString != null) {
+				IPath path = new Path(platformString);
+				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+				
+				try {
+					file.getParent().refreshLocal(2, new NullProgressMonitor());
+				} catch (CoreException e) {
+					LOGGER.error("Error on refreshing workspace folder", e);
+				}
+			}
+		}
+		
+		return svgFile.getAbsolutePath();
+	}
+	
+	public static String getGenFolder(String genFolder, Resource resource) {
+		// extract the gen folder from the BuilderResult if no preference value is set
+		if ((genFolder == null || genFolder.length() == 0) && resource != null) {
+			URI uri = resource.getURI();
+			String platformString = uri.toPlatformString(true);
+			if (platformString != null) {
+				IPath path = new Path(platformString);
+				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+				
+				IContainer parentFolder = file.getParent();
+				if (parentFolder != null) {
+					// **** Find visualization folder (create if necessary)
+					
+					IFolder folder = parentFolder.getFolder(new Path(".emf_viewer_diagrams"));
+					
+					if (!folder.exists()) {
+						try {
+							folder.create(IResource.NONE, true, null);
+						} catch (CoreException e) {
+							LOGGER.error("Error on creating folder for generated diagrams.", e);
+						}
+					}
+					
+					genFolder = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString()
+							+ folder.getFullPath().toString();
+				}
+			}
+		}
+
+		return genFolder;
+	}
+
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionCategory.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionCategory.java
similarity index 67%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionCategory.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionCategory.java
index a23d5cf..517012c 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionCategory.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionCategory.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,8 +12,15 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor.utils;
+
+package org.eclipse.app4mc.emf.viewer.plantuml.utils;
 
 public enum ExecutionCategory {
-	dummy, eClassHierarchy, eObjectRefs, eClassAllReferences, eClassContentsAndHierarchy, eClassContents, eClassContentsFromReference
+	dummy,
+	eClassHierarchy,
+	eObjectRefs,
+	eClassAllReferences,
+	eClassContentsAndHierarchy,
+	eClassContents,
+	eClassContentsFromReference
 }
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionUtil.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionUtil.java
similarity index 88%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionUtil.java
rename to eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionUtil.java
index cda8d2e..f6c93e8 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/utils/ExecutionUtil.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/utils/ExecutionUtil.java
@@ -1,6 +1,6 @@
- /**
+/**
  ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,8 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-package org.eclipse.app4mc.emfutils.content.extractor.utils;
+
+package org.eclipse.app4mc.emf.viewer.plantuml.utils;
 
 public class ExecutionUtil {
 
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/views/DiagramView.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/views/DiagramView.java
new file mode 100644
index 0000000..eed789b
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emf.viewer.plantuml/src/org/eclipse/app4mc/emf/viewer/plantuml/views/DiagramView.java
@@ -0,0 +1,278 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2017-2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.emf.viewer.plantuml.views;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.AbstractPlantUMLHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassAllReferencesHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassContentsAndHierarchyHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassContentsFromReferenceHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.EClassHierarchyHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.EObjectRefsHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.handlers.ObjectContentHandler;
+import org.eclipse.app4mc.emf.viewer.plantuml.preferences.PreferenceConstants;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionCategory;
+import org.eclipse.app4mc.emf.viewer.plantuml.utils.ExecutionUtil;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.PersistState;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MDirectToolItem;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBarElement;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.LocationAdapter;
+import org.eclipse.swt.browser.LocationEvent;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+@SuppressWarnings("restriction")
+public class DiagramView {
+	
+	/**
+	 * The ID of the view.
+	 */
+	public static final String ID = "org.eclipse.app4mc.emf.viewer.plantuml.views.DiagramView";
+
+	private static final String LINKED_KEY = "LINKED_WITH_EDITOR";
+	
+	private boolean linkedWithEditor = false;
+
+	private Browser browser;
+
+	final HashMap<String, Object> idObjectsMap = new HashMap<>();
+
+	@Inject
+	Shell shell;
+	
+	@Inject
+	UISynchronize sync;
+
+	@Inject
+	EPartService partService;
+	
+	@Inject
+	IEventBroker broker;
+	
+	@Inject
+	@Optional
+	@Preference(
+			nodePath = "net.sourceforge.plantuml.eclipse", 
+			value = PlantumlConstants.GRAPHVIZ_PATH) 
+	String dotPath;
+	
+	@Inject
+	@Optional
+	@Preference(
+			nodePath = "org.eclipse.app4mc.emf.viewer.plantuml", 
+			value = PreferenceConstants.P_FOLDER_PATH) 
+	String genFolderPath;
+	
+	private Stack<String> history = new Stack<>();
+	
+	/**
+	 * This is a callback that will allow us to create the viewer and initialize it.
+	 */
+	@PostConstruct
+	public void createPartControl(Composite parent, MPart part) {
+		Map<String, String> state = part.getPersistedState();
+	    String value = state.get(LINKED_KEY);
+	    this.linkedWithEditor = value != null ? Boolean.valueOf(value) : false;
+	    
+		this.browser = new Browser(parent, SWT.None);
+		this.browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		this.browser.addKeyListener(new KeyAdapter() {
+			
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.character == '\b' && !history.isEmpty()) {
+					String previous = history.pop();
+					if (previous != null) {
+						
+						// extract ID from URL
+						int lastIndexOf = previous.lastIndexOf("/");
+
+						String id = "";
+						if (lastIndexOf != -1) {
+							id = previous.substring(lastIndexOf + 1, previous.lastIndexOf("."));
+						}
+
+						// get object of the previous view
+						Object eObject = idObjectsMap.get(id);
+						if (eObject != null && isLinkedWithEditor()) {
+							if (eObject instanceof EClass) {
+								updateDiagram((eObject), null);
+							} else if (eObject instanceof EObject) {
+								updateDiagram(((EObject) eObject).eClass(), (EObject) eObject);
+							}
+							selectInEditor(eObject);
+							
+							e.doit = false;
+						}
+					}
+				}
+			}
+		});
+		
+		this.browser.addLocationListener(new LocationAdapter() {
+			
+			@Override
+			public void changing(LocationEvent event) {
+				String location = event.location;
+				if (!location.endsWith(".svg")) {
+					int lastIndexOf = location.lastIndexOf("/");
+
+					String id = "";
+					if (lastIndexOf != -1) {
+						id = location.substring(lastIndexOf + 1, location.length());
+					}
+				
+					Object eObject = idObjectsMap.get(id);
+					if (eObject != null) {
+						if (eObject instanceof EClass) {
+							updateDiagram((eObject), null);
+						} else if (eObject instanceof EObject) {
+							updateDiagram(((EObject) eObject).eClass(), (EObject) eObject);
+						} else if (eObject instanceof EList<?>) {
+							// we pass the eObject which is a EList so the ObjectContentHandler can handle the EList special case
+							updateDiagram(eObject, null);
+						}
+						if (isLinkedWithEditor()) {
+							selectInEditor(eObject);
+						}
+					}
+				
+					event.doit = false;
+				}
+			}
+		});
+	}
+	
+	@Inject
+	@Optional
+	void handleSelection(@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection) {
+		if (isLinkedWithEditor() && selection != null && !selection.isEmpty()) {
+			Object firstElement = selection.getFirstElement();
+			if (firstElement instanceof EObject) {
+				updateDiagram(((EObject)firstElement).eClass(), (EObject)firstElement);
+			}
+		}
+	}
+	
+	private void updateDiagram(Object eClass, EObject eObject) {
+
+		Object selected = eClass;
+		
+		/*
+		 * Regeneration of SVG Buffer for populating content specific to the selection
+		 */
+
+		AbstractPlantUMLHandler handler = null;
+		if (ExecutionUtil.isExecuting(ExecutionCategory.eClassHierarchy)) {
+			handler = new EClassHierarchyHandler();
+		} else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassContentsAndHierarchy)) {
+			handler = new EClassContentsAndHierarchyHandler();
+		} else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassAllReferences)) {
+			handler = new EClassAllReferencesHandler();
+		} else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassContentsFromReference)) {
+			handler = new EClassContentsFromReferenceHandler();
+		} else if (ExecutionUtil.isExecuting(ExecutionCategory.eObjectRefs)) {
+			handler = new EObjectRefsHandler();
+			if (eObject != null) {
+				// if the eObject is not null we use this for the visualization, otherwise maybe a collection was selected
+				selected = eObject;
+			}
+		} else {
+			/*- EClassContents and EObjectRefs behaviour is included in ObjectContentBuilder java class */
+			handler = new ObjectContentHandler();
+			if (eObject != null) {
+				// if the eObject is not null we use this for the visualization, otherwise maybe a collection was selected
+				selected = eObject;
+			}
+		}
+		
+		handler.execute(shell, sync, dotPath, genFolderPath, partService, selected, eObject);
+	}
+	
+	/**
+	 * This method is used to select specified AMALTHEA element in the Sphinx editor
+	 *
+	 * @param element
+	 */
+	private void selectInEditor(Object element) {
+		HashMap<String, Object> data = new HashMap<>();
+		data.put("modelElements", Arrays.asList(element));
+		broker.send("org/eclipse/app4mc/amalthea/editor/SELECT", data);
+	}
+	
+	@Focus
+	public void setFocus(MPart activePart) {
+		for (MToolBarElement element : activePart.getToolbar().getChildren()) {
+			if (element.getElementId().equals("org.eclipse.app4mc.emf.viewer.plantuml.directtoolitem.select")) {
+				MDirectToolItem toolItem = (MDirectToolItem) element;
+				toolItem.setSelected(linkedWithEditor);
+			}
+		}
+	}
+
+	@PersistState
+	public void persistState(MPart part) {
+	    Map<String, String> state = part.getPersistedState();
+	    state.put(LINKED_KEY, Boolean.valueOf(linkedWithEditor).toString());
+	}
+	
+	public boolean isLinkedWithEditor() {
+		return this.linkedWithEditor;
+	}
+	
+	public void setLinkedWithEditor(boolean linked) {
+		this.linkedWithEditor = linked;
+	}
+	
+	public void showDiagram(String fileNamePrefix, Object element, String svgPath, Map<String, Object> id2ObjectsMap) {
+		if (this.browser != null && !this.browser.isDisposed()) {
+			if (element != null) {
+				this.idObjectsMap.put(fileNamePrefix, element);
+			}
+			this.idObjectsMap.putAll(id2ObjectsMap);
+			this.history.add(browser.getUrl());
+			this.browser.setUrl(svgPath);
+		}
+	}
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de36..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/META-INF/MANIFEST.MF
deleted file mode 100644
index 421fcfc..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EMF Content Extractor
-Bundle-SymbolicName: org.eclipse.app4mc.emfutils.content.extractor;singleton:=true
-Bundle-Version: 0.8.3
-Bundle-Activator: org.eclipse.app4mc.emfutils.content.extractor.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.ui.browser,
- org.eclipse.sphinx.emf,
- org.eclipse.sphinx.emf.editors,
- org.eclipse.sphinx.emf.editors.forms,
- com.google.guava,
- org.eclipse.xtext.xbase.lib,
- org.eclipse.xtend.lib,
- org.eclipse.xtend.lib.macro,
- net.sourceforge.plantuml
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7,JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Vendor: Eclipse.org
-
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/build.properties b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/build.properties
deleted file mode 100644
index 57a6026..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# *******************************************************************************
-#  Copyright (c) 2017 - 2018 Robert Bosch GmbH and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#   Contributors:
-#  	 Robert Bosch GmbH - initial API and implementation
-# 
-# *******************************************************************************
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               icons/,\
-               epl-2.0.html,\
-               about.html
-src.includes = about.html,\
-               epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/prop_ps.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/prop_ps.gif
deleted file mode 100644
index d11c996..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/sample.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/super_co.gif b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/super_co.gif
deleted file mode 100644
index 59ac116..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/icons/super_co.gif
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/plugin.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/plugin.xml
deleted file mode 100644
index f6f3fef..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/plugin.xml
+++ /dev/null
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            id="org.eclipse.app4mc.emfutils.content.extractor.category"
-            name="Extract Eclass References Category">
-      </category>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eClassHierarchy.command"
-            name="Extract Eclass Hierarchy">
-      </command>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eObjectReferences.command"
-            name="Extract Eobject References">
-      </command>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eClassAllReferences.command"
-            name="Extract Eclass All References">
-      </command>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsAndHierarchy.command"
-            name="Extract Eclass Hierarchy And Their Contents">
-      </command>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eClassContents.command"
-            name="Extract Eclass UML Contents">
-      </command>
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsFromReference.command"
-            name="From reference -&gt; Extract Eclass UML Contents">
-      </command>
-      
-      <command
-            categoryId="org.eclipse.app4mc.emfutils.content.extractor.category"
-            id="org.eclipse.app4mc.emfutils.content.extractor.copyContents.command"
-            name="Copy Contents and Generate CSV">
-      </command>
-      
-      
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EClassHierarchyHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassHierarchy.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EObjectRefsHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eObjectReferences.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EClassAllReferencesHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassAllReferences.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EClassContentsAndHierarchyHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsAndHierarchy.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EClassContentsHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContents.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.EClassContentsFromReferenceHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsFromReference.command">
-      </handler>
-      <handler
-            class="org.eclipse.app4mc.emfutils.content.extractor.handlers.CopyContentsHandler"
-            commandId="org.eclipse.app4mc.emfutils.content.extractor.copyContents.command">
-      </handler>
-   </extension>
-  
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
-         <menu
-               id="org.eclipse.app4mc.emfutils.content.extractor.menu"
-               label="APP4MC-EMF Utils"
-               mnemonic="M">
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassHierarchy.command"
-                  icon="icons/keygroups_obj.gif"
-                  id="com.test.menus.sampleCommand"
-                  label="EClass Hierarchy"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                      <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate
-                        operator="or">
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EDataType">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                   </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eObjectReferences.command"
-                  icon="icons/sample.gif"
-                  id="com.test.menus.sampleCommand1"
-                  label="Eobject Refs">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                     <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate>
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EClass">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EDataType">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                            </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassAllReferences.command"
-                  icon="icons/tag_blue_add.png"
-                  id="com.test.menus.sampleCommand4"
-                  label="EClass All References"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                           <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate>
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EDataType">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                    </with>
-               </visibleWhen>
-                  </command>
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsAndHierarchy.command"
-                  icon="icons/elements_obj.gif"
-                  id="com.test.menus.sampleCommand"
-                  label="EClass Contents + Hierarchy"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                            <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate>
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EDataType">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                   </with>
-                   
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContents.command"
-                  icon="icons/prop_ps.gif"
-                  id="com.test.menus.sampleCommand"
-                  label="EClass Contents"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                     <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate>
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EDataType">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                   </with>
-                   
-               </visibleWhen>
-            </command>
-            
-            
-             
-            <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.eClassContentsFromReference.command"
-                  icon="icons/drive_go.png"
-                  id="com.test.menus.sampleCommand"
-                  label="EClass Contents from Reference"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                       <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate>
-                     <instanceof
-                           value="org.eclipse.emf.ecore.EStructuralFeature">
-                     </instanceof>
-                  </iterate>
-                  
-                   </with>
-               </visibleWhen>
-            </command>
-            
-             <command
-                  commandId="org.eclipse.app4mc.emfutils.content.extractor.copyContents.command"
-                  icon="icons/keygroups_obj.gif"
-                  id="com.test.menus.sampleCommand.copy"
-                  label="Copy Contents Command"
-                  mnemonic="S">
-               <visibleWhen
-                     checkEnabled="true">
-                     
-                      <with
-                     variable="activeMenuSelection">
-                     
-                  <iterate
-                        operator="or">
-                     <not>
-                        <instanceof
-                              value="org.eclipse.emf.ecore.EDataType">
-                        </instanceof>
-                     </not>
-                     <or>
-                        <not>
-                           <instanceof
-                                 value="org.eclipse.emf.ecore.EStructuralFeature">
-                           </instanceof>
-                        </not>
-                     </or>
-                  </iterate>
-                  
-                   </with>
-               </visibleWhen>
-            </command>
-            
-            
-            
-            
-            <visibleWhen
-                  checkEnabled="true">
-               <with
-                     variable="activeMenuSelection">
-                  <iterate>
-                     <instanceof
-                           value="org.eclipse.emf.ecore.EObject">
-                     </instanceof>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </menu>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.eclipse.app4mc.emfutils.content.extractor.preferences.AmaltheaGraphicalRepresentationPreferencePage"
-            id="org.eclipse.app4mc.emfutils.content.extractor.preferences.AmaltheaPreferencePage"
-            name="AMALTHEA-Graphical-Representation">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.app4mc.emfutils.content.extractor.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.app4mc.emfutils.content.extractor"
-            name="AMALTHEA Graphical Representation">
-      </category>
-      <view
-            category="org.eclipse.app4mc.emfutils.content.extractor"
-            class="org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView"
-            icon="icons/sample.gif"
-            id="org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView"
-            name="Diagram View">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.jdt.ui.JavaPerspective">
-         <view
-               id="org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView"
-               ratio="0.5"
-               relationship="right"
-               relative="org.eclipse.ui.views.ProblemView">
-         </view>
-      </perspectiveExtension>
-   </extension>
-
-</plugin>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/pom.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/pom.xml
deleted file mode 100644
index 54aece7..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/pom.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.content.extractor</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-	<build>
-		<sourceDirectory>src</sourceDirectory>
-		<resources>
-			<resource>
-				<directory>xtend-gen</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-			<resource>
-				<directory>src</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-		</resources>
-		<plugins>
-			<plugin>
-				<artifactId>maven-clean-plugin</artifactId>
-				<version>2.4.1</version>
-				<configuration>
-					<filesets>
-						<fileset>
-							<directory>xtend-gen</directory>
-							<includes>
-								<include>**</include>
-							</includes>
-						</fileset>
-					</filesets>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.7</version>
-				<executions>
-					<execution>
-						<id>add-source</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>add-source</goal>
-						</goals>
-						<configuration>
-							<sources>
-								<source>xtend-gen</source>
-							</sources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-	 	<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<dependencies>
-				 <dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.core</artifactId>
-			<version>3.13.102</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
-			<version>1.3.110</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.tool</artifactId>
-			<version>1.2.101</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.codegen</artifactId>
-			<version>2.11.0</version>
-		</dependency>
-				</dependencies>
-
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassAllReferencesBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassAllReferencesBufferBuilder.java
deleted file mode 100644
index b60a6c5..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassAllReferencesBufferBuilder.java
+++ /dev/null
@@ -1,451 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-public class EClassAllReferencesBufferBuilder {
-
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	public void setId2ObjectsMap(final EMap<String, Object> id2ObjectsMap) {
-		this.id2ObjectsMap = id2ObjectsMap;
-	}
-
-
-	public StringBuffer buildBuffer(final EClass selectedObjClass) {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		addClassInfo(selectedObjClass, plantumlBuffer);
-
-
-		populateHeirarchy(plantumlBuffer, selectedObjClass);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		/*- also display information of sub-classes */
-		populateSubClasses(plantumlBuffer, selectedObjClass);
-
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-
-	private void addClassInfo(final EClass selectedObjClass, final StringBuffer plantumlBuffer) {
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		if (selectedObjClass.isAbstract() && selectedObjClass.isInterface()) {
-			plantumlBuffer.append("interface \"" + selectedObjClass.getName() + "\"");
-
-		}
-		else if (selectedObjClass.isAbstract()) {
-			plantumlBuffer.append("abstract \"" + selectedObjClass.getName() + "\"");
-
-		}
-		else if (selectedObjClass.isInterface()) {
-
-			plantumlBuffer.append("interface \"" + selectedObjClass.getName() + "\"");
-		}
-		else {
-			plantumlBuffer.append("class \"" + selectedObjClass.getName() + "\"");
-
-		}
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-	}
-
-
-	private void populateHeirarchy(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-
-		populateEClassReferences(plantumlBuffer, selectedObjClass);
-
-		for (final EClass superClass : selectedObjClass.getESuperTypes()) {
-
-
-			if (superClass.isAbstract() && superClass.isInterface()) {
-				addContentToBuffer(plantumlBuffer,
-						"interface \"" + superClass.getName() + "\"" + "    [[" + getUUID(superClass) + "]]");
-
-			}
-			else if (superClass.isAbstract()) {
-				addContentToBuffer(plantumlBuffer,
-						"abstract \"" + superClass.getName() + "\"" + "    [[" + getUUID(superClass) + "]]");
-
-			}
-			else if (superClass.isInterface()) {
-
-				addContentToBuffer(plantumlBuffer,
-						"interface \"" + superClass.getName() + "\"" + "    [[" + getUUID(superClass) + "]]");
-			}
-			else {
-				addContentToBuffer(plantumlBuffer,
-						"class \"" + superClass.getName() + "\"" + "    [[" + getUUID(superClass) + "]]");
-
-			}
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			addContentToBuffer(plantumlBuffer,
-					superClass.getName() + " <|-- " + selectedObjClass.getName() + "  #darkblue");
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			populateHeirarchy(plantumlBuffer, superClass);
-
-
-		}
-
-
-	}
-
-	private void addContentToBuffer(final StringBuffer plantumlBuffer, final String data) {
-
-		if (plantumlBuffer.toString().contains(data) == false) {
-			plantumlBuffer.append(data);
-		}
-
-	}
-
-	private void populateSubClasses(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-
-		for (final EClass subClass : getSubClasses(selectedObjClass)) {
-
-
-			if (subClass.isAbstract() && subClass.isInterface()) {
-
-
-				addContentToBuffer(plantumlBuffer,
-						"interface \"" + subClass.getName() + "\"" + "    [[" + getUUID(subClass) + "]]");
-
-			}
-			else if (subClass.isAbstract()) {
-				addContentToBuffer(plantumlBuffer,
-						"abstract \"" + subClass.getName() + "\"" + "    [[" + getUUID(subClass) + "]]");
-
-			}
-			else if (subClass.isInterface()) {
-
-				addContentToBuffer(plantumlBuffer,
-						"interface \"" + subClass.getName() + "\"" + "    [[" + getUUID(subClass) + "]]");
-			}
-			else {
-				addContentToBuffer(plantumlBuffer,
-						"class \"" + subClass.getName() + "\"" + "    [[" + getUUID(subClass) + "]]");
-
-			}
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			addContentToBuffer(plantumlBuffer,
-					selectedObjClass.getName() + " <|-- " + subClass.getName() + "  #darkGreen");
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			populateEClassContainerInfo(plantumlBuffer, subClass);
-
-			populateSubClasses(plantumlBuffer, subClass);
-
-		}
-	}
-
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass) {
-
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final ResourceSet resourceSet = selectedObjClass.eResource().getResourceSet();
-
-		if (resourceSet != null) {
-
-			// With this approach check is made to find the Sub-Classes for the supplied EClass in all the packages
-			// belonging to the resourceset
-
-			final EList<Resource> resources = resourceSet.getResources();
-
-			for (final Resource resource : resources) {
-
-				final EList<EObject> contents = resource.getContents();
-
-				if (contents.size() > 0) {
-//					final EObject eObject = contents.get(0);
-
-					for (EObject eobj : contents) {
-						
-						if (eobj instanceof EPackage) {
-							allSubClasses.addAll(getSubClasses(selectedObjClass, (EPackage) eobj));
-						}
-					}
-				}
-
-			}
-		}
-		else {
-
-			final EPackage ePackage = selectedObjClass.getEPackage();
-			return getSubClasses(selectedObjClass, ePackage);
-		}
-
-		return allSubClasses;
-
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass, final EPackage ePackage) {
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
-
-		for (final EClassifier eClassifier : eClassifiers) {
-
-			if (eClassifier instanceof EClass) {
-
-				if (!(selectedObjClass == eClassifier) && selectedObjClass.isSuperTypeOf((EClass) eClassifier)) {
-					allSubClasses.add((EClass) eClassifier);
-				}
-
-
-			}
-		}
-		return allSubClasses;
-	}
-
-
-	private void populateEClassReferences(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-		final List<EReference> result = new ArrayList<EReference>();
-
-		final Object searchScope = (selectedObjClass.eResource().getResourceSet() == null)
-				? selectedObjClass.eResource() : selectedObjClass.eResource().getResourceSet();
-
-		/*- getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
-
-		Collection<Setting> allRefSettings = null;
-		if (searchScope instanceof Resource) {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (Resource) searchScope);
-		}
-		else if (searchScope instanceof ResourceSet) {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (ResourceSet) searchScope);
-		}
-
-
-		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
-
-		if (allRefSettings.size() > 0) {
-
-			for (final EStructuralFeature.Setting refSetting : allRefSettings) {
-
-				if (refSetting.getEObject() instanceof EReference
-						&& !isElementContained(result, (EReference) refSetting.getEObject())) {
-					result.add((EReference) refSetting.getEObject());
-				}
-			}
-
-			for (final EReference eReference : result) {
-
-				final EClassifier eType = eReference.getEContainingClass();
-
-				addContentToBuffer(plantumlBuffer, "class \"" + eType.getName() + "\""
-						+ (eReference.isContainment() ? "" : "") + "    [[" + getUUID(eType) + "]]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-			}
-
-			for (final EReference eReference : result) {
-
-				final EClassifier referenceClasseType = eReference.getEContainingClass();
-
-
-				final String name = eReference.getName();
-
-				final boolean containment = eReference.isContainment();
-
-				final boolean many = eReference.isMany();
-
-				if (containment) {
-
-					addContentToBuffer(plantumlBuffer, referenceClasseType.getName() + "*-- "
-							+ selectedObjClass.getName() + ":" + (many ? " (0-*) " : "") + name + " >");
-				}
-				else {
-					addContentToBuffer(plantumlBuffer, referenceClasseType.getName() + "--> "
-							+ selectedObjClass.getName() + ":" + (many ? " (0-*) " : "") + name);
-
-				}
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-			}
-		}
-		else {
-
-			/*- no references for this EClass are found */
-			addContentToBuffer(plantumlBuffer,
-					"class \"" + selectedObjClass.getName() + "\"" + "    [[" + getUUID(selectedObjClass) + "]]");
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-		}
-	}
-
-
-	private void populateEClassContainerInfo(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-		final List<EReference> result = new ArrayList<EReference>();
-
-
-		final Object searchScope = (selectedObjClass.eResource().getResourceSet() == null)
-				? selectedObjClass.eResource() : selectedObjClass.eResource().getResourceSet();
-
-		/*- getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
-
-		Collection<Setting> allRefSettings = null;
-		if (searchScope instanceof Resource) {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (Resource) searchScope);
-		}
-		else if (searchScope instanceof ResourceSet) {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedObjClass, (ResourceSet) searchScope);
-		}
-
-
-		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
-
-		if (allRefSettings.size() > 0) {
-
-			for (final EStructuralFeature.Setting refSetting : allRefSettings) {
-
-				if (refSetting.getEObject() instanceof EReference
-						&& !isElementContained(result, (EReference) refSetting.getEObject())) {
-					if (((EReference) refSetting.getEObject()).isContainment()) {
-						result.add((EReference) refSetting.getEObject());
-					}
-				}
-			}
-
-			for (final EReference eReference : result) {
-
-				/*- only containment reference information should be displayed --> other info should be ignored */
-
-				final EClassifier eType = eReference.getEContainingClass();
-
-				addContentToBuffer(plantumlBuffer, "class \"" + eType.getName() + "\""
-						+ (eReference.isContainment() ? "" : "") + "    [[" + getUUID(eType) + "]]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-
-			for (final EReference eReference : result) {
-
-				final EClassifier referenceClasseType = eReference.getEContainingClass();
-
-
-				final String name = eReference.getName();
-
-				final boolean containment = eReference.isContainment();
-
-				final boolean many = eReference.isMany();
-
-				if (containment) {
-
-					addContentToBuffer(plantumlBuffer, referenceClasseType.getName() + "*-- "
-							+ selectedObjClass.getName() + ":" + (many ? " (0-*) " : "") + name + " >");
-				}
-				else {
-					addContentToBuffer(plantumlBuffer, referenceClasseType.getName() + "--> "
-							+ selectedObjClass.getName() + ":" + (many ? " (0-*) " : "") + name);
-
-				}
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-			}
-		}
-		else {
-
-			/*- no references for this EClass are found */
-			addContentToBuffer(plantumlBuffer,
-					"class \"" + selectedObjClass.getName() + "\"" + "    [[" + getUUID(selectedObjClass) + "]]");
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-		}
-	}
-
-
-	private boolean isElementContained(final List<EReference> l, final EReference eRef) {
-		boolean isElementFound = false;
-		final Iterator<EReference> it = l.iterator();
-		while (it.hasNext() && !isElementFound) {
-			final EReference isContained = it.next();
-			if (isContained.equals(eRef)) {
-				isElementFound = true;
-			}
-		}
-		return isElementFound;
-	}
-
-
-	private String getUUID(final EClassifier eClass) {
-
-		if (this.id2ObjectsMap.containsValue(eClass)) {
-
-
-			for (final String key : this.id2ObjectsMap.keySet()) {
-				if (eClass == this.id2ObjectsMap.get(key)) {
-					return key;
-				}
-			}
-		}
-
-		final String uuid = EcoreUtil.generateUUID();
-
-		this.id2ObjectsMap.put(uuid, eClass);
-
-		return uuid;
-
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsAndHierarchyBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsAndHierarchyBufferBuilder.java
deleted file mode 100644
index 1998d31..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsAndHierarchyBufferBuilder.java
+++ /dev/null
@@ -1,440 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-public class EClassContentsAndHierarchyBufferBuilder {
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	private final EList<EClass> addedEClassifiers = new BasicEList<EClass>();
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	public void setId2ObjectsMap(final EMap<String, Object> id2ObjectsMap) {
-		this.id2ObjectsMap = id2ObjectsMap;
-	}
-
-
-	public StringBuffer buildBuffer(final EClass selectedObjClass) {
-
-		this.addedEClassifiers.clear();
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		fillPlantUMLSkinParams(plantumlBuffer);
-
-		if (selectedObjClass.getESuperTypes().size() > 0) {
-
-			populateHeirarchy(plantumlBuffer, selectedObjClass);
-
-		}
-		else {
-
-			/*- no references for this EClass are found */
-			createClass(plantumlBuffer, selectedObjClass, "SelectedElement");
-
-		}
-
-
-		populateSubClassInfo(selectedObjClass, plantumlBuffer);
-
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-
-	private void populateSubClassInfo(final EClass selectedObjClass, final StringBuffer plantumlBuffer) {
-		for (final EClass subClass : getSubClasses(selectedObjClass)) {
-
-
-			createClass(plantumlBuffer, subClass, "H");
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append(selectedObjClass.getName() + " <|-- " + subClass.getName());
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-		}
-	}
-
-
-	private void fillPlantUMLSkinParams(final StringBuffer plantumlBuffer) {
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("skinparam class {");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BackgroundColor PaleGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("ArrowColor SeaGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BorderColor SpringGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BackgroundColor<<H>> Wheat");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BorderColor<<H>> Tomato");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("BackgroundColor<<SelectedElement>> DarkOrange ");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("BorderColor<<SelectedElement>> Tomato");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("}");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		plantumlBuffer.append("skinparam stereotypeCBackgroundColor YellowGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("skinparam stereotypeCBackgroundColor <<H>> DimGray");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-	}
-
-	private void populateHeirarchy(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-
-		createClass(plantumlBuffer, selectedObjClass, "SelectedElement");
-
-
-		for (final EClass superClass : selectedObjClass.getESuperTypes()) {
-
-
-			createClass(plantumlBuffer, superClass, "H");
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append(superClass.getName() + " <|-- " + selectedObjClass.getName());
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			populateHeirarchy(plantumlBuffer, superClass);
-		}
-
-	}
-
-
-	private void createEEnum(final StringBuffer plantumlBuffer, final EEnum eClassifier) {
-
-		plantumlBuffer.append("enum \"" + eClassifier.getName() + "\"");
-		plantumlBuffer.append("{");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		final EList<EEnumLiteral> eTypeParameters = eClassifier.getELiterals();
-
-		for (final EEnumLiteral eTypeParameter : eTypeParameters) {
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-			plantumlBuffer.append(eTypeParameter.getName());
-
-
-		}
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("}");
-
-
-	}
-
-	private void createEDataType(final StringBuffer plantumlBuffer, final EDataType eClassifier) {
-
-	}
-
-
-	private void createClass(final StringBuffer plantumlBuffer, final EClass eClass, final String stereoType) {
-
-		if (!this.addedEClassifiers.contains(eClass)) {
-
-			this.addedEClassifiers.add(eClass);
-
-			/*- =================================== Start of Class Object =================================== */
-
-			final String uuid = EcoreUtil.generateUUID();
-
-
-			if (eClass.isAbstract() && eClass.isInterface()) {
-				plantumlBuffer.append("interface \"" + eClass.getName() + "\"");
-
-			}
-			else if (eClass.isAbstract()) {
-				plantumlBuffer.append("abstract \"" + eClass.getName() + "\"");
-
-			}
-			else if (eClass.isInterface()) {
-
-				plantumlBuffer.append("interface \"" + eClass.getName() + "\"");
-			}
-			else {
-				plantumlBuffer.append("class \"" + eClass.getName() + "\"");
-
-			}
-
-			if (stereoType != null) {
-				plantumlBuffer.append("<<" + stereoType + ">>");
-			}
-
-			plantumlBuffer.append("    [[" + uuid + "]] ");
-
-			this.id2ObjectsMap.put(uuid, eClass);
-
-
-			/*- listing attributes beloning to the specific EMF element */
-
-			final EList<EAttribute> eAttributes = eClass.getEAttributes();
-			final EList<EStructuralFeature> eStructuralFeatures = eClass.getEStructuralFeatures();
-
-			plantumlBuffer.append("{");
-
-			final List<EAttribute> referredEnums = new ArrayList<EAttribute>();
-
-			if (eAttributes.size() > 0) {
-
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				final List<EAttribute> processedAttributes = new ArrayList<EAttribute>();
-
-				for (final EAttribute eAttribute : eAttributes) {
-
-					if (!processedAttributes.contains(eAttribute)) {
-
-						if (eAttribute.getEAttributeType() instanceof EEnum) {
-							referredEnums.add(eAttribute);
-						}
-
-						processedAttributes.add(eAttribute);
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-
-						final String lowerBound = eAttribute.getLowerBound() == -1 ? "*"
-								: eAttribute.getLowerBound() + "";
-
-						final String upperBound = eAttribute.getUpperBound() == -1 ? "*"
-								: eAttribute.getUpperBound() + "";
-
-						plantumlBuffer.append(eAttribute.getEType().getName() + " " + eAttribute.getName() + " ["
-								+ lowerBound + ":" + upperBound + "]");
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-					}
-
-
-				}
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-			}
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-			/*- listing EStructuralFeatures beloning to the specific EMF element */
-
-			final List<EStructuralFeature> processedFeatures = new ArrayList<EStructuralFeature>();
-
-			final List<EStructuralFeature> referredEStrcuturalFeatures = new ArrayList<EStructuralFeature>();
-
-			for (final EStructuralFeature eStructuralFeature : eStructuralFeatures) {
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				if (!processedFeatures.contains(eStructuralFeature) && (eStructuralFeature instanceof EReference)) {
-
-					processedFeatures.add(eStructuralFeature);
-
-					referredEStrcuturalFeatures.add(eStructuralFeature);
-
-					final String lowerBound = eStructuralFeature.getLowerBound() == -1 ? "*"
-							: eStructuralFeature.getLowerBound() + "";
-
-					final String upperBound = eStructuralFeature.getUpperBound() == -1 ? "*"
-							: eStructuralFeature.getUpperBound() + "";
-
-					plantumlBuffer.append(eStructuralFeature.getEType().getName() + " " + eStructuralFeature.getName()
-							+ " [" + lowerBound + ":" + upperBound + "]");
-
-					plantumlBuffer.append(System.getProperty("line.separator"));
-
-				}
-			}
-
-			plantumlBuffer.append("}");
-
-			/*- =================================== End of Class Object =================================== */
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			for (final EStructuralFeature eStructuralFeature : referredEStrcuturalFeatures) {
-
-				createEClassifier(plantumlBuffer, eStructuralFeature.getEType());
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
-
-
-				final String lowerBound = eStructuralFeature.getLowerBound() == -1 ? "*"
-						: eStructuralFeature.getLowerBound() + "";
-
-				final String upperBound = eStructuralFeature.getUpperBound() == -1 ? "*"
-						: eStructuralFeature.getUpperBound() + "";
-
-
-				plantumlBuffer.append(eClass.getName() + relation + eStructuralFeature.getEType().getName() + " : "
-						+ eStructuralFeature.getName() + " [" + lowerBound + ":" + upperBound + "]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			for (final EAttribute eAttribute : referredEnums) {
-
-				createEClassifier(plantumlBuffer, eAttribute.getEType());
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-				final String lowerBound = eAttribute.getLowerBound() == -1 ? "*" : eAttribute.getLowerBound() + "";
-
-				final String upperBound = eAttribute.getUpperBound() == -1 ? "*" : eAttribute.getUpperBound() + "";
-
-
-				plantumlBuffer.append(eClass.getName() + " *-- " + eAttribute.getEType().getName() + " : "
-						+ eAttribute.getName() + " [" + lowerBound + ":" + upperBound + "]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		}
-
-	}
-
-
-	private void createEClassifier(final StringBuffer plantumlBuffer, final EClassifier eClassifier) {
-
-		if (eClassifier instanceof EClass) {
-			createClass(plantumlBuffer, (EClass) eClassifier, null);
-		}
-		else if (eClassifier instanceof EEnum) {
-			createEEnum(plantumlBuffer, (EEnum) eClassifier);
-		}
-		else if (eClassifier instanceof EDataType) {
-			createEDataType(plantumlBuffer, (EDataType) eClassifier);
-		}
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass) {
-
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final ResourceSet resourceSet = selectedObjClass.eResource().getResourceSet();
-
-		if (resourceSet != null) {
-
-			// With this approach check is made to find the Sub-Classes for the supplied EClass in all the packages
-			// belonging to the resourceset
-
-			final EList<Resource> resources = resourceSet.getResources();
-
-			for (final Resource resource : resources) {
-
-				final EList<EObject> contents = resource.getContents();
-
-				if (contents.size() > 0) {
-//					final EObject eObject = contents.get(0);
-
-					for (EObject eobj : contents) {
-						
-						if (eobj instanceof EPackage) {
-							allSubClasses.addAll(getSubClasses(selectedObjClass, (EPackage) eobj));
-						}
-					}
-				}
-
-			}
-		}
-		else {
-
-			final EPackage ePackage = selectedObjClass.getEPackage();
-			return getSubClasses(selectedObjClass, ePackage);
-		}
-
-		return allSubClasses;
-
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass, final EPackage ePackage) {
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
-
-		for (final EClassifier eClassifier : eClassifiers) {
-
-			if (eClassifier instanceof EClass) {
-
-				if (!(selectedObjClass == eClassifier) && selectedObjClass.isSuperTypeOf((EClass) eClassifier)) {
-					allSubClasses.add((EClass) eClassifier);
-				}
-
-
-			}
-		}
-		return allSubClasses;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsFromReferenceBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsFromReferenceBufferBuilder.java
deleted file mode 100644
index 2f205f9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassContentsFromReferenceBufferBuilder.java
+++ /dev/null
@@ -1,424 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-public class EClassContentsFromReferenceBufferBuilder {
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	private final EList<EClass> addedEClassifiers = new BasicEList<EClass>();
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	public void setId2ObjectsMap(final EMap<String, Object> id2ObjectsMap) {
-		this.id2ObjectsMap = id2ObjectsMap;
-	}
-
-
-	public StringBuffer buildBuffer(final EClass selectedObjClass) {
-
-		this.addedEClassifiers.clear();
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		fillPlantUMLSkinParams(plantumlBuffer);
-
-		if (selectedObjClass.getESuperTypes().size() > 0) {
-
-			populateHeirarchy(plantumlBuffer, selectedObjClass);
-
-		}
-		else {
-
-			/*- no references for this EClass are found */
-			createClass(plantumlBuffer, selectedObjClass, "SelectedElement", 1);
-
-		}
-
-		populateSubClassInfo(selectedObjClass, plantumlBuffer);
-
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-	private void populateSubClassInfo(final EClass selectedObjClass, final StringBuffer plantumlBuffer) {
-		for (final EClass subClass : getSubClasses(selectedObjClass)) {
-
-
-			createClass(plantumlBuffer, subClass, "SelectedElement", 1);
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append(selectedObjClass.getName() + " <|-- " + subClass.getName());
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-		}
-	}
-
-
-	private void fillPlantUMLSkinParams(final StringBuffer plantumlBuffer) {
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("skinparam class {");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BackgroundColor PaleGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("ArrowColor SeaGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BorderColor SpringGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BackgroundColor<<H>> Wheat");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("BorderColor<<H>> Tomato");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("BackgroundColor<<SelectedElement>> DarkOrange ");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("BorderColor<<SelectedElement>> Tomato");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("}");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		plantumlBuffer.append("skinparam stereotypeCBackgroundColor YellowGreen");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("skinparam stereotypeCBackgroundColor <<H>> DimGray");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-	}
-
-	private void populateHeirarchy(final StringBuffer plantumlBuffer, final EClass selectedObjClass) {
-
-		createClass(plantumlBuffer, selectedObjClass, "H", 1);
-
-	}
-
-
-	private void createEEnum(final StringBuffer plantumlBuffer, final EEnum eClassifier, final int level) {
-
-		plantumlBuffer.append("enum \"" + eClassifier.getName() + "\"");
-		plantumlBuffer.append("{");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		final EList<EEnumLiteral> eTypeParameters = eClassifier.getELiterals();
-
-		for (final EEnumLiteral eTypeParameter : eTypeParameters) {
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-			plantumlBuffer.append(eTypeParameter.getName());
-
-
-		}
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("}");
-
-
-	}
-
-	private void createEDataType(final StringBuffer plantumlBuffer, final EDataType eClassifier, final int level) {
-
-	}
-
-
-	private void createClass(final StringBuffer plantumlBuffer, final EClass eClass, final String stereoType,
-			final int level) {
-
-		if (!this.addedEClassifiers.contains(eClass)) {
-
-			this.addedEClassifiers.add(eClass);
-
-			/*- =================================== Start of Class Object =================================== */
-
-			final String uuid = EcoreUtil.generateUUID();
-
-
-			if (eClass.isAbstract() && eClass.isInterface()) {
-				plantumlBuffer.append("interface \"" + eClass.getName() + "\"");
-
-			}
-			else if (eClass.isAbstract()) {
-				plantumlBuffer.append("abstract \"" + eClass.getName() + "\"");
-
-			}
-			else if (eClass.isInterface()) {
-
-				plantumlBuffer.append("interface \"" + eClass.getName() + "\"");
-			}
-			else {
-				plantumlBuffer.append("class \"" + eClass.getName() + "\"");
-
-			}
-
-			if (stereoType != null) {
-				plantumlBuffer.append("<<" + stereoType + ">>");
-			}
-
-			plantumlBuffer.append("    [[" + uuid + "]] ");
-
-			this.id2ObjectsMap.put(uuid, eClass);
-
-
-			/*- listing attributes beloning to the specific EMF element */
-
-			final EList<EAttribute> eAttributes = eClass.getEAllAttributes();
-			final EList<EStructuralFeature> eStructuralFeatures = eClass.getEAllStructuralFeatures();
-
-			plantumlBuffer.append("{");
-
-			final List<EAttribute> referredEnums = new ArrayList<EAttribute>();
-
-			if (eAttributes.size() > 0) {
-
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				final List<EAttribute> processedAttributes = new ArrayList<EAttribute>();
-
-				for (final EAttribute eAttribute : eAttributes) {
-
-					if (!processedAttributes.contains(eAttribute)) {
-
-						if (eAttribute.getEAttributeType() instanceof EEnum) {
-							referredEnums.add(eAttribute);
-						}
-
-						processedAttributes.add(eAttribute);
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-
-						final String lowerBound = eAttribute.getLowerBound() == -1 ? "*"
-								: eAttribute.getLowerBound() + "";
-
-						final String upperBound = eAttribute.getUpperBound() == -1 ? "*"
-								: eAttribute.getUpperBound() + "";
-
-						plantumlBuffer.append(eAttribute.getEType().getName() + " " + eAttribute.getName() + " ["
-								+ lowerBound + ":" + upperBound + "]");
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-					}
-
-
-				}
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-			}
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-			/*- listing EStructuralFeatures beloning to the specific EMF element */
-
-			final List<EStructuralFeature> processedFeatures = new ArrayList<EStructuralFeature>();
-
-			final List<EStructuralFeature> referredEStrcuturalFeatures = new ArrayList<EStructuralFeature>();
-
-			for (final EStructuralFeature eStructuralFeature : eStructuralFeatures) {
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				if (!processedFeatures.contains(eStructuralFeature) && (eStructuralFeature instanceof EReference)) {
-
-					processedFeatures.add(eStructuralFeature);
-
-					referredEStrcuturalFeatures.add(eStructuralFeature);
-
-					final String lowerBound = eStructuralFeature.getLowerBound() == -1 ? "*"
-							: eStructuralFeature.getLowerBound() + "";
-
-					final String upperBound = eStructuralFeature.getUpperBound() == -1 ? "*"
-							: eStructuralFeature.getUpperBound() + "";
-
-					plantumlBuffer.append(eStructuralFeature.getEType().getName() + " " + eStructuralFeature.getName()
-							+ " [" + lowerBound + ":" + upperBound + "]");
-
-					plantumlBuffer.append(System.getProperty("line.separator"));
-
-				}
-			}
-
-			plantumlBuffer.append("}");
-
-			/*- =================================== End of Class Object =================================== */
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			for (final EStructuralFeature eStructuralFeature : referredEStrcuturalFeatures) {
-
-				createEClassifier(plantumlBuffer, eStructuralFeature.getEType(), level + 1);
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-				final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
-
-
-				final String lowerBound = eStructuralFeature.getLowerBound() == -1 ? "*"
-						: eStructuralFeature.getLowerBound() + "";
-
-				final String upperBound = eStructuralFeature.getUpperBound() == -1 ? "*"
-						: eStructuralFeature.getUpperBound() + "";
-
-
-				plantumlBuffer.append(eClass.getName() + relation + eStructuralFeature.getEType().getName() + " : "
-						+ eStructuralFeature.getName() + " [" + lowerBound + ":" + upperBound + "]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			for (final EAttribute eAttribute : referredEnums) {
-
-				createEClassifier(plantumlBuffer, eAttribute.getEType(), level + 1);
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-				final String lowerBound = eAttribute.getLowerBound() == -1 ? "*" : eAttribute.getLowerBound() + "";
-
-				final String upperBound = eAttribute.getUpperBound() == -1 ? "*" : eAttribute.getUpperBound() + "";
-
-
-				plantumlBuffer.append(eClass.getName() + " *-- " + eAttribute.getEType().getName() + " : "
-						+ eAttribute.getName() + " [" + lowerBound + ":" + upperBound + "]");
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		}
-
-	}
-
-
-	private void createEClassifier(final StringBuffer plantumlBuffer, final EClassifier eClassifier, final int level) {
-
-		if (level > 2) {
-			return;
-		}
-		if (eClassifier instanceof EClass) {
-			createClass(plantumlBuffer, (EClass) eClassifier, null, level);
-		}
-		else if (eClassifier instanceof EEnum) {
-			createEEnum(plantumlBuffer, (EEnum) eClassifier, level);
-		}
-		else if (eClassifier instanceof EDataType) {
-			createEDataType(plantumlBuffer, (EDataType) eClassifier, level);
-		}
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass) {
-
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final ResourceSet resourceSet = selectedObjClass.eResource().getResourceSet();
-
-		if (resourceSet != null) {
-
-			// With this approach check is made to find the Sub-Classes for the supplied EClass in all the packages
-			// belonging to the resourceset
-
-			final EList<Resource> resources = resourceSet.getResources();
-
-			for (final Resource resource : resources) {
-
-				final EList<EObject> contents = resource.getContents();
-
-				if (contents.size() > 0) {
-					final EObject eObject = contents.get(0);
-
-					if (eObject instanceof EPackage) {
-						allSubClasses.addAll(getSubClasses(selectedObjClass, (EPackage) eObject));
-					}
-				}
-
-			}
-		}
-		else {
-
-			final EPackage ePackage = selectedObjClass.getEPackage();
-			return getSubClasses(selectedObjClass, ePackage);
-		}
-
-		return allSubClasses;
-
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass, final EPackage ePackage) {
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
-
-		for (final EClassifier eClassifier : eClassifiers) {
-
-			if (eClassifier instanceof EClass) {
-
-				if (!(selectedObjClass == eClassifier) && selectedObjClass.isSuperTypeOf((EClass) eClassifier)) {
-					allSubClasses.add((EClass) eClassifier);
-				}
-
-
-			}
-		}
-		return allSubClasses;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder.java
deleted file mode 100644
index e3c905c..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder.java
+++ /dev/null
@@ -1,239 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-public class EClassHierarchyBufferBuilder {
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	public void setId2ObjectsMap(final EMap<String, Object> id2ObjectsMap) {
-		this.id2ObjectsMap = id2ObjectsMap;
-	}
-
-
-	public StringBuffer buildBuffer(final EClass selectedObjClass) {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-
-		addClassInfo(selectedObjClass, plantumlBuffer);
-
-		final EList<EClass> eSuperTypes = selectedObjClass.getESuperTypes();
-		final List<EClass> subClasses = getSubClasses(selectedObjClass);
-
-		if (eSuperTypes.size() > 0) {
-
-			populateHeirarchy(plantumlBuffer, selectedObjClass, this.id2ObjectsMap);
-
-		}
-
-		if (subClasses.size() > 0) {
-
-			/*- populating sub-classes */
-			populateSubClasses(plantumlBuffer, subClasses, selectedObjClass, this.id2ObjectsMap);
-		}
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-	private void addClassInfo(final EClass selectedObjClass, final StringBuffer plantumlBuffer) {
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		if (selectedObjClass.isAbstract() && selectedObjClass.isInterface()) {
-			plantumlBuffer.append("interface \"" + selectedObjClass.getName() + "\"");
-
-		}
-		else if (selectedObjClass.isAbstract()) {
-			plantumlBuffer.append("abstract \"" + selectedObjClass.getName() + "\"");
-
-		}
-		else if (selectedObjClass.isInterface()) {
-
-			plantumlBuffer.append("interface \"" + selectedObjClass.getName() + "\"");
-		}
-		else {
-			plantumlBuffer.append("class \"" + selectedObjClass.getName() + "\"");
-
-		}
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-	}
-
-
-	private void populateSubClasses(final StringBuffer plantumlBuffer, final List<EClass> subClasses,
-			final EClass selectedObjClass, final EMap<String, Object> id2ObjectsMap) {
-
-		for (final EClass subClass : subClasses) {
-
-			final String uuid = EcoreUtil.generateUUID();
-
-
-			if (subClass.isAbstract() && subClass.isInterface()) {
-				plantumlBuffer.append("interface \"" + subClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-			else if (subClass.isAbstract()) {
-				plantumlBuffer.append("abstract \"" + subClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-			else if (subClass.isInterface()) {
-
-				plantumlBuffer.append("interface \"" + subClass.getName() + "\"" + "    [[" + uuid + "]]");
-			}
-			else {
-				plantumlBuffer.append("class \"" + subClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-
-			id2ObjectsMap.put(uuid, subClass);
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append(selectedObjClass.getName() + " <|-- " + subClass.getName());
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		}
-
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass) {
-
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final ResourceSet resourceSet = selectedObjClass.eResource().getResourceSet();
-
-		if (resourceSet != null) {
-
-			// With this approach check is made to find the Sub-Classes for the supplied EClass in all the packages
-			// belonging to the resourceset
-
-			final EList<Resource> resources = resourceSet.getResources();
-
-			for (final Resource resource : resources) {
-
-				final EList<EObject> contents = resource.getContents();
-
-				if (contents.size() > 0) {
-//					final EObject eObject = contents.get(0);
-					
-					for (EObject eobj : contents) {
-						
-						if (eobj instanceof EPackage) {
-							allSubClasses.addAll(getSubClasses(selectedObjClass, (EPackage) eobj));
-						}
-					}
-
-				}
-
-			}
-		}
-		else {
-
-			final EPackage ePackage = selectedObjClass.getEPackage();
-			return getSubClasses(selectedObjClass, ePackage);
-		}
-
-		return allSubClasses;
-
-	}
-
-	private List<EClass> getSubClasses(final EClass selectedObjClass, final EPackage ePackage) {
-		final List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		final EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
-
-		for (final EClassifier eClassifier : eClassifiers) {
-
-			if (eClassifier instanceof EClass) {
-
-				if (!(selectedObjClass == eClassifier) && selectedObjClass.isSuperTypeOf((EClass) eClassifier)) {
-					allSubClasses.add((EClass) eClassifier);
-				}
-
-
-			}
-		}
-		return allSubClasses;
-	}
-
-
-	private void populateHeirarchy(final StringBuffer plantumlBuffer, final EClass selectedObjClass,
-			final EMap<String, Object> id2ObjectsMap) {
-		for (final EClass superClass : selectedObjClass.getESuperTypes()) {
-
-			final String uuid = EcoreUtil.generateUUID();
-
-			if (superClass.isAbstract() && superClass.isInterface()) {
-				plantumlBuffer.append("interface \"" + superClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-			else if (superClass.isAbstract()) {
-				plantumlBuffer.append("abstract \"" + superClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-			else if (superClass.isInterface()) {
-
-				plantumlBuffer.append("interface \"" + superClass.getName() + "\"" + "    [[" + uuid + "]]");
-			}
-			else {
-				plantumlBuffer.append("class \"" + superClass.getName() + "\"" + "    [[" + uuid + "]]");
-
-			}
-
-			id2ObjectsMap.put(uuid, superClass);
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append(superClass.getName() + " <|-- " + selectedObjClass.getName());
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			populateHeirarchy(plantumlBuffer, superClass, id2ObjectsMap);
-		}
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder2.xtend b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder2.xtend
deleted file mode 100644
index 5983fd5..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EClassHierarchyBufferBuilder2.xtend
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.emfutils.content.extractor.builders
-
-import java.util.ArrayList
-import java.util.List
-import org.eclipse.emf.common.util.BasicEMap
-import org.eclipse.emf.common.util.EList
-import org.eclipse.emf.common.util.EMap
-import org.eclipse.emf.ecore.EClass
-import org.eclipse.emf.ecore.EClassifier
-import org.eclipse.emf.ecore.EObject
-import org.eclipse.emf.ecore.EPackage
-import org.eclipse.emf.ecore.resource.Resource
-import org.eclipse.emf.ecore.resource.ResourceSet
-import org.eclipse.emf.ecore.util.EcoreUtil
-
-class EClassHierarchyBufferBuilder2 {
-
-	var EMap<String, Object> id2ObjectsMap = new BasicEMap
-
-	def public setId2ObjectsMap(EMap<String, Object> id2ObjectsMap) {
-		this.id2ObjectsMap = id2ObjectsMap
-	}
-
-	def buildBuffer(EClass selectedObjClass) '''
-		
-		«id2ObjectsMap = new BasicEMap»
-		
-		@startuml
-		
-		««« Generation of EClass basic information »»
-		
-		«addClassInfo(selectedObjClass)»
-		
-		««« Generation of Hierarchy for Super types »»
-
-		«IF selectedObjClass.ESuperTypes.size > 0»
-			
-			«FOR superClass: selectedObjClass.ESuperTypes»
-				
-					««« UUID - which will be used for elements lookup »»
-					«var String uuid=EcoreUtil.generateUUID»
-							
-							«IF superClass.abstract && superClass.interface»
-								interface «superClass.name» "[[«uuid»]]"
-							«ELSEIF superClass.abstract»
-								abstract «superClass.name» "[[«uuid»]]"
-							«ELSEIF superClass.interface»
-								interface «superClass.name» "[[«uuid»]]"
-							«ELSE»
-								class  «superClass.name» "[[«uuid»]]"
-								
-							«ENDIF»
-							
-				
-				«id2ObjectsMap.put(uuid, superClass)»
-				
-				«superClass.name» <|--«selectedObjClass.name»
-				
-				
-				
-			«ENDFOR»
-			
-			
-		«ENDIF»
-		
-		«var List<EClass> subClasses=getSubClasses(selectedObjClass)»
-		
-				«IF subClasses.size>0»
-					
-				«ENDIF»
-		
-		@enduml
-		
-		
-		
-	'''
-
-	/**
-	 * This method is used to add EClass specific information
-	 */
-	protected def CharSequence addClassInfo(EClass selectedObjClass) '''«IF selectedObjClass.abstract && selectedObjClass.interface»
-		
-			interface «selectedObjClass.name»
-		«ELSEIF selectedObjClass.abstract»
-			abstract «selectedObjClass.name»
-		«ELSEIF selectedObjClass.interface»
-			interface «selectedObjClass.name»
-		«ELSE»
-			class «selectedObjClass.name»
-		«ENDIF»'''
-
-	/**
-	 * This method is used to get the List of sub-classes of a specific EClass
-	 */
-	def private List<EClass> getSubClasses(EClass eClass) {
-
-		var List<EClass> allSubClasses = new ArrayList
-
-		var ResourceSet resourceSet = eClass.eResource().getResourceSet();
-
-		if (resourceSet != null) {
-
-			// With this approach check is made to find the Sub-Classes for the supplied EClass in all the packages
-			// belonging to the resourceset
-			var EList<Resource> resources = resourceSet.getResources();
-
-			for (Resource resource : resources) {
-
-				var EList<EObject> contents = resource.getContents();
-
-				if (contents.size() > 0) {
-//					var EObject eObject = contents.get(0);
-					for (element : contents) {
-						if (element instanceof EPackage) {
-							allSubClasses.addAll(getSubClasses(eClass, element));
-						}
-
-					}
-				}
-
-			}
-		} else {
-
-			var EPackage ePackage = eClass.getEPackage();
-			return getSubClasses(eClass, ePackage);
-		}
-
-		return allSubClasses;
-
-	}
-
-	/**
-	 * This method is used to get the List of sub-classes of a specific EClass in the scope of EPackage
-	 */
-	def List<EClass> getSubClasses(EClass selectedObjClass, EPackage ePackage) {
-
-		var List<EClass> allSubClasses = new ArrayList<EClass>();
-
-		var EList<EClassifier> eClassifiers = ePackage.getEClassifiers();
-
-		for (EClassifier eClassifier : eClassifiers) {
-
-			if (eClassifier instanceof EClass) {
-
-				if (!(selectedObjClass == eClassifier) && selectedObjClass.isSuperTypeOf(eClassifier)) {
-					allSubClasses.add(eClassifier);
-				}
-
-			}
-		}
-		return allSubClasses;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EObjectRefsBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EObjectRefsBufferBuilder.java
deleted file mode 100644
index 1b3a2d9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/EObjectRefsBufferBuilder.java
+++ /dev/null
@@ -1,250 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-
-public class EObjectRefsBufferBuilder {
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	public StringBuffer buildBuffer(final EObject eObject) {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		buildBuffer(eObject, plantumlBuffer);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	private void buildBuffer(final EObject selectedEObj, final StringBuffer plantumlBuffer) {
-
-		final List<EObject> result = new ArrayList<EObject>();
-
-		/*- getting all the elements from the selected objects EClass --> by supplying the EResource of the corresponding EClass (i.e. ecore or Xcore) */
-
-		Collection<Setting> allRefSettings = null;
-
-		final Resource eResource = selectedEObj.eResource();
-
-		if (eResource == null) {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedEObj,
-					EcoreUtil.getRootContainer(selectedEObj));
-		}
-		else {
-			allRefSettings = EcoreUtil.UsageCrossReferencer.find(selectedEObj, eResource.getResourceSet());
-		}
-
-		/*-
-		 * In case of many elements it is difficult to visualize the contents in the diagram.
-		 *
-		 * Below code provides the possibility to specify the range
-		 */
-		if (allRefSettings.size() > 100) {
-
-
-			final InputDialog inputDialog = new InputDialog(
-					org.eclipse.swt.widgets.Display.getDefault().getActiveShell(), "Element selection dialog",
-					"There are " + allRefSettings.size()
-							+ " references. specify the range for which contents should be represented graphically",
-					"0-" + (allRefSettings.size() - 1), new IInputValidator() {
-
-						@Override
-						public String isValid(final String newText) {
-							if (Pattern.matches("(\\d)+\\-(\\d)+", newText) == false) {
-								return "Specify the range in the following way int-int eg. 10-20 ";
-							}
-							return null;
-						}
-					});
-
-			final int status = inputDialog.open();
-
-			if (status == 0) {
-				final String value = inputDialog.getValue();
-
-				final String[] split = value.split("-");
-
-				allRefSettings = new ArrayList<Setting>(allRefSettings).subList(Integer.parseInt(split[0]),
-						Integer.parseInt(split[1]) < allRefSettings.size() ? Integer.parseInt(split[1])
-								: (allRefSettings.size() - 1));
-
-			}
-			else {
-				allRefSettings = new ArrayList<Setting>(allRefSettings).subList(0, 99);
-			}
-
-
-		}
-
-
-		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
-
-		if (allRefSettings.size() > 0) {
-
-			for (final EStructuralFeature.Setting setting : allRefSettings) {
-
-				if (!isElementContained(result, setting.getEObject())) {
-					result.add(setting.getEObject());
-
-				}
-
-			}
-
-			createClass(plantumlBuffer, this.id2ObjectsMap, selectedEObj);
-
-			for (final EObject eobj : result) {
-
-				createClass(plantumlBuffer, this.id2ObjectsMap, eobj);
-
-				if (!isNamePresent(eobj)) {
-
-					/*- As name is not present, generate the heirarchy till the level Object with Structural Feature name is present */
-
-					associateContainer(eobj, plantumlBuffer, this.id2ObjectsMap);
-
-
-					plantumlBuffer.append(System.getProperty("line.separator"));
-				}
-			}
-
-			for (final EObject eobj : result) {
-
-				final String name = getName(eobj).toString();
-
-				plantumlBuffer.append(name + "--> " + getName(selectedEObj));
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-			}
-		}
-		else {
-
-			/*- no references for this EClass are found */
-
-			createClass(plantumlBuffer, this.id2ObjectsMap, selectedEObj);
-
-		}
-
-
-	}
-
-	private void createClass(final StringBuffer plantumlBuffer, final EMap<String, Object> id2ObjectsMap,
-			final EObject selectedEObj) {
-		final String uuid = EcoreUtil.generateUUID();
-
-		plantumlBuffer.append("class " + getName(selectedEObj) + " << (O,#B4A7E5) " + selectedEObj.eClass().getName()
-				+ " >>" + "    [[" + uuid + "]]");
-
-		id2ObjectsMap.put(uuid, selectedEObj);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-	}
-
-
-	private Object getName(final EObject eObject) {
-		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
-
-		if (eStructuralFeature != null) {
-
-			final Object originalName = eObject.eGet(eStructuralFeature);
-			
-			if(originalName == null || originalName.toString().length()==0) {
-				return eObject.eClass().getName() + "__" + eObject.hashCode();
-			}
-
-			return "\"" + originalName + "\"";
-		}
-
-		return eObject.eClass().getName() + "__" + eObject.hashCode();
-	}
-
-
-	private void associateContainer(final EObject eobj, final StringBuffer plantumlBuffer,
-			final EMap<String, Object> id2ObjectsMap) {
-
-		final EObject eContainerObj = eobj.eContainer();
-
-		if (eContainerObj == null) {
-			return;
-		}
-
-		createClass(plantumlBuffer, id2ObjectsMap, eContainerObj);
-
-
-		plantumlBuffer.append(getName(eContainerObj) + " *-- " + getName(eobj));
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		if (!isNamePresent(eContainerObj)) {
-
-			associateContainer(eContainerObj, plantumlBuffer, id2ObjectsMap);
-
-		}
-
-	}
-
-	private boolean isNamePresent(final EObject eObject) {
-		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
-
-		if (eStructuralFeature == null) {
-
-			return false;
-		}
-
-		return true;
-	}
-
-	private boolean isElementContained(final List<EObject> l, final EObject eRef) {
-		boolean isElementFound = false;
-		final Iterator<EObject> it = l.iterator();
-		while (it.hasNext() && !isElementFound) {
-			final EObject isContained = it.next();
-			if (isContained.equals(eRef)) {
-				isElementFound = true;
-			}
-		}
-		return isElementFound;
-	}
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/ObjectContentBufferBuilder.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/ObjectContentBufferBuilder.java
deleted file mode 100644
index d411573..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/builders/ObjectContentBufferBuilder.java
+++ /dev/null
@@ -1,290 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.builders;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-
-
-public class ObjectContentBufferBuilder {
-
-	/* EClassContents and EObjectRefs behaviour is included in ObjectContentBufferBuilder java class */
-
-	private EMap<String, Object> id2ObjectsMap;
-
-	public StringBuffer buildBuffer(final EObject eObject) {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-		buildBuffer(eObject, plantumlBuffer);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-
-	public StringBuffer buildBufferForCollection(final EList<?> eList) {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		plantumlBuffer.append("@startuml");
-		plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-		createClass(plantumlBuffer, this.id2ObjectsMap, eList, null);
-
-		for (final Object object : getElementsBasedOnRange(eList)) {
-			if (object instanceof EObject) {
-
-				createClass(plantumlBuffer, this.id2ObjectsMap, (EObject) object);
-
-				final String name = getName((EObject) object).toString();
-
-				plantumlBuffer.append("Collection --> " + name);
-
-				plantumlBuffer.append(System.getProperty("line.separator"));
-
-			}
-		}
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-		plantumlBuffer.append("@enduml");
-
-		return plantumlBuffer;
-
-	}
-
-
-	public EMap<String, Object> getId2ObjectsMap() {
-		return this.id2ObjectsMap;
-	}
-
-
-	private void buildBuffer(final EObject selectedEObj, final StringBuffer plantumlBuffer) {
-
-
-		final EList<EStructuralFeature> eStructuralFeatures = selectedEObj.eClass().getEAllStructuralFeatures();
-
-
-		/*- if refs of the EClass are found, then fill the plantUMLBuffer with the appropriate contents */
-
-		if (eStructuralFeatures.size() > 0) {
-
-			createClass(plantumlBuffer, this.id2ObjectsMap, selectedEObj);
-
-			final List<EStructuralFeature> processedFeatures = new ArrayList<EStructuralFeature>();
-
-
-			for (final EStructuralFeature eStructuralFeature : eStructuralFeatures) {
-
-				final boolean eIsSet = selectedEObj.eIsSet(eStructuralFeature);
-
-				if (eIsSet && !processedFeatures.contains(eStructuralFeature)
-						&& (eStructuralFeature instanceof EReference)) {
-
-					processedFeatures.add(eStructuralFeature);
-
-					final Object eobj = selectedEObj.eGet(eStructuralFeature);
-
-
-					if (eobj instanceof EObject) {
-						createClass(plantumlBuffer, this.id2ObjectsMap, (EObject) eobj);
-
-						final String name = getName((EObject) eobj).toString();
-
-						final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
-
-						plantumlBuffer.append(getName(selectedEObj) + relation + name);
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-					}
-					else if (eobj instanceof EList) {
-
-						createClass(plantumlBuffer, this.id2ObjectsMap, (EList<?>) eobj, eStructuralFeature);
-
-						final String relation = ((EReference) eStructuralFeature).isContainment() ? " *-- " : "--> ";
-
-						plantumlBuffer.append(getName(selectedEObj) + relation + eStructuralFeature.getName());
-
-						plantumlBuffer.append(System.getProperty("line.separator"));
-
-
-					}
-
-				}
-			}
-
-
-		}
-		else {
-
-			/*- no references for this EClass are found */
-
-			createClass(plantumlBuffer, this.id2ObjectsMap, selectedEObj);
-
-		}
-
-
-	}
-
-
-	private void createClass(final StringBuffer plantumlBuffer, final EMap<String, Object> id2ObjectsMap,
-			final EList<?> eList, final EStructuralFeature eStructuralFeature) {
-
-		final String uuid = EcoreUtil.generateUUID();
-
-		if (eStructuralFeature != null) {
-			plantumlBuffer.append("class \"" + eStructuralFeature.getName() + "\"" + " << (*,#FF7700) EList<"
-					+ eStructuralFeature.getEType().getName() + "> >>" + "    [[" + uuid + "]]");
-
-		}
-		else {
-			plantumlBuffer.append("class \"" + "Collection" + "\"" + " << (*,#FF7700) Collection<" + "EList" + "> >>"
-					+ "    [[" + uuid + "]]");
-		}
-
-		id2ObjectsMap.put(uuid, eList);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-	}
-
-
-	private void createClass(final StringBuffer plantumlBuffer, final EMap<String, Object> id2ObjectsMap,
-			final EObject selectedEObj) {
-		final String uuid = EcoreUtil.generateUUID();
-
-		plantumlBuffer.append("class " + getName(selectedEObj) + " <<  (O,#B4A7E5) " + selectedEObj.eClass().getName()
-				+ " >>" + "    [[" + uuid + "]]");
-
-		final EList<EAttribute> eAllAttributes = selectedEObj.eClass().getEAllAttributes();
-
-		if (eAllAttributes.size() > 0) {
-
-			plantumlBuffer.append("{");
-
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			final List<EAttribute> processedFeatures = new ArrayList<EAttribute>();
-
-			for (final EAttribute eAttribute : eAllAttributes) {
-
-				if (selectedEObj.eIsSet(eAttribute) && !processedFeatures.contains(eAttribute)) {
-
-					processedFeatures.add(eAttribute);
-
-					plantumlBuffer.append(System.getProperty("line.separator"));
-
-					plantumlBuffer.append(eAttribute.getEType().getName() + " " + eAttribute.getName() + " = "
-							+ selectedEObj.eGet(eAttribute));
-
-					plantumlBuffer.append(System.getProperty("line.separator"));
-				}
-
-
-			}
-			plantumlBuffer.append(System.getProperty("line.separator"));
-
-			plantumlBuffer.append("}");
-		}
-
-		id2ObjectsMap.put(uuid, selectedEObj);
-
-		plantumlBuffer.append(System.getProperty("line.separator"));
-	}
-
-
-	private Object getName(final EObject eObject) {
-		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
-
-		if (eStructuralFeature != null) {
-
-			final Object originalName = eObject.eGet(eStructuralFeature);
-
-			return "\"" + originalName + "\"";
-		}
-
-		return eObject.eClass().getName() + "__" + eObject.hashCode();
-	}
-
-	private List<?> getElementsBasedOnRange(final EList<?> eList) {
-
-
-		if (eList.size() > 100) {
-
-			List<?> subList = new ArrayList();
-
-			final InputDialog inputDialog = new InputDialog(
-					org.eclipse.swt.widgets.Display.getDefault().getActiveShell(), "Element selection dialog",
-					"There are " + eList.size()
-							+ " references. specify the range for which contents should be represented graphically",
-					"0-" + (eList.size() - 1), new IInputValidator() {
-
-						@Override
-						public String isValid(final String newText) {
-							if (Pattern.matches("(\\d)+\\-(\\d)+", newText) == false) {
-								return "Specify the range in the following way int-int eg. 10-20 ";
-							}
-							return null;
-						}
-					});
-
-			final int status = inputDialog.open();
-
-			if (status == 0) {
-				final String value = inputDialog.getValue();
-
-				final String[] split = value.split("-");
-
-				subList = new ArrayList(eList).subList(Integer.parseInt(split[0]),
-						Integer.parseInt(split[1]) < eList.size() ? Integer.parseInt(split[1]) : (eList.size() - 1));
-
-			}
-			else {
-				subList = new ArrayList(eList).subList(0, 99);
-			}
-
-			return subList;
-
-		}
-		return eList;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/AbstractHandlerUtils.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/AbstractHandlerUtils.java
deleted file mode 100644
index 0ae4661..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/AbstractHandlerUtils.java
+++ /dev/null
@@ -1,430 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.Activator;
-import org.eclipse.app4mc.emfutils.content.extractor.preferences.PreferenceConstants;
-import org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-import net.sourceforge.plantuml.FileFormat;
-import net.sourceforge.plantuml.FileFormatOption;
-import net.sourceforge.plantuml.SourceStringReader;
-
-public abstract class AbstractHandlerUtils extends AbstractHandler {
-
-	protected void openEReferencesView(final EClass activeEClass) {
-
-		if (activeEClass != null) {
-			try {
-
-				if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						.findView("org.eclipse.emf.ecoretools.internal.views.EReferencesView") == null) {
-
-					return;
-				}
-				final IViewPart view = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						.showView("org.eclipse.emf.ecoretools.internal.views.EReferencesView");
-
-				if (view != null) {
-					final Class<?> eClassReferencesViewClass = Class
-							.forName("org.eclipse.emf.ecoretools.internal.views.EReferencesView");
-
-					if (eClassReferencesViewClass != null) {
-						final Method setAnalyzedObjectMethod = eClassReferencesViewClass.getMethod("setAnalyzedObject",
-								EObject.class);
-
-						if (setAnalyzedObjectMethod != null) {
-							setAnalyzedObjectMethod.setAccessible(true);
-							setAnalyzedObjectMethod.invoke(view, activeEClass);
-
-						}
-					}
-				}
-
-			}
-			catch (final PartInitException exception) {
-				exception.printStackTrace();
-			}
-			catch (final ClassNotFoundException e) {
-				e.printStackTrace();
-			}
-			catch (final NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-			catch (final SecurityException e) {
-				e.printStackTrace();
-			}
-			catch (final IllegalAccessException e) {
-				e.printStackTrace();
-			}
-			catch (final IllegalArgumentException e) {
-				e.printStackTrace();
-			}
-			catch (final InvocationTargetException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	protected void openHierarchyView(final EClass activeEClass) {
-
-		if (activeEClass != null) {
-			try {
-
-				if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						.findView("org.eclipse.emf.ecoretools.internal.views.EClassHierarchyView") == null) {
-					return;
-				}
-
-				final IViewPart view = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						.showView("org.eclipse.emf.ecoretools.internal.views.EClassHierarchyView");
-
-				if (view != null) {
-					final Class<?> eClassHierarchyViewClass = Class
-							.forName("org.eclipse.emf.ecoretools.internal.views.EClassHierarchyView");
-
-					if (eClassHierarchyViewClass != null) {
-						final Method setAnalyzedObjectMethod = eClassHierarchyViewClass.getMethod("setAnalyzedObject",
-								EObject.class);
-
-						if (setAnalyzedObjectMethod != null) {
-							setAnalyzedObjectMethod.setAccessible(true);
-							setAnalyzedObjectMethod.invoke(view, activeEClass);
-						}
-					}
-				}
-			}
-			catch (final PartInitException exception) {
-				exception.printStackTrace();
-			}
-			catch (final ClassNotFoundException e) {
-				e.printStackTrace();
-			}
-			catch (final NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-			catch (final SecurityException e) {
-				e.printStackTrace();
-			}
-			catch (final IllegalAccessException e) {
-				e.printStackTrace();
-			}
-			catch (final IllegalArgumentException e) {
-				e.printStackTrace();
-			}
-			catch (final InvocationTargetException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-
-	protected void openErrorDialog() {
-		Display.getDefault().asyncExec(new Runnable() {
-
-			@Override
-			public void run() {
-
-				final Shell shell = new Shell(Display.getDefault());
-
-				MessageDialog.openError(shell, "EMF content extractor dialog", "Selected object is not a EMF object");
-
-			}
-		});
-	}
-
-	protected static void openErrorDialog(final String msg) {
-		Display.getDefault().asyncExec(new Runnable() {
-
-			@Override
-			public void run() {
-
-				final Shell shell = new Shell(Display.getDefault());
-
-				MessageDialog.openError(shell, "EMF content extractor dialog", msg);
-
-			}
-		});
-	}
-
-
-	/**
-	 * This method returns the value for a supplied key from the Preference Store
-	 *
-	 * @param key
-	 * @return
-	 */
-	protected static String getValueFromPreferenceStore(final String key) {
-
-		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-
-		return store.getString(key);
-	}
-
-	public static void generateSVGAndDisplayDiagram(final StringBuffer plantumlBuffer, final String fileNamePrefix,
-			final EMap<String, Object> id2ObjectsMap, final Map<String, String> properties) throws IOException {
-
-		final String dot_exe_location = getValueFromPreferenceStore(PreferenceConstants.P_DOT_PATH);
-
-		if (dot_exe_location == null) {
-
-			openErrorDialog("DOT file exe path is not set in the Preferences");
-
-			return;
-		}
-		else if (!new File(dot_exe_location).exists()) {
-			openErrorDialog(
-					"DOT file exe is not existing in the specified path. Update the valid path in Preferences -> AMALTHEA-Grpahical-Representation node");
-
-			return;
-		}
-
-		System.setProperty("GRAPHVIZ_DOT", dot_exe_location);
-
-		final SourceStringReader reader = new SourceStringReader(plantumlBuffer.toString());
-
-		final String genFileLocation = getValueFromPreferenceStore(PreferenceConstants.P_FOLDER_PATH)
-				+ "\\amalthea_element_" + fileNamePrefix;
-
-		try (final FileOutputStream fileOutputStream = new FileOutputStream(
-
-				new File(genFileLocation + ".svg"));) {
-
-			reader.generateImage(fileOutputStream, new FileFormatOption(FileFormat.SVG));
-
-			fileOutputStream.close();
-		}
-
-
-		Display.getDefault().asyncExec(new Runnable() {
-
-			@Override
-			public void run() {
-
-				try (final FileOutputStream fileOutputStream = new FileOutputStream(
-
-						new File(genFileLocation + ".plantuml"));
-
-						final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fileOutputStream));) {
-
-					bw.write(plantumlBuffer.toString());
-
-				}
-				catch (final FileNotFoundException e) {
-					e.printStackTrace();
-				}
-				catch (final IOException e) {
-					e.printStackTrace();
-				}
-			}
-
-
-		});
-
-
-		Display.getDefault().asyncExec(new Runnable() {
-
-			@Override
-			public void run() {
-				final IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-
-				final String diagramViewID = "org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView";
-
-				IViewPart diagramView = activePage.findView(diagramViewID);
-
-				final IViewReference findViewReference = activePage.findViewReference(diagramViewID);
-
-
-				if (diagramView == null) {
-					try {
-						diagramView = activePage.showView(diagramViewID);
-
-						// updateBooleanProps(properties, diagramView);
-
-
-						((DiagramView) diagramView).getIdObjectsMap().putAll(id2ObjectsMap);
-						((DiagramView) diagramView).getBrowser()
-								.setUrl(("file:\\" + getValueFromPreferenceStore(PreferenceConstants.P_FOLDER_PATH)
-										+ "\\amalthea_element_" + fileNamePrefix + ".svg"));
-					}
-					catch (final PartInitException e) {
-						e.printStackTrace();
-					}
-
-				}
-				else {
-
-					// updateBooleanProps(properties, diagramView);
-
-					((DiagramView) diagramView).getIdObjectsMap().putAll(id2ObjectsMap);
-
-					((DiagramView) diagramView).getBrowser()
-							.setUrl(("file:/" + getValueFromPreferenceStore(PreferenceConstants.P_FOLDER_PATH)
-									+ "\\amalthea_element_" + fileNamePrefix + ".svg"));
-				}
-			}
-
-			/*-private void updateBooleanProps(final Map<String, String> properties, final IViewPart diagramView) {
-				if (properties.get(ExecutionCategory.isClassHierarchyGeneration.toString()) != null
-						&& properties.get(ExecutionCategory.isClassHierarchyGeneration.toString()).equals("true")) {
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy(true);
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy_And_corresponding_Relation_Contents(false);
-			
-					((DiagramView) diagramView).setDisplayingClassReference_Hierarchy_subclass_info_generation(false);
-					((DiagramView) diagramView).setClassContents_UML_Generation(false);
-				}
-				else if (properties.get(ExecutionCategory.isClassHierarchy_Contents_Generation.toString()) != null
-						&& properties.get(ExecutionCategory.isClassHierarchy_Contents_Generation.toString())
-								.equals("true")) {
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy(false);
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy_And_corresponding_Relation_Contents(true);
-			
-					((DiagramView) diagramView).setDisplayingClassReference_Hierarchy_subclass_info_generation(false);
-					((DiagramView) diagramView).setClassContents_UML_Generation(false);
-				}
-				else if (properties
-						.get(ExecutionCategory.isClassReference_Hierarchy_subclass_info_generation.toString()) != null
-						&& properties
-								.get(ExecutionCategory.isClassReference_Hierarchy_subclass_info_generation.toString())
-								.equals("true")) {
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy(false);
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy_And_corresponding_Relation_Contents(false);
-			
-					((DiagramView) diagramView).setDisplayingClassReference_Hierarchy_subclass_info_generation(true);
-					((DiagramView) diagramView).setClassContents_UML_Generation(false);
-				}
-				else if (properties.get(ExecutionCategory.isClassContents_UML_Generation.toString()) != null
-						&& properties.get(ExecutionCategory.isClassContents_UML_Generation.toString()).equals("true")) {
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy(false);
-			
-					((DiagramView) diagramView).setDisplayingClassHierarchy_And_corresponding_Relation_Contents(false);
-			
-					((DiagramView) diagramView).setDisplayingClassReference_Hierarchy_subclass_info_generation(false);
-					((DiagramView) diagramView).setClassContents_UML_Generation(true);
-			
-				}
-				else {
-					((DiagramView) diagramView).setDisplayingClassHierarchy(false);
-					((DiagramView) diagramView).setClassContents_UML_Generation(false);
-					((DiagramView) diagramView).setDisplayingClassHierarchy_And_corresponding_Relation_Contents(false);
-					((DiagramView) diagramView).setDisplayingClassReference_Hierarchy_subclass_info_generation(false);
-				}
-			}*/
-		});
-
-
-	}
-
-
-	public static String generateSVGFile(final StringBuffer plantumlBuffer, final String fileNamePrefix,
-			final EMap<String, Object> id2ObjectsMap) throws IOException {
-
-
-		final String dot_exe_location = Activator.getDefault().getPreferenceStore()
-				.getString(PreferenceConstants.P_DOT_PATH);
-
-		if (dot_exe_location == null) {
-
-			openErrorDialog("DOT file exe path is not set in the Preferences");
-			return null;
-		}
-		else if (!new File(dot_exe_location).exists()) {
-			openErrorDialog(
-					"DOT file exe is not existing in the specified path. Update the valid path in Preferences -> AMALTHEA-Grpahical-Representation node");
-
-			return null;
-		}
-
-		System.setProperty("GRAPHVIZ_DOT", dot_exe_location);
-
-		final SourceStringReader reader = new SourceStringReader(plantumlBuffer.toString());
-
-
-		final String genFileLocation = Activator.getDefault().getPreferenceStore()
-				.getString(PreferenceConstants.P_FOLDER_PATH) + "\\amalthea_element_" + fileNamePrefix;
-
-
-		try (final FileOutputStream svgFileOutputStream = new FileOutputStream(new File(genFileLocation + ".svg"));
-
-		) {
-
-			reader.generateImage(svgFileOutputStream, new FileFormatOption(FileFormat.SVG));
-
-		}
-
-
-		Display.getDefault().asyncExec(new Runnable() {
-
-			@Override
-			public void run() {
-
-				try (final FileOutputStream fileOutputStream = new FileOutputStream(
-
-						new File(genFileLocation + ".plantuml"));
-
-						final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fileOutputStream));) {
-
-					bw.write(plantumlBuffer.toString());
-
-				}
-				catch (final FileNotFoundException e) {
-					e.printStackTrace();
-				}
-				catch (final IOException e) {
-					e.printStackTrace();
-				}
-			}
-
-
-		});
-
-
-		return ("file:/" + Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_FOLDER_PATH)
-				+ "\\amalthea_element_" + fileNamePrefix + ".svg");
-
-
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/CopyContentsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/CopyContentsHandler.java
deleted file mode 100644
index 0bfefcd..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/CopyContentsHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.StringSelection;
-import java.util.Iterator;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.ENamedElement;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class CopyContentsHandler extends AbstractHandlerUtils{
-
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-		
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		StringBuffer sb=new StringBuffer();
-		
-		if(selection instanceof IStructuredSelection) {
-			Iterator iterator = ((IStructuredSelection) selection).iterator();
-			
-			while(iterator.hasNext()) {
-				Object next = iterator.next();
-				System.out.println(next);
-			
-				if(next instanceof ENamedElement) {
-					String name = ((ENamedElement) next).getName();
-					sb.append(name);
-					sb.append(System.getProperty("line.separator"));
-				}
-			}
-			StringSelection selection1 = new StringSelection(sb.toString());
-			Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
-			clipboard.setContents(selection1, selection1);
-		}
-		
-		return null;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassAllReferencesHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassAllReferencesHandler.java
deleted file mode 100644
index ae3448b..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassAllReferencesHandler.java
+++ /dev/null
@@ -1,126 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassAllReferencesBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EClassAllReferencesHandler extends AbstractHandlerUtils {
-
-	private final EMap<String, Object> id2ObjectsMap;
-
-	/**
-	 * The constructor.
-	 */
-	public EClassAllReferencesHandler() {
-
-		this.id2ObjectsMap = new BasicEMap<String, Object>();
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-		final EClassAllReferencesBufferBuilder builder = new EClassAllReferencesBufferBuilder();
-
-
-		final String eClassName = "";
-
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-					EClass eClass = null;
-
-					if (element instanceof EClass) {
-						eClass = (EClass) element;
-					}
-					else {
-						eClass = ((EObject) element).eClass();
-					}
-
-					plantumlBuffer = builder.buildBuffer(eClass);
-
-					this.id2ObjectsMap.addAll(builder.getId2ObjectsMap());
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			// propsMap.put(ExecutionCategory.isClassReference_Hierarchy_subclass_info_generation.toString(), "true");
-
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eClassAllReferences);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "_SuperTypes_References", this.id2ObjectsMap,
-					propsMap);
-		}
-		catch (final IOException e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsAndHierarchyHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsAndHierarchyHandler.java
deleted file mode 100644
index 514d9ca..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsAndHierarchyHandler.java
+++ /dev/null
@@ -1,138 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassContentsAndHierarchyBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EClassContentsAndHierarchyHandler extends AbstractHandlerUtils {
-	/**
-	 * The constructor.
-	 */
-	public EClassContentsAndHierarchyHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-
-		final EMap<String, Object> id2ObjectsMap = new BasicEMap<String, Object>();
-
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		String eClassName = "";
-
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-
-					EClass selectedObjClass = null;
-
-					if (element instanceof EClass) {
-						selectedObjClass = (EClass) element;
-					}
-					else {
-						selectedObjClass = ((EObject) element).eClass();
-					}
-
-
-					// final EClass selectedObjClass = ((EObject) element).eClass();
-
-					/* ====================Opening Heirarchy View ===================== */
-
-					openHierarchyView(selectedObjClass);
-
-
-					eClassName = selectedObjClass.getName();
-
-
-					final EClassContentsAndHierarchyBufferBuilder builder = new EClassContentsAndHierarchyBufferBuilder();
-
-					plantumlBuffer = builder.buildBuffer(selectedObjClass);
-
-					id2ObjectsMap.addAll(builder.getId2ObjectsMap());
-
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			// propsMap.put(ExecutionCategory.isClassHierarchy_Contents_Generation.toString(), "true");
-
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eClassContentsAndHierarchy);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "__contents_deep_Heirarchy", id2ObjectsMap,
-					propsMap);
-		}
-		catch (final IOException e) {
-			// TODO Zmeer Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsFromReferenceHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsFromReferenceHandler.java
deleted file mode 100644
index 831b768..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsFromReferenceHandler.java
+++ /dev/null
@@ -1,158 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassContentsFromReferenceBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EClassContentsFromReferenceHandler extends AbstractHandlerUtils {
-	/**
-	 * The constructor.
-	 */
-	public EClassContentsFromReferenceHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-
-		final EMap<String, Object> id2ObjectsMap = new BasicEMap<String, Object>();
-
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		String eClassName = "";
-
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			if (strucSelection == null) {
-				return null;
-			}
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-
-					EClass selectedObjClass = null;
-
-					if (element instanceof EStructuralFeature && element instanceof EReference) {
-
-						final EClassifier eType = ((EReference) element).getEType();
-
-						if (eType instanceof EClass) {
-
-							selectedObjClass = (EClass) eType;
-						}
-						else {
-							selectedObjClass = ((EObject) element).eClass();
-						}
-
-					}
-					else if (element instanceof EClass) {
-						selectedObjClass = ((EClass) element);
-					}
-					else {
-						selectedObjClass = ((EObject) element).eClass();
-					}
-
-
-					// final EClass selectedObjClass = ((EObject) element).eClass();
-
-					/* ====================Opening Heirarchy View ===================== */
-
-					openHierarchyView(selectedObjClass);
-
-
-					eClassName = selectedObjClass.getName();
-
-
-					final EClassContentsFromReferenceBufferBuilder builder = new EClassContentsFromReferenceBufferBuilder();
-
-					plantumlBuffer = builder.buildBuffer(selectedObjClass);
-
-					id2ObjectsMap.addAll(builder.getId2ObjectsMap());
-
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			// propsMap.put(ExecutionCategory.isClassContents_UML_Generation.toString(), "true");
-
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eClassContentsFromReference);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "__reference_type_Heirarchy", id2ObjectsMap,
-					propsMap);
-		}
-		catch (final IOException e) {
-			// TODO Zmeer Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsHandler.java
deleted file mode 100644
index 30a26b3..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassContentsHandler.java
+++ /dev/null
@@ -1,136 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassContentsFromReferenceBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EClassContentsHandler extends AbstractHandlerUtils {
-	/**
-	 * The constructor.
-	 */
-	public EClassContentsHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-
-		final EMap<String, Object> id2ObjectsMap = new BasicEMap<String, Object>();
-
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		String eClassName = "";
-
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-
-					EClass selectedObjClass = null;
-
-					if (element instanceof EClass) {
-						selectedObjClass = (EClass) element;
-					}
-					else {
-						selectedObjClass = ((EObject) element).eClass();
-					}
-
-
-					// final EClass selectedObjClass = ((EObject) element).eClass();
-
-					/* ====================Opening Heirarchy View ===================== */
-
-					openHierarchyView(selectedObjClass);
-
-
-					eClassName = selectedObjClass.getName();
-
-
-					final EClassContentsFromReferenceBufferBuilder builder = new EClassContentsFromReferenceBufferBuilder();
-
-					plantumlBuffer = builder.buildBuffer(selectedObjClass);
-
-					id2ObjectsMap.addAll(builder.getId2ObjectsMap());
-
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			// propsMap.put(ExecutionCategory.isClassContents_UML_Generation.toString(), "true");
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eClassContents);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "__precise_Heirarchy", id2ObjectsMap, propsMap);
-		}
-		catch (final IOException e) {
-			// TODO Zmeer Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassHierarchyHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassHierarchyHandler.java
deleted file mode 100644
index 784f860..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EClassHierarchyHandler.java
+++ /dev/null
@@ -1,134 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassHierarchyBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EClassHierarchyHandler extends AbstractHandlerUtils {
-
-	/**
-	 * The constructor.
-	 */
-	public EClassHierarchyHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-
-		final EMap<String, Object> id2ObjectsMap = new BasicEMap<String, Object>();
-
-		final EClassHierarchyBufferBuilder builder = new EClassHierarchyBufferBuilder();
-
-
-		String eClassName = "";
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-					EClass selectedObjClass = null;
-
-					if (element instanceof EClass) {
-						selectedObjClass = (EClass) element;
-					}
-					else {
-						selectedObjClass = ((EObject) element).eClass();
-					}
-
-
-					// final EClass selectedObjClass = ((EObject) element).eClass();
-
-					/* ====================Opening Heirarchy View ===================== */
-
-					openHierarchyView(selectedObjClass);
-
-
-					eClassName = selectedObjClass.getName();
-
-
-					plantumlBuffer = builder.buildBuffer(selectedObjClass);
-
-					id2ObjectsMap.addAll(builder.getId2ObjectsMap());
-
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eClassHierarchy);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "__eclass_Heirarchy", id2ObjectsMap, propsMap);
-		}
-		catch (final IOException e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EObjectRefsHandler.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EObjectRefsHandler.java
deleted file mode 100644
index 8f97a38..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/handlers/EObjectRefsHandler.java
+++ /dev/null
@@ -1,146 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.handlers;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EObjectRefsBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-
-public class EObjectRefsHandler extends AbstractHandlerUtils {
-	/**
-	 * The constructor.
-	 */
-	public EObjectRefsHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information from the application context.
-	 */
-	@Override
-	public Object execute(final ExecutionEvent event) throws ExecutionException {
-
-		final EObjectRefsBufferBuilder bufferBuilder = new EObjectRefsBufferBuilder();
-
-
-		StringBuffer plantumlBuffer = new StringBuffer();
-
-		String eClassName = "";
-
-		String elementName = "";
-
-		ISelection selection = null;
-
-		selection = HandlerUtil.getActiveMenuSelection(event);
-
-		if (selection == null) {
-
-			selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
-
-		}
-
-		if (selection != null & selection instanceof IStructuredSelection) {
-
-			final IStructuredSelection strucSelection = (IStructuredSelection) selection;
-
-			for (final Iterator<Object> iterator = strucSelection.iterator(); iterator.hasNext();) {
-
-				final Object element = iterator.next();
-
-				if (element instanceof EObject) {
-
-					EClass selectedObjClass = null;
-
-					if (element instanceof EClass) {
-						selectedObjClass = (EClass) element;
-					}
-					else {
-						selectedObjClass = ((EObject) element).eClass();
-					}
-
-					// final EClass selectedObjClass = ((EObject) element).eClass();
-
-					eClassName = selectedObjClass.getName();
-
-					elementName = (String) getName((EObject) element);
-
-
-					plantumlBuffer = bufferBuilder.buildBuffer((EObject) element);
-
-
-					/* ====================Opening References View ===================== */
-
-					openEReferencesView(selectedObjClass);
-
-					/* ====================Opening Hierarchy View ===================== */
-					openHierarchyView(selectedObjClass);
-				}
-				else {
-					openErrorDialog();
-					return null;
-				}
-			}
-		}
-		else {
-			openErrorDialog();
-			return null;
-		}
-
-		System.out.println(plantumlBuffer.toString());
-
-		try {
-
-			final Map<String, String> propsMap = new HashMap<String, String>();
-
-			ExecutionUtil.setExecutionCategory(ExecutionCategory.eObjectRefs);
-
-			generateSVGAndDisplayDiagram(plantumlBuffer, eClassName + "_" + elementName + "_References",
-					bufferBuilder.getId2ObjectsMap(), propsMap);
-		}
-		catch (final IOException e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-	private Object getName(final EObject eObject) {
-		final EStructuralFeature eStructuralFeature = eObject.eClass().getEStructuralFeature("name");
-
-		if (eStructuralFeature != null) {
-
-			final Object originalName = eObject.eGet(eStructuralFeature);
-
-			return originalName;
-		}
-
-		return eObject.eClass().getName() + "__" + eObject.hashCode();
-	}
-
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceInitializer.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceInitializer.java
deleted file mode 100644
index d9e5047..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,48 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.preferences;
-
-import org.eclipse.app4mc.emfutils.content.extractor.Activator;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	@Override
-	public void initializeDefaultPreferences() {
-		
-		
-		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-		store.setDefault(PreferenceConstants.P_DOT_PATH, store.getString(PreferenceConstants.P_DOT_PATH) != null
-				? store.getString(PreferenceConstants.P_DOT_PATH) : "");
-		store.setDefault(PreferenceConstants.P_FOLDER_PATH, store.getString(PreferenceConstants.P_FOLDER_PATH) != null
-				? store.getString(PreferenceConstants.P_FOLDER_PATH) : "");
-
-		store.setDefault(PreferenceConstants.P_DRILL_DOWN, store.getBoolean(PreferenceConstants.P_DRILL_DOWN));
-
-		store.setDefault(PreferenceConstants.P_REDRAW_TREE_ON_SELECTION,
-				store.contains(PreferenceConstants.P_REDRAW_TREE_ON_SELECTION)
-						? store.getBoolean(PreferenceConstants.P_REDRAW_TREE_ON_SELECTION) : false);
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/views/DiagramView.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/views/DiagramView.java
deleted file mode 100644
index 0ae2235..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/src/org/eclipse/app4mc/emfutils/content/extractor/views/DiagramView.java
+++ /dev/null
@@ -1,547 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.content.extractor.views;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.Stack;
-
-import org.eclipse.app4mc.emfutils.content.extractor.Activator;
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassAllReferencesBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassContentsAndHierarchyBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassContentsFromReferenceBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.builders.EClassHierarchyBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.builders.ObjectContentBufferBuilder;
-import org.eclipse.app4mc.emfutils.content.extractor.handlers.AbstractHandlerUtils;
-import org.eclipse.app4mc.emfutils.content.extractor.preferences.PreferenceConstants;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionCategory;
-import org.eclipse.app4mc.emfutils.content.extractor.utils.ExecutionUtil;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.common.ui.URIEditorInput;
-import org.eclipse.emf.common.util.BasicEMap;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.sphinx.emf.editors.forms.BasicTransactionalFormEditor;
-import org.eclipse.sphinx.emf.ui.util.EcoreUIUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.ViewPart;
-
-
-public class DiagramView extends ViewPart {
-
-	/**
-	 * The ID of the view as specified by the extension.
-	 */
-	public static final String ID = "org.eclipse.app4mc.emfutils.content.extractor.views.DiagramView";
-
-	/** counter for the generated files (which are associated to the collections ) **/
-	private int i = 0;
-
-	private Browser browser;
-
-
-	final EMap<String, Object> idObjectsMap;
-
-
-	/**
-	 * The constructor.
-	 */
-	public DiagramView() {
-
-		this.idObjectsMap = new BasicEMap<String, Object>();
-	}
-
-	@Override
-	public void init(final IViewSite site) throws PartInitException {
-		super.init(site);
-		addActions();
-	}
-
-	
- 
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize it.
-	 */
-	@Override
-	public void createPartControl(final Composite parent) {
-		this.browser = new Browser(parent, SWT.None);
-
-		this.browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		CustomBrowserListener listener = new CustomBrowserListener();
-		this.browser.addKeyListener(listener ); 
-		
-		this.browser.addLocationListener(listener);
-		
-		 
-
-	}
-	
-	class CustomBrowserListener implements LocationListener, KeyListener  {
-
-		String lastSource = "";
-
-		public Stack<String> urls=new Stack<>();;
-		
-		boolean isBackButtonPressed=false;
-		
-		@Override
-		public void changing(final LocationEvent event) {
-			
-			if(isBackButtonPressed) {
-				isBackButtonPressed=false;
-				return;
-			}
-
-			final String location = event.location;
-//TODO: found this
-			if (!location.endsWith(".svg")) {
-				final int lastIndexOf = location.lastIndexOf("/");
-
-				String id = "";
-				if (lastIndexOf != -1) {
-					id = location.substring(lastIndexOf + 1, location.length());
-				}
-				final Object source = event.getSource();
-
-				if (source instanceof Browser) {
-
-					try {
-//						((Browser) source).setUrl(this.lastSource);
-					}
-					catch (final Exception e) {
-						// skipping exception logging, as here goal is to still retain the same image
-					}
-				}
-
-				final Object eObject = DiagramView.this.idObjectsMap.get(id);
-
-				if (eObject != null) {
-
-					if (eObject instanceof EObject) {
-						if (Activator.getDefault().getPreferenceStore()
-								.getBoolean(PreferenceConstants.P_DRILL_DOWN)) {
-
-							/*- ======================================== Regeneration of SVG Buffer for populating content specific to the selection =====================*/
-
-							StringBuffer buildBuffer = new StringBuffer();
-
-
-							if (ExecutionUtil.isExecuting(ExecutionCategory.eClassHierarchy)
-									&& (eObject instanceof EClass)) {
-
-								final EClassHierarchyBufferBuilder bufferBuilder = new EClassHierarchyBufferBuilder();
-
-								buildBuffer = bufferBuilder.buildBuffer((EClass) eObject);
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-							}
-							else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassContentsAndHierarchy)
-									&& (eObject instanceof EClass)) {
-
-								final EClassContentsAndHierarchyBufferBuilder bufferBuilder = new EClassContentsAndHierarchyBufferBuilder();
-
-								buildBuffer = bufferBuilder.buildBuffer((EClass) eObject);
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-							}
-							else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassAllReferences)
-									&& (eObject instanceof EClass)) {
-
-
-								final EClassAllReferencesBufferBuilder bufferBuilder = new EClassAllReferencesBufferBuilder();
-
-								buildBuffer = bufferBuilder.buildBuffer((EClass) eObject);
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-
-
-							}
-							else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassContentsFromReference)
-									&& (eObject instanceof EClass)) {
-
-
-								final EClassContentsFromReferenceBufferBuilder bufferBuilder = new EClassContentsFromReferenceBufferBuilder();
-
-								buildBuffer = bufferBuilder.buildBuffer((EClass) eObject);
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-
-
-							}
-
-							else {
-
-								/*- EClassContents and EObjectRefs behaviour is included in ObjectContentBufferBuilder java class */
-								final ObjectContentBufferBuilder bufferBuilder = new ObjectContentBufferBuilder();
-
-								buildBuffer = bufferBuilder.buildBuffer((EObject) eObject);
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-							}
-
-
-							System.out.println(buildBuffer);
-
-							try {
-
-
-								final String svgFile = AbstractHandlerUtils.generateSVGFile(buildBuffer,
-										((EObject) eObject).eClass().getName() + DiagramView.this.i++,
-										new BasicEMap<String, Object>());
-								((Browser) source).setUrl(svgFile);
-							}
-							catch (final IOException e) {
-								e.printStackTrace();
-							}
-
-
-						}
-						else {
-
-
-							if (ExecutionUtil.isExecuting(ExecutionCategory.eClassHierarchy)
-									&& (eObject instanceof EClass)) {
-								// do nothing
-							}
-
-
-							else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassContentsAndHierarchy)
-									&& (eObject instanceof EClass)) {
-								// do nothing
-							}
-							else if (ExecutionUtil.isExecuting(ExecutionCategory.eClassAllReferences)
-									&& (eObject instanceof EClass)) {
-								// do nothing
-							}
-							else {
-								selectElement((EObject) eObject);
-
-							}
-							
-//							((Browser)source).stop();
-							
-							event.doit=false;
-						}
-
-					}
-					else if (eObject instanceof EList<?>) {
-
-						if (Activator.getDefault().getPreferenceStore()
-								.getBoolean(PreferenceConstants.P_DRILL_DOWN)) {
-
-							/*- ======================================== Regeneration of SVG Buffer for populating content specific to the selection =====================*/
-
-							final ObjectContentBufferBuilder bufferBuilder = new ObjectContentBufferBuilder();
-
-							final StringBuffer buildBuffer = bufferBuilder
-									.buildBufferForCollection((EList<?>) eObject);
-							System.out.println(buildBuffer);
-
-							try {
-
-								getIdObjectsMap().addAll(bufferBuilder.getId2ObjectsMap());
-
-								final String svgFile = AbstractHandlerUtils.generateSVGFile(buildBuffer,
-										"Collection" + DiagramView.this.i++, bufferBuilder.getId2ObjectsMap());
-								((Browser) source).setUrl(svgFile);
-							}
-							catch (final IOException e) {
-								e.printStackTrace();
-							}
-
-
-						}
-						else {
-							MessageDialog.openError(Display.getDefault().getActiveShell(), "Element Selection",
-									"Selection of list is not possible for AMALTHEA model");
-
-							try {
-								((Browser) source).setUrl(this.lastSource);
-
-							}
-							catch (final Exception e) {
-								throw e;
-							}
-						}
-
-					}
-
-
-				}
-
-
-			}
-
-
-		}
-
-		@Override
-		public void changed(final LocationEvent event) {
-			this.lastSource = event.location;
-			urls.push(this.lastSource);
-		}
-
-		/**
-		 * This method is used to select specified AMALTHEA element in the Sphinx editor
-		 *
-		 * @param element
-		 */
-		private void selectElement(final EObject element) {
-
-			final URIEditorInput input = EcoreUIUtil.createURIEditorInput(element.eResource());
-			if (null != input) {
-
-				final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null
-						? PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						: PlatformUI.getWorkbench().getWorkbenchWindows()[0].getActivePage();
-
-				Display.getDefault().asyncExec(new java.lang.Runnable() {
-
-					@Override
-					public void run() {
-						final IEditorReference[] editorReferences = page.getEditorReferences();
-
-						for (final IEditorReference iEditorReference : editorReferences) {
-
-
-							if (iEditorReference.getId().equals("org.eclipse.app4mc.amalthea.sphinx.ui.editor")
-									|| iEditorReference.getId().equals("org.itea2.amalthea.sphinx.ui.editor")
-								|| iEditorReference.getId().equals("com.inchron.realtime.root.presentation.RootEditorID")) {
-								try {
-									final FileEditorInput editorInput = (FileEditorInput) iEditorReference
-											.getEditorInput();
-
-									final IFile fileFromEditor = editorInput.getFile();
-
-									final Resource eResource = element.eResource();
-
-									final URI uri = eResource.getURI();
-
-									final IFile fileFromResource = ResourcesPlugin.getWorkspace().getRoot()
-											.getFile(new Path(uri.toPlatformString(true)));
-
-
-									if ((fileFromEditor != null && fileFromResource != null)
-											&& fileFromEditor.toString().equals(fileFromResource.toString())) {
-
-										final IEditorPart activeEditor = iEditorReference.getEditor(false);
-
-										if (activeEditor instanceof MultiPageEditorPart) {
-
-											IDE.openEditor(page, editorInput, iEditorReference.getId());
-
-											if (canCollapseTreeElements()) {
-
-												Method method = activeEditor.getClass().getMethod("getViewer");
-												
-												
-												final Viewer viewer =   (Viewer) method.invoke(activeEditor);
-
-												if (viewer instanceof TreeViewer) {
-													((TreeViewer) viewer).collapseAll();
-													
-												}
-											}
-											
-											if(activeEditor instanceof BasicTransactionalFormEditor) {
-												((BasicTransactionalFormEditor) activeEditor)
-												.setSelectionToViewer(Collections.singleton(element));
-												
-											}else {
-
-												Method method = activeEditor.getClass().getMethod("getViewer");
-												
-												
-												final Viewer viewer =   (Viewer) method.invoke(activeEditor);
-
-												if (viewer instanceof TreeViewer) {
-													((TreeViewer) viewer).setSelection(new StructuredSelection(element), true);
-													
-												}
-											}
-										}
-
-									}
-								}
-								catch (final PartInitException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
-									e.printStackTrace();
-								}
-							}
-						}
-
-					}
-
-					private boolean canCollapseTreeElements() {
-						return Activator.getDefault().getPreferenceStore()
-								.getBoolean(PreferenceConstants.P_REDRAW_TREE_ON_SELECTION);
-					}
-				});
-
-			}
-
-		}
-
-		@Override
-		public void keyPressed(KeyEvent e) {
-
-			if(e.character=='\b') {
-				isBackButtonPressed=true;
-				Object source = e.getSource();
-				if (source instanceof Browser) {
-
-					try {
-						if(urls.isEmpty()==false) {
-							String pop = urls.pop();
-							
-							if(urls.isEmpty()==false) {
-								pop = urls.pop();
-								((Browser) source).setUrl(pop);
-							}
-						}
-					}
-					catch (final Exception exception) {
-						// skipping exception logging, as here goal is to still retain the same image
-					}
-				}
-
-			}
-		}
-
-		@Override
-		public void keyReleased(KeyEvent e) {
-		 
-			
-		}
-	};
-
-	private void addActions() {
-		final String P_DRILL_DOWN = Activator.getDefault().getPreferenceStore()
-				.getString(PreferenceConstants.P_DRILL_DOWN);
-
-		boolean state = false;
-		if (P_DRILL_DOWN == null) {
-			state = true;
-		}
-		else if (P_DRILL_DOWN.equals("false")) {
-			state = true;
-		}
-		else if (P_DRILL_DOWN.equals("true")) {
-			state = false;
-		}
-
-
-		final IActionBars actionBars = getViewSite().getActionBars();
-
-		final IToolBarManager toolBar = actionBars.getToolBarManager();
-		final Action action = new Action("Select in Editor", IAction.AS_CHECK_BOX) {
-			@Override
-			public void setText(final String text) {
-				super.setText(text);
-			}
-
-			@Override
-			public void run() {
-
-				if (isChecked() == false) {
-
-					try {
-
-						Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.P_DRILL_DOWN, true);
-					}
-					catch (final Exception e) {
-
-						throw e;
-					}
-				}
-				else if (isChecked() == true) {
-
-					try {
-						Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.P_DRILL_DOWN, false);
-
-					}
-					catch (final Exception e) {
-						throw e;
-					}
-				}
-
-			}
-
-
-		};
-
-		action.setChecked(state);
-
-		toolBar.add(action);
-
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	@Override
-	public void setFocus() {
-		getViewSite().getActionBars().updateActionBars();
-
-
-	}
-
-	public Browser getBrowser() {
-		return this.browser;
-	}
-
-	public EMap<String, Object> getIdObjectsMap() {
-		return this.idObjectsMap;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.project b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.project
deleted file mode 100644
index 48e979a..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.emfutils.metamodelviewer</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/META-INF/MANIFEST.MF
deleted file mode 100644
index 81e2803..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EMF Metamodel Viewer
-Bundle-SymbolicName: org.eclipse.app4mc.emfutils.metamodelviewer;singleton:=true
-Bundle-Version: 0.8.3
-Bundle-Vendor: Eclipse APP4MC
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui,
- org.eclipse.sphinx.emf
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Activator: org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.app4mc.emfutils.metamodelviewer.base,
- org.eclipse.app4mc.emfutils.metamodelviewer.dialogs,
- org.eclipse.app4mc.emfutils.metamodelviewer.preferences,
- org.eclipse.app4mc.emfutils.metamodelviewer.utils,
- org.eclipse.app4mc.emfutils.metamodelviewer.views,
- org.eclipse.app4mc.emfutils.metamodelviewer.views.providers
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/plugin.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/plugin.xml
deleted file mode 100644
index 4fb9b05..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/plugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Meta Model Explorer"
-            id="org.eclipse.app4mc.emfutils.metamodelviewer.explorer.view.category">
-      </category>
-      <view
-            allowMultiple="true"
-            category="org.eclipse.app4mc.emfutils.metamodelviewer.explorer.view.category"
-            class="org.eclipse.app4mc.emfutils.metamodelviewer.views.MetaModelExplorerView"
-            icon="icons/sample.gif"
-            id="org.eclipse.app4mc.emfutils.metamodelviewer.views.MetaModel-ExplorerView"
-            name="Meta Model Explorer">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.app4mc.emfutils.metamodelviewer.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.eclipse.app4mc.emfutils.metamodelviewer.preferences.MetaModelViewerPreferencePage"
-            id="org.eclipse.app4mc.emfutils.metamodelviewer.page1"
-            name="Meta Model Viewer">
-      </page>
-   </extension>
-
-</plugin>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/pom.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/pom.xml
deleted file mode 100644
index 0f68604..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/pom.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.metamodelviewer</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-	<build>
-		<sourceDirectory>src</sourceDirectory>
-		<resources>
-			<resource>
-				<directory>xtend-gen</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-			<resource>
-				<directory>src</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-		</resources>
-		<plugins>
-			<plugin>
-				<artifactId>maven-clean-plugin</artifactId>
-				<version>2.4.1</version>
-				<configuration>
-					<filesets>
-						<fileset>
-							<directory>xtend-gen</directory>
-							<includes>
-								<include>**</include>
-							</includes>
-						</fileset>
-					</filesets>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.7</version>
-				<executions>
-					<execution>
-						<id>add-source</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>add-source</goal>
-						</goals>
-						<configuration>
-							<sources>
-								<source>xtend-gen</source>
-							</sources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			 	<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<dependencies>
-				 <dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.core</artifactId>
-			<version>3.13.102</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
-			<version>1.3.110</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.tool</artifactId>
-			<version>1.2.101</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.codegen</artifactId>
-			<version>2.11.0</version>
-		</dependency>
-				</dependencies>
-
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/base/Activator.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/base/Activator.java
deleted file mode 100644
index 774871b..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/base/Activator.java
+++ /dev/null
@@ -1,69 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.metamodelviewer.base;
-
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.app4mc.emfutils.metamodelviewer"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void start(final BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void stop(final BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
deleted file mode 100644
index 98ef9dc..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
+++ /dev/null
@@ -1,475 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.metamodelviewer.views;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
-import org.eclipse.app4mc.emfutils.metamodelviewer.dialogs.SelectedElementContentDialog;
-import org.eclipse.app4mc.emfutils.metamodelviewer.preferences.MetaModelViewerPreferenceConstants;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.ElementSearchPatternFilter;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.PluginUtils;
-import org.eclipse.app4mc.emfutils.metamodelviewer.utils.RegisterECOREfilesAction;
-import org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewContentProvider;
-import org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewLabelProvider;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EPackage.Registry;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
-import org.eclipse.sphinx.emf.metamodel.MetaModelDescriptorRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.part.ViewPart;
-
-
-public class MetaModelExplorerView extends ViewPart {
-    /**
-     * The ID of the view as specified by the extension.
-     */
-    public static final String ID = "org.eclipse.app4mc.emfutils.metamodelviewer.views.MetaModel-ExplorerView";
-    private static int id_Counter = 1;
-    private TreeViewer viewer;
-    private Action filterClassesAction;
-    private Action registerEcoreFilesAction;
-    private Action filterAttributesAction;
-    private Action cloneViewAction;
-    private boolean filterForEClassifiersBoolean = true;
-    private boolean filterForAttributesBoolean;
-    private ElementSearchPatternFilter patternFilter;
-    private ComboViewer combo_ecore;
-
-    /**
-     * The constructor.
-     */
-    public MetaModelExplorerView() {
-    }
-
-    /**
-     * This is a callback that will allow us to create the viewer and initialize it.
-     */
-    @Override
-    public void createPartControl(final Composite parent) {
-        parent.setLayout(new GridLayout(2, false));
-
-        final Label label = new Label(parent, 0);
-
-        label.setText("SPHINX Registry");
-
-        label.setLayoutData(new GridData());
-
-        final Combo combo = new Combo(parent,
-                SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
-
-        final Label label_ecore = new Label(parent, 0);
-
-        label_ecore.setText("ECORE Registry");
-
-        label_ecore.setLayoutData(new GridData());
-
-        combo_ecore = new ComboViewer(parent,
-                SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
-
-        final Registry ePackageRegistry = EPackage.Registry.INSTANCE;
-
-        final Set<String> keySet = ePackageRegistry.keySet();
-        //		for (final String string : new TreeSet<String>(keySet)) {
-        //			
-        //			combo_ecore.add(string);
-        //		}
-        combo_ecore.setContentProvider(ArrayContentProvider.getInstance());
-        combo_ecore.setLabelProvider(new LabelProvider() {
-                @Override
-                public String getText(Object element) {
-                    return super.getText(element);
-                }
-            });
-
-        ArrayList<String> arrayList = new ArrayList<String>(keySet);
-
-        Collections.sort(arrayList);
-
-        combo_ecore.setInput(arrayList.toArray());
-
-        combo_ecore.getCombo().addSelectionListener(new SelectionAdapter() {
-                @Override
-                public void widgetSelected(final SelectionEvent e) {
-                    combo.deselectAll();
-
-                    final String text = combo_ecore.getCombo().getText();
-
-                    final EPackage ePackage = ePackageRegistry.getEPackage(text);
-
-                    getViewer().setInput(ePackage);
-                }
-            });
-
-        final List<IMetaModelDescriptor> descriptors = MetaModelDescriptorRegistry.INSTANCE.getDescriptors(MetaModelDescriptorRegistry.ANY_MM);
-
-        for (final IMetaModelDescriptor iMetaModelDescriptor : descriptors) {
-            final String identifier = iMetaModelDescriptor.getIdentifier();
-            combo.add(identifier);
-        }
-
-        combo.addSelectionListener(new SelectionAdapter() {
-                @Override
-                public void widgetSelected(final SelectionEvent e) {
-                    combo_ecore.getCombo().deselectAll();
-
-                    final String text = combo.getText();
-
-                    final IMetaModelDescriptor descriptor = MetaModelDescriptorRegistry.INSTANCE.getDescriptor(text);
-
-                    getViewer().setInput(descriptor);
-                }
-            });
-
-        this.patternFilter = new ElementSearchPatternFilter(this.filterForEClassifiersBoolean,
-                this.filterForAttributesBoolean);
-
-        final FilteredTree filteredTree = new FilteredTree(parent,
-                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
-                this.patternFilter, true);
-
-        filteredTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,
-                2, 0));
-
-        this.viewer = filteredTree.getViewer();
-
-        final GridData gridLayoutData = new GridData();
-        gridLayoutData.horizontalSpan = 2;
-        gridLayoutData.grabExcessHorizontalSpace = true;
-        gridLayoutData.grabExcessVerticalSpace = true;
-        gridLayoutData.horizontalAlignment = GridData.FILL;
-        gridLayoutData.verticalAlignment = GridData.FILL;
-
-        this.viewer.getTree()
-                   .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,
-                2, 0));
-
-        this.viewer.setContentProvider(new ViewContentProvider());
-
-        this.viewer.setInput(getViewSite());
-
-        this.viewer.setLabelProvider(new ViewLabelProvider());
-
-        getSite().setSelectionProvider(this.viewer);
-
-        makeActions();
-
-        hookContextMenu();
-
-        hookDoubleClickAction();
-
-        contributeToActionBars();
-    }
-
-    public TreeViewer getViewer() {
-        return this.viewer;
-    }
-
-    private void hookContextMenu() {
-        final MenuManager menuMgr = new MenuManager("#PopupMenu") {
-                @Override
-                public IContributionItem[] getItems() {
-                    IContributionItem[] menuItems = super.getItems();
-
-                    final List<IContributionItem> filteredContributionItems = new LinkedList<IContributionItem>();
-
-                    for (final IContributionItem contributionItem : menuItems) {
-                        if ((contributionItem != null) &&
-                                ((contributionItem.getId() != null) &&
-                                (!(contributionItem.getId()
-                                                       .startsWith("org.eclipse.emf.ecore.editor.CreateDynamicInstance"))))) {
-                            filteredContributionItems.add(contributionItem);
-                        }
-                    }
-
-                    menuItems = new IContributionItem[filteredContributionItems.size()];
-
-                    return filteredContributionItems.toArray(menuItems);
-                }
-            };
-
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(new IMenuListener() {
-                @Override
-                public void menuAboutToShow(final IMenuManager manager) {
-                    MetaModelExplorerView.this.fillContextMenu(manager);
-                }
-            });
-
-        final Menu menu = menuMgr.createContextMenu(this.viewer.getControl());
-        this.viewer.getControl().setMenu(menu);
-        getSite().registerContextMenu(menuMgr, this.viewer);
-    }
-
-    private void contributeToActionBars() {
-        final IActionBars bars = getViewSite().getActionBars();
-        fillLocalPullDown(bars.getMenuManager());
-        fillLocalToolBar(bars.getToolBarManager());
-    }
-
-    private void fillLocalPullDown(final IMenuManager manager) {
-        manager.add(this.filterClassesAction);
-        manager.add(new Separator());
-        manager.add(this.filterAttributesAction);
-        manager.add(new Separator());
-        manager.add(this.cloneViewAction);
-    }
-
-    void fillContextMenu(final IMenuManager manager) {
-        // manager.add(this.filterClassesAction);
-        // manager.add(this.filterAttributesAction);
-        // manager.add(new Separator());
-        // this.drillDownAdapter.addNavigationActions(manager);
-        // Other plug-ins can contribute there actions here
-        // manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-    }
-
-    private void fillLocalToolBar(final IToolBarManager manager) {
-        manager.add(this.filterClassesAction);
-        manager.add(this.filterAttributesAction);
-        manager.add(new Separator());
-
-        manager.add(this.registerEcoreFilesAction);
-    }
-
-    private void makeActions() {
-        this.filterClassesAction = new Action("Filter for EClassifers",
-                IAction.AS_CHECK_BOX) {
-                    @Override
-                    public void run() {
-                        if (isChecked()) {
-                            setFilterForEClassifiersBoolean(true);
-                        } else {
-                            setFilterForEClassifiersBoolean(false);
-                        }
-                    }
-                };
-
-        this.filterClassesAction.setEnabled(true);
-
-        this.filterClassesAction.setToolTipText("Filter for EClassifiers");
-        this.filterClassesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
-                "icons/class_obj.png"));
-
-        this.filterAttributesAction = new Action("Filter for Attributes",
-                IAction.AS_CHECK_BOX) {
-                    @Override
-                    public void run() {
-                        if (isChecked()) {
-                            setFilterForAttributesBoolean(true);
-                        } else {
-                            setFilterForAttributesBoolean(false);
-                        }
-                    }
-                };
-        this.filterAttributesAction.setToolTipText("Filter for Attributes");
-        this.filterAttributesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
-                "icons/prop_ps.gif"));
-
-        this.cloneViewAction = new Action("Clone View", IAction.AS_CHECK_BOX) {
-                    @Override
-                    public void run() {
-                        try {
-                            getViewSite().getPage()
-                                .showView(ID, id_Counter++ + "",
-                                IWorkbenchPage.VIEW_VISIBLE);
-                        } catch (PartInitException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                };
-        this.cloneViewAction.setToolTipText("Clone View");
-        this.cloneViewAction.setImageDescriptor(PluginUtils.getImageDescriptor(
-                "icons/prop_ps.gif"));
-                         
-
-        this.registerEcoreFilesAction = new Action("Register ECORE files") {
-                    @Override
-                    public void run() {
-                        //TODO: add implementation for CSV report generation
-                        Object input = viewer.getInput();
-
-                        FileDialog dialog = new FileDialog(Display.getDefault()
-                                                                  .getActiveShell(),
-                                SWT.OPEN | SWT.MULTI);
-
-                        dialog.setFilterExtensions(new String[] { "*.ecore" });
-
-                        dialog.open();
-
-                        if ((dialog.getFileName() == null) ||
-                                (dialog.getFileNames() == null)) {
-                            return;
-                        }
-
-                        List<String> files = new ArrayList<String>();
-
-                        for (String fileName : dialog.getFileNames()) {
-                            String filePath = dialog.getFilterPath() +
-                                File.separator + fileName;
-
-                            files.add(filePath);
-                        }
-
-                        try {
-                            RegisterECOREfilesAction.loadECOREs(files,
-                                combo_ecore);
-                        } catch (Exception e) {
-                            Display.getDefault().asyncExec(new Runnable() {
-                                    @Override
-                                    public void run() {
-                                        MessageDialog.openError(Display.getDefault()
-                                                                       .getActiveShell(),
-                                            "Error", e.getMessage());
-                                    }
-                                });
-                        }
-                    }
-                };
-        this.registerEcoreFilesAction.setToolTipText(
-            "Register ECORE files");
-        this.registerEcoreFilesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
-                "icons/register_ecores.png"));
-    }
-
-    private void hookDoubleClickAction() {
-        this.viewer.addDoubleClickListener(new IDoubleClickListener() {
-                @Override
-                public void doubleClick(final DoubleClickEvent event) {
-                    final ISelection selection = event.getSelection();
-
-                    if (selection instanceof TreeSelection) {
-                        final Object firstElement = ((TreeSelection) selection).getFirstElement();
-
-                        if (firstElement instanceof EObject) {
-                            Shell parentShell = null;
-
-                            String displayDialogStyle = (Activator.getDefault()
-                                                                  .getPreferenceStore()
-                                                                  .getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
-
-                            if ((displayDialogStyle != null) &&
-                                    displayDialogStyle.equals(
-                                        MetaModelViewerPreferenceConstants.V_ON_TOP)) {
-                                parentShell = new Shell(SWT.ON_TOP);
-                            } else {
-                                parentShell = new Shell();
-                            }
-
-                            // final String name = ((firstElement instanceof EClass) ? ((EClass) firstElement).getName() :
-                            // "");
-                            //
-                            // parentShell.setText("Details of : " + ((EClass) firstElement).eClass().getName() + " " +
-                            // name);
-                            //
-                            //
-                            // final TaskBar systemTaskBar = parentShell.getDisplay().getSystemTaskBar();
-                            // final TaskItem taskItem = systemTaskBar.getItem(parentShell);
-                            //
-                            // taskItem.setData(parentShell);
-                            // taskItem.setOverlayText(name);
-                            // taskItem.setText(name);
-                            new SelectedElementContentDialog(parentShell,
-                                getSite(), (EObject) firstElement).open();
-                        }
-                    }
-                }
-            });
-    }
-
-    /**
-     * Passing the focus request to the viewer's control.
-     */
-    @Override
-    public void setFocus() {
-        this.viewer.getControl().setFocus();
-    }
-
-    public Action getFilterClassesAction() {
-        return this.filterClassesAction;
-    }
-
-    public Action getFilterAttributesAction() {
-        return this.filterAttributesAction;
-    }
-
-    public boolean isFilterForEClassifiersBoolean() {
-        return this.filterForEClassifiersBoolean;
-    }
-
-    public boolean isFilterForAttributesBoolean() {
-        return this.filterForAttributesBoolean;
-    }
-
-    public void setFilterClassesAction(final Action filterClassesAction) {
-        this.filterClassesAction = filterClassesAction;
-    }
-
-    public void setFilterAttributesAction(final Action filterAttributesAction) {
-        this.filterAttributesAction = filterAttributesAction;
-    }
-
-    public void setFilterForEClassifiersBoolean(
-        final boolean filterForEClassifiersBoolean) {
-        this.filterForEClassifiersBoolean = filterForEClassifiersBoolean;
-
-        this.patternFilter.setFilterForEClassifiersBoolean(filterForEClassifiersBoolean);
-    }
-
-    public void setFilterForAttributesBoolean(
-        final boolean filterForAttributesBoolean) {
-        this.filterForAttributesBoolean = filterForAttributesBoolean;
-
-        this.patternFilter.setFilterForAttributesBoolean(filterForAttributesBoolean);
-    }
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.classpath b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.gitignore b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.gitignore
deleted file mode 100644
index 84a4913..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/target
-/bin
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.project b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.project
deleted file mode 100644
index 02349ae..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.emfutils.resourceset.mapper</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0c68a61..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/META-INF/MANIFEST.MF b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/META-INF/MANIFEST.MF
deleted file mode 100644
index 8cd619d..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EMF Resourceset Mapper
-Bundle-SymbolicName: org.eclipse.app4mc.emfutils.resourceset.mapper;singleton:=true
-Bundle-Version: 0.8.3
-Bundle-Activator: org.eclipse.app4mc.emfutils.resourceset.mapper.Activator
-Bundle-Vendor: Eclipse APP4MC
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui,
- org.eclipse.sphinx.emf
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/about.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/about.html
deleted file mode 100644
index 164f781..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/plugin.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/plugin.xml
deleted file mode 100644
index 6d62458..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.startup">
-          <startup class="org.eclipse.app4mc.emfutils.resourceset.mapper.ResourceSetMapper"/>
-   </extension>
-
-</plugin>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/pom.xml b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/pom.xml
deleted file mode 100644
index 1b5fdb8..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/pom.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.emfutils.extractor.build</relativePath>
-		<groupId>org.eclipse.app4mc.emfutils.content.extractor</groupId>
-		<artifactId>org.eclipse.app4mc.emfutils.extractor.build</artifactId>
-		<version>0.8.3</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.emfutils.resourceset.mapper</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-	<build>
-		<sourceDirectory>src</sourceDirectory>
-		<resources>
-			<resource>
-				<directory>xtend-gen</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-			<resource>
-				<directory>src</directory>
-				<excludes>
-					<exclude>**/*.java</exclude>
-				</excludes>
-			</resource>
-		</resources>
-		<plugins>
-			<plugin>
-				<artifactId>maven-clean-plugin</artifactId>
-				<version>2.4.1</version>
-				<configuration>
-					<filesets>
-						<fileset>
-							<directory>xtend-gen</directory>
-							<includes>
-								<include>**</include>
-							</includes>
-						</fileset>
-					</filesets>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.7</version>
-				<executions>
-					<execution>
-						<id>add-source</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>add-source</goal>
-						</goals>
-						<configuration>
-							<sources>
-								<source>xtend-gen</source>
-							</sources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		 	<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<dependencies>
-				 <dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.core</artifactId>
-			<version>3.13.102</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
-			<version>1.3.110</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>org.eclipse.jdt.compiler.tool</artifactId>
-			<version>1.2.101</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.codegen</artifactId>
-			<version>2.11.0</version>
-		</dependency>
-				</dependencies>
-
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/Activator.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/Activator.java
deleted file mode 100644
index 517ccd9..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/Activator.java
+++ /dev/null
@@ -1,48 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.resourceset.mapper;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	private static BundleContext context;
-
-	static BundleContext getContext() {
-		return context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void start(final BundleContext bundleContext) throws Exception {
-		Activator.context = bundleContext;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void stop(final BundleContext bundleContext) throws Exception {
-		Activator.context = null;
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/ResourceSetMapper.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/ResourceSetMapper.java
deleted file mode 100644
index 70f2d22..0000000
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/src/org/eclipse/app4mc/emfutils/resourceset/mapper/ResourceSetMapper.java
+++ /dev/null
@@ -1,53 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2017 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-package org.eclipse.app4mc.emfutils.resourceset.mapper;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
-import org.eclipse.sphinx.emf.metamodel.MetaModelDescriptorRegistry;
-import org.eclipse.ui.IStartup;
-
-public class ResourceSetMapper implements IStartup {
-
-	@Override
-	public void earlyStartup() {
-		
-		  List<IMetaModelDescriptor> descriptors = MetaModelDescriptorRegistry.INSTANCE
-				.getDescriptors(MetaModelDescriptorRegistry.ANY_MM);
-		  
-		  for (IMetaModelDescriptor iMetaModelDescriptor : descriptors) {
-			
-			  ResourceSet resourceSet=new ResourceSetImpl();
-				
-				for (EPackage ePackage : iMetaModelDescriptor.getEPackages()) {
-					
-					Resource eResource = ePackage.eResource();
-					
-					if(eResource.getResourceSet()==null){
-
-						((ResourceSetImpl)resourceSet).getResources().add(eResource);
-						
-					}
-				}
-		}
-
-	}
-
-}
diff --git a/eclipse-tools/emf-graphical-viewer/pom.xml b/eclipse-tools/emf-graphical-viewer/pom.xml
new file mode 100644
index 0000000..1335b56
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/pom.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.eclipse.app4mc.emf.viewers</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.9.8-SNAPSHOT</version>
+   
+  <packaging>pom</packaging>
+  
+  <name>Eclipse APP4MC EMF Viewers</name>
+ 
+  <properties>
+    <tycho.version>1.6.0</tycho.version>
+    
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+ 
+	<pluginRepositories>
+		<pluginRepository>
+			<id>cbi</id>
+			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</pluginRepository>
+	</pluginRepositories>
+
+  <modules>
+  		<module>plugins</module>
+		<module>features</module>
+		<module>releng</module>
+  </modules>
+  
+  	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<extensions>true</extensions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-compiler-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<verbose>true</verbose>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<environments>
+						<environment>
+							<os>linux</os>
+							<ws>gtk</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>win32</os>
+							<ws>win32</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>macosx</os>
+							<ws>cocoa</ws>
+							<arch>x86_64</arch>
+						</environment>
+					</environments>
+
+					<target>
+						<artifact>
+							<groupId>org.eclipse.app4mc.emf.viewers</groupId>
+							<artifactId>org.eclipse.app4mc.emf.viewers.target</artifactId>
+							<version>0.9.8-SNAPSHOT</version>
+						</artifact>
+					</target>
+					<targetDefinitionIncludeSource>honor</targetDefinitionIncludeSource>
+				</configuration>
+			</plugin>
+			
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<!-- argLine>${tycho.testArgLine}</argLine> -->
+					<forkMode>never</forkMode>
+					<includes>
+						<include>**/*Test.*</include>
+					</includes>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<version>${tycho.version}</version>
+
+				<executions>
+					<execution>
+						<id>plugin-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>sign</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>1.1.3</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<phase>package</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>  
+</project>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/.gitignore b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/.gitignore
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/.gitignore
rename to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/.gitignore
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/.project b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/.project
similarity index 86%
rename from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/.project
rename to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/.project
index 75a48a0..5c2e67b 100644
--- a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/.project
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.emfutils.p2repo</name>
+	<name>org.eclipse.app4mc.emf.viewers.p2repo</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/about.html b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/about.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/about.html
rename to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/category.xml b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/category.xml
new file mode 100644
index 0000000..ad129e6
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/category.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature id="org.eclipse.app4mc.emf.viewers.graphical">
+      <category name="APP4MC EMF Viewers"/>
+   </feature>
+   <feature id="org.eclipse.app4mc.emf.metamodelviewers">
+      <category name="APP4MC EMF Viewers"/>
+   </feature>
+   <category-def name="APP4MC EMF Viewers" label="org.eclipse.app4mc.emf.viewers"/>
+</site>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/epl-2.0.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/epl-2.0.html
rename to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/pom.xml b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/pom.xml
new file mode 100644
index 0000000..4140389
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>org.eclipse.app4mc.emf.viewers.p2repo</artifactId>
+
+  <packaging>eclipse-repository</packaging>
+
+  <parent>
+  	<groupId>org.eclipse.app4mc.emf.viewers</groupId>
+  	<artifactId>parent</artifactId>
+	<version>0.9.8-SNAPSHOT</version>
+  	<relativePath>../../pom.xml</relativePath>
+  </parent>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/siteTemplate/index.html b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/siteTemplate/index.html
similarity index 100%
rename from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/siteTemplate/index.html
rename to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.p2repo/siteTemplate/index.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/.project
similarity index 76%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
copy to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/.project
index e5155e4..bbe8c68 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.transformation.build</name>
+	<name>org.eclipse.app4mc.emf.viewers.target</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/about.html b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/about.html
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/about.html
copy to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/about.html
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/epl-2.0.html b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/epl-2.0.html
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/epl-2.0.html
copy to eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/epl-2.0.html
diff --git a/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.target b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.target
new file mode 100644
index 0000000..4324aa8
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.target
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="EMF Graphical Viewer Target" sequenceNumber="1584966333">
+  <locations>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sdk.ide" version="4.8.0.I20180611-0500"/>
+      <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.3.0.v20180125-1130"/>
+      <unit id="org.eclipse.emf.sdk.feature.group" version="2.14.0.v20180529-1157"/>
+      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.0.201805030717"/>
+      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.xtext.runtime.feature.group" version="2.14.0.v20180523-0937"/>
+      <unit id="org.eclipse.xtext.sdk.feature.group" version="2.14.0.v20180523-0937"/>
+      <unit id="org.eclipse.xtext.xbase.feature.group" version="2.14.0.v20180523-0937"/>
+      <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.14.0.v20180522-1631"/>
+      <unit id="org.eclipse.xtend.sdk.feature.group" version="2.14.0.v20180523-0937"/>
+      <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
+      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
+      <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
+      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
+      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
+      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
+      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
+      <unit id="javax.xml" version="1.3.4.v201005080400"/>
+      <unit id="org.jdom" version="1.1.1.v201101151400"/>
+      <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
+      <unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
+      <repository location="http://download.eclipse.org/releases/photon"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sphinx.sdk.feature.group" version="0.11.2.201802230805"/>
+      <repository location="http://download.eclipse.org/sphinx/updates/0.11.x"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="net.sourceforge.plantuml.lib.feature.feature.group" version="1.2019.11"/>
+      <unit id="net.sourceforge.plantuml.feature.feature.group" version="1.1.24"/>
+      <unit id="net.sourceforge.plantuml.ecore.feature.feature.group" version="1.1.24"/>
+      <repository location="http://hallvard.github.io/plantuml"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+      <repository location="http://download.eclipse.org/cbi/updates/license"/>
+    </location>
+  </locations>
+</target>
diff --git a/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.tpd b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.tpd
new file mode 100644
index 0000000..2c4327d
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/releng/org.eclipse.app4mc.emf.viewers.target/org.eclipse.app4mc.emf.viewers.target.tpd
@@ -0,0 +1,43 @@
+target "EMF Graphical Viewer Target"
+
+with source allEnvironments
+
+location "http://download.eclipse.org/releases/photon" {
+	org.eclipse.sdk.ide
+	org.eclipse.emf.ecore.xcore.lib.feature.group
+	org.eclipse.emf.sdk.feature.group
+	org.eclipse.emf.transaction.feature.group
+	org.eclipse.emf.validation.feature.group
+	org.eclipse.emf.workspace.feature.group
+	org.eclipse.xtext.runtime.feature.group
+	org.eclipse.xtext.sdk.feature.group
+	org.eclipse.xtext.xbase.feature.group
+	org.eclipse.xtext.xbase.lib.feature.group
+	org.eclipse.xtend.sdk.feature.group
+	org.eclipse.xpand.sdk.feature.group
+	org.apache.commons.cli
+	org.apache.commons.lang
+	org.apache.log4j
+	org.apache.xerces
+	org.apache.xalan
+	org.apache.xml.resolver
+	org.apache.xml.serializer
+	javax.xml
+	org.jdom
+	com.google.guava
+	org.slf4j.api
+}
+
+location "http://download.eclipse.org/sphinx/updates/0.11.x" {
+	org.eclipse.sphinx.sdk.feature.group
+}
+
+location "http://hallvard.github.io/plantuml" {
+	net.sourceforge.plantuml.lib.feature.feature.group [1.2019.11,1.2019.11]
+	net.sourceforge.plantuml.feature.feature.group [1.1.24,1.1.24]
+	net.sourceforge.plantuml.ecore.feature.feature.group [1.1.24,1.1.24]
+}
+
+location "http://download.eclipse.org/cbi/updates/license" {
+	org.eclipse.license.feature.group
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/.gitignore b/eclipse-tools/model-transformation/.gitignore
new file mode 100644
index 0000000..d3c31f7
--- /dev/null
+++ b/eclipse-tools/model-transformation/.gitignore
@@ -0,0 +1,8 @@
+.metadata/
+
+# Eclipse target directories
+bin/
+target/
+
+xtend-gen/
+output/*
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/.mvn/extensions.xml b/eclipse-tools/model-transformation/.mvn/extensions.xml
new file mode 100644
index 0000000..710a9ec
--- /dev/null
+++ b/eclipse-tools/model-transformation/.mvn/extensions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extensions>
+  <extension>
+    <groupId>org.eclipse.tycho.extras</groupId>
+    <artifactId>tycho-pomless</artifactId>
+    <version>1.6.0</version>
+  </extension>
+</extensions>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/.gitignore b/eclipse-tools/model-transformation/build/.gitignore
deleted file mode 100644
index 3197db3..0000000
--- a/eclipse-tools/model-transformation/build/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/dev_utils/dev.target b/eclipse-tools/model-transformation/build/dev_utils/dev.target
deleted file mode 100644
index ff629a0..0000000
--- a/eclipse-tools/model-transformation/build/dev_utils/dev.target
+++ /dev/null
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="Oxygen-Platform" sequenceNumber="3">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.wst.jsdt.nashorn.extension" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/oxygen/201706021000"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.docs.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.examples.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.redist.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.runtime.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.ui.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.xbase.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.xbase.lib.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xtext.xtext.ui.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.13.0"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="com.google.inject" version="0.0.0"/>
-<unit id="com.sun.xml.bind" version="0.0.0"/>
-<unit id="java_cup.runtime" version="0.0.0"/>
-<unit id="javax.activation" version="0.0.0"/>
-<unit id="javax.annotation" version="0.0.0"/>
-<unit id="javax.el" version="0.0.0"/>
-<unit id="javax.servlet" version="0.0.0"/>
-<unit id="javax.ws.rs" version="0.0.0"/>
-<unit id="javax.xml" version="0.0.0"/>
-<unit id="javax.xml.bind" version="0.0.0"/>
-<unit id="javax.xml.stream" version="0.0.0"/>
-<unit id="org.antlr.runtime" version="0.0.0"/>
-<unit id="org.apache.batik.css" version="0.0.0"/>
-<unit id="org.apache.batik.util" version="0.0.0"/>
-<unit id="org.apache.batik.util.gui" version="0.0.0"/>
-<unit id="org.apache.bcel" version="0.0.0"/>
-<unit id="org.apache.commons.codec" version="0.0.0"/>
-<unit id="org.apache.commons.io" version="0.0.0"/>
-<unit id="org.apache.commons.lang" version="0.0.0"/>
-<unit id="org.apache.commons.logging" version="0.0.0"/>
-<unit id="org.apache.commons.math" version="0.0.0"/>
-<unit id="org.apache.commons.math3" version="0.0.0"/>
-<unit id="org.apache.httpcomponents.httpclient" version="0.0.0"/>
-<unit id="org.apache.httpcomponents.httpcore" version="0.0.0"/>
-<unit id="org.apache.log4j" version="0.0.0"/>
-<unit id="org.apache.xalan" version="0.0.0"/>
-<unit id="org.apache.xerces" version="0.0.0"/>
-<unit id="org.apache.xml.resolver" version="0.0.0"/>
-<unit id="org.apache.xml.serializer" version="0.0.0"/>
-<unit id="org.easymock" version="0.0.0"/>
-<unit id="org.jdom" version="0.0.0"/>
-<unit id="org.slf4j.log4j" version="0.0.0"/>
-<unit id="org.slf4j.log4j.source" version="0.0.0"/>
-<unit id="org.swtchart" version="0.0.0"/>
-<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180330011457/repository/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/cbi/updates/license/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.ease.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ease.lang.javascript.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ease.lang.jvm.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ease.modules.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ease.ui.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ease/update/release"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.jst.common.fproj.enablement.jdt.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jst.server_adapters.ext.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jst.server_core.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.common.fproj.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.common_core.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.common_ui.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.jsdt.chromium.debug.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.server_core.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.server_ui.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/webtools/downloads/drops/R3.9.5/R-3.9.5-20180409100740/repository"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="com.google.protobuf" version="0.0.0"/>
-<unit id="org.eclipse.acceleo.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.remote.core" version="0.0.0"/>
-<unit id="org.eclipse.cdt.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.draw2d.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.core.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.core.ssl.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.discovery.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.filetransfer.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.filetransfer.httpclient4.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.filetransfer.ssl.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ecf.remoteservice.sdk.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.eef.ext.widgets.reference.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.eef.sdk.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.egit.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.egit.mylyn.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.egit.source.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.ecore.xcore.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.eef.edt-feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.eef.extended-feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.eef.runtime-feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.eef.sdk-feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.mwe.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.mwe2.language.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.mwe2.runtime.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.parsley.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.ocl.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.ocl.source.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.emf.validation.source.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.equinox.p2.discovery.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.equinox.server.jetty.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.code.editor.configuration" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.basic.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.converter.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.css.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.fxgraph.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.fxml.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.gmod.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.l10n.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.ldef.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.pde.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.ide.rrobot.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.fx.runtime.min.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.common.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.dot.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.fx.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.fx.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.fx.jface.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.fx.swt.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.geometry.convert.fx.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.geometry.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.geometry.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.graph.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.graph.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.layout.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.layout.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.mvc.doc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.mvc.fx.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.mvc.fx.ui.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.zest.fx.ui.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gef.zest.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gmf.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gmf.runtime.notation.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.gmf.runtime.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.graphiti.sdk.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.http.apache.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.lfs.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.pgm.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.pgm.source.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.jgit.source.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.platform.ide" version="0.0.0"/>
-<unit id="org.eclipse.platform.sdk" version="0.0.0"/>
-<unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.sphinx.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.uml2.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xpand.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.xsd.sdk.feature.group" version="0.0.0"/>
-<unit id="org.slf4j.api" version="0.0.0"/>
-<unit id="org.slf4j.impl.log4j12" version="0.0.0"/>
-<unit id="org.slf4j.jcl" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/oxygen"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.app4mc.amalthea.models.feature.group" version="0.9.2.201810311302"/>
-<unit id="org.eclipse.app4mc.amalthea.models.sdk.feature.group" version="0.9.2.201810311302"/>
-<unit id="org.eclipse.app4mc.amalthea.workflow.mwe.feature.group" version="0.9.2.201810311302"/>
-<unit id="org.eclipse.app4mc.amalthea.workflow.mwe.sdk.feature.group" version="0.9.2.201810311302"/>
-<unit id="org.eclipse.app4mc.amalthea.workflow.scripting.feature.group" version="0.9.2.201810311302"/>
-<unit id="org.eclipse.app4mc.amalthea.workflow.scripting.sdk.feature.group" version="0.9.2.201810311302"/>
-<repository location="http://download.eclipse.org/app4mc/updatesites/releases/0.9.2/"/>
-</location>
-</locations>
-</target>
diff --git a/eclipse-tools/model-transformation/build/dev_utils/workingSets.psf b/eclipse-tools/model-transformation/build/dev_utils/workingSets.psf
deleted file mode 100644
index 06bf9e1..0000000
--- a/eclipse-tools/model-transformation/build/dev_utils/workingSets.psf
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<psf version="2.0">
- 
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529914625380_12" label="build" name="build">
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/dev_utils" type="4"/>
-<item elementID="=org.eclipse.app4mc.transformation.examples.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transformation.examples.builder" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.p2repo" type="4"/>
-<item elementID="=org.eclipse.app4mc.inchron.transformation.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.build" type="4"/>
-</workingSets>
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529215332641_1" label="core" name="core">
-<item elementID="=org.eclipse.app4mc.transformation.application" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transformation.extensions" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-</workingSets>
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529439029677_8" label="examples" name="examples">
-<item elementID="=app4mc.example.transform.app" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=app4mc.example.transform.m2m" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=app4mc.example.transform.m2t" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=app4mc.example.transform.samplemodel" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-</workingSets>
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529915202554_18" label="Examples_Builders" name="Examples_Builders">
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.examples.feature" type="4"/>
-<item elementID="=org.eclipse.app4mc.transformation.examples.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transformation.examples.builder" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.inchron.transformation.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-</workingSets>
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529915327977_23" label="features" name="features">
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.examples.feature" type="4"/>
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.core.feature" type="4"/>
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.to.inchron.feature" type="4"/>
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.3rdparty.feature" type="4"/>
-</workingSets>
-<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1529215338148_2" label="inchron" name="inchron">
-<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.to.inchron.feature" type="4"/>
-<item elementID="=org.eclipse.app4mc.transform.to.inchron.app" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transform.to.inchron.m2m" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transformation.3rdparty.libs" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.inchron.transformation.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=org.eclipse.app4mc.transform.to.inchron.product" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-<item elementID="=com.inchron.realtime.root" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
-</workingSets>
-</psf>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/META-INF/MANIFEST.MF
deleted file mode 100644
index 13e1490..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: APP4MC EMF model transformation build
-Bundle-SymbolicName: org.eclipse.app4mc.transformation.build;singleton:=true
-Bundle-Version: 0.3.0.qualifier
-Require-Bundle: org.eclipse.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7,
- JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Vendor: Eclipse APP4MC
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/pom.xml b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/pom.xml
deleted file mode 100644
index e5d4265..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/pom.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.eclipse.app4mc.transformation</groupId>
-	<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-	<version>0.3.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-	<name>Model Transformation</name>
-
-	<properties>
-		<tycho.version>0.22.0</tycho.version>
-		<jacoco.version>0.7.4.201502262128</jacoco.version>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.reporting.outputEncoding>UTF-8
-		</project.reporting.outputEncoding>
-
-		<luna-repo.url>http://download.eclipse.org/releases/neon
-		</luna-repo.url>
-		<amalthea-repo.url>http://download.eclipse.org/app4mc/updatesites/releases/0.9.3/
-		</amalthea-repo.url>
-
-		<orbit-repo.url>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/
-		</orbit-repo.url>
-		<sphinx-repo-url>http://download.eclipse.org/sphinx/updates/interim/
-		</sphinx-repo-url>
-
-		<xtext-url>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.14.0/
-		</xtext-url>
-		
-		<eclipse-license>http://download.eclipse.org/cbi/updates/license/</eclipse-license>
-
-		
-	</properties>
-	
-		<pluginRepositories>
-		<pluginRepository>
-			<id>jboss-public-repository-group</id>
-			<name>JBoss Public Repository Group</name>
-			<url>http://repository.jboss.org/nexus/content/groups/public/</url>
-		</pluginRepository>
-
-		<pluginRepository>
-			<id>jboss-snapshots-repository</id>
-			<name>JBoss Snapshots Repository</name>
-			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
-		</pluginRepository>
-	</pluginRepositories>
-	
-	
-	<repositories>
-	
- 
-		
-		
-		<repository>
-			<id>amalthea</id>
-			<url>${amalthea-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-
-
-	<repository>
- 			<id>eclipse-license</id>
- 			<url>${eclipse-license}</url>
- 			<layout>p2</layout>
- 		</repository>
- 		
-		<repository>
-			<id>luna</id>
-			<url>${luna-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>orbit</id>
-			<url>${orbit-repo.url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>xtext</id>
-			<url>${xtext-url}</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>sphinx</id>
-			<url>${sphinx-repo-url}</url>
-			<layout>p2</layout>
-		</repository>
-		
-		
-		
-	</repositories>
-
-
-	<modules>
-		<!-- example plugins -->
-
-		<module>../../examples/sample-model-transformation/app4mc.example.transform.samplemodel
-		</module>
-		<module>../../examples/sample-model-transformation/app4mc.example.transform.m2m
-		</module>
-		<module>../../examples/sample-model-transformation/app4mc.example.transform.m2t
-		</module>
-		<module>../../examples/sample-model-transformation/app4mc.example.transform.app
-		</module>
-
-		<!-- Amlt2Inchron transformation plugins plugins -->
-
-<module>../../examples/amlt2inchron/com.inchron.realtime.root</module>
-
-<module>../../examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.app</module>
-<module>../../examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m</module>
-
-<module>../../examples/amlt2inchron/org.eclipse.app4mc.transformation.3rdparty.libs</module>
-
-
-		<!-- core framework plugins -->
-
-		<module>../../plugins/org.eclipse.app4mc.transformation.application
-		</module>
-		<module>../../plugins/org.eclipse.app4mc.transformation.extensions
-		</module>
-
-
-		<!-- installer plugins -->
-
-		<module>../org.eclipse.app4mc.transformation.examples.installer
-		</module>
-
- 
-		
-
-		<!-- features -->
-
-		<module>../../features/org.eclipse.app4mc.transformation.3rdparty.feature
-		</module>
-
-		<module>../../features/org.eclipse.app4mc.transformation.core.feature
-		</module>
-
-		  <module>../../features/org.eclipse.app4mc.transformation.examples.feature</module>  
-
-		<module>../../examples/amlt2inchron/org.eclipse.app4mc.transformation.to.inchron.feature</module>
-
-		<!-- build plugins -->
-
-		<module>../org.eclipse.app4mc.transformation.p2repo</module>
-
-
-	</modules>
-
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-maven-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<extensions>true</extensions>
-				<configuration>
-
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-compiler-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<verbose>true</verbose>
-					<source>1.8</source>
-					<target>1.8</target>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>target-platform-configuration</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<dependency-resolution>
-						<extraRequirements>
-							<requirement>
-								<type>eclipse-plugin</type>
-								<id>org.hamcrest</id>
-								<versionRange>0.0.0</versionRange>
-							</requirement>
-						</extraRequirements>
-					</dependency-resolution>
-					<environments>
-						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
-							<os>macosx</os>
-							<ws>cocoa</ws>
-							<arch>x86_64</arch>
-						</environment>
-					</environments>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-surefire-plugin</artifactId>
-				<version>${tycho.version}</version>
-				<configuration>
-					<!-- argLine>${tycho.testArgLine}</argLine> -->
-					<forkMode>never</forkMode>
-					<includes>
-						<include>**/*Test.*</include>
-					</includes>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.jacoco</groupId>
-				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.7.4.201502262128</version>
-				<configuration>
-					<excludes>
-
-					</excludes>
-				</configuration>
-				<executions>
-					<!-- Prepares the property pointing to the JaCoCo runtime agent which 
-						is passed as VM argument when Maven the Surefire plugin is executed. -->
-					<execution>
-						<id>pre-unit-test</id>
-						<goals>
-							<goal>prepare-agent</goal>
-						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec
-							</destFile>
-						</configuration>
-					</execution>
-					<!-- Ensures that the code coverage report for unit tests is created 
-						after unit tests have been run. -->
-					<execution>
-						<id>post-unit-test</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>report</goal>
-						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec
-							</dataFile>
-							<!-- Sets the output directory for the code coverage report. -->
-							<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut
-							</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
- 
-       <plugin>
-            <artifactId>maven-clean-plugin</artifactId>
-            <version>3.0.0</version>
-            <configuration>
-                <filesets>
-                    <fileset>
-                        <directory>${basedir}</directory>
-                        <includes>
-                            <include>**/xtend-gen/**</include>
-						<!-- <outputDirectory>**/examples/**</outputDirectory> -->
-                        </includes>
-                        <followSymlinks>false</followSymlinks>
-                    </fileset>
-                </filesets>
-            </configuration>
-        </plugin>
-        
-        
-
-			<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<dependencies>
-						<dependency>
-						    <groupId>org.eclipse.platform</groupId>
-						    <artifactId>org.eclipse.equinox.common</artifactId>
-						    <version>[3.8.0,4.0.0)</version>
-						</dependency>
-					</dependencies>
-					
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-			</plugin>
-
-
-<!--
-		<plugin>
-				<groupId>org.jboss.tools.tycho-plugins</groupId>
-				<artifactId>repository-utils</artifactId>
-				<version>0.23.2</version>
-
-				<executions>
-					<execution>
-						<id>generate-facade</id>
-						<phase>package</phase>
-
-						<goals>
-							<goal>generate-repository-facade</goal>
-						</goals>
-
-						<configuration>
-							<siteTemplateFolder>siteTemplate</siteTemplateFolder>
-
- 							<symbols>
-								<update.site.name>Amalthea Model Transformation</update.site.name>
-								<target.eclipse.version>Neon.3 (4.6.3)</target.eclipse.version>
-							</symbols>
-
-							<associateSites>
-								<site>http://download.eclipse.org/releases/neon</site>
-								<site>http://download.eclipse.org/app4mc/updatesites/releases/0.9.0/</site>
-								<site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</site>
-								<site>http://download.eclipse.org/sphinx/updates/interim</site>
-								<site>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.10.0/</site>
-								<site>http://eclipse.inchron.com/realtime/updatesites/release/current/</site>
-							</associateSites>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-	-->		
-			
-		</plugins>
-	</build>
-
-</project>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.classpath b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.classpath
deleted file mode 100644
index fceb480..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.gitignore b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.gitignore
deleted file mode 100644
index 8788e6a..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-target
-.DS_Store
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.project b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.project
deleted file mode 100644
index b279a20..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.transformation.examples.builder</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3a21537..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/about.html b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/about.html
deleted file mode 100644
index 164f781..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/epl-2.0.html b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/copyExample.ant b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/copyExample.ant
deleted file mode 100644
index 9107bab..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/copyExample.ant
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<project name="copyExample" default="main" basedir="../..">
-
-	<property name="installer" value="#INSTALLER_PROJECT#" />
-	<import file="../../../../build/${installer}/copyExampleLib.ant" optional="true" />
-	<basename file="${build.project}" property="project" />
-
-	<target name="main">
-		<copyExample project="${project}" />
-	</target>
-
-</project>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.launch b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.launch
deleted file mode 100644
index de8fdb9..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.launch
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<booleanAttribute key="org.eclipse.ant.uiSET_INPUTHANDLER" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;resources&gt;&#13;&#10;#REFRESH_RESOURCES#&lt;/resources&gt;}"/>
-<booleanAttribute key="org.eclipse.debug.core.capture_output" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value=""/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="true"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;resources&gt;&#13;&#10;#RELEVANT_RESOURCES#&lt;/resources&gt;}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${project_loc:/#EXAMPLE_PROJECT#}/.externalToolBuilders/copyExample.ant"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="incremental,auto,"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuild.project=${project_loc:/#EXAMPLE_PROJECT#}"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.project b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.project
deleted file mode 100644
index 97d0290..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/exampleBuilderTemplates/template.project
+++ /dev/null
@@ -1,14 +0,0 @@
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>auto,full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/#EXAMPLE_PROJECT#.launch</value>
-				</dictionary>
-				<dictionary>
-					<key>incclean</key>
-					<value>true</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/src/org/eclipse/app4mc/platform/examplesbuilder/GenerateExampleBuilders.java b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/src/org/eclipse/app4mc/platform/examplesbuilder/GenerateExampleBuilders.java
deleted file mode 100644
index 620b8de..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.builder/src/org/eclipse/app4mc/platform/examplesbuilder/GenerateExampleBuilders.java
+++ /dev/null
@@ -1,225 +0,0 @@
- /**
- ********************************************************************************
- * Copyright (c) 2012 - 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.platform.examplesbuilder;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class GenerateExampleBuilders {
-	
-	private static String[] availableExampleFolders=new String[]{"sample-model-transformation", "amlt2inchron"};
-	
-	private static final String TOKEN_EXAMPLE_PROJECT = "#EXAMPLE_PROJECT#";
-
-	private static final String TOKEN_INSTALLER_PROJECT = "#INSTALLER_PROJECT#";
-
-	private static final String TOKEN_RELEVANT_RESOURCES = "#RELEVANT_RESOURCES#";
-
-	private static final String TOKEN_REFRESH_RESOURCES = "#REFRESH_RESOURCES#";
-
-	private static final String NL = System.getProperty("line.separator");
-
-	public static void main(final String[] args) throws Exception {
-		final File relengProject = new File(args[0]).getCanonicalFile();
-		final File installerPoject = new File(args[1]).getCanonicalFile();
-		final File pluginXML = new File(installerPoject, "plugin.xml");
-		System.out.println("Analyzing " + pluginXML);
-
-		final SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
-		final XMLHandler handler = new XMLHandler(relengProject, installerPoject);
-
-		try (InputStream in = new FileInputStream(pluginXML)) {
-			parser.parse(in, handler);
-		}
-	}
-
-	static void processProjectDescriptor(final File exampleProject, final File relengProject,
-			final File installerProject, final String targetFolder) throws Exception {
-		final String exampleProjectName = exampleProject.getName();
-		final String targetPath = installerProject.getName() + "/" + targetFolder;
-
-		final StringBuilder relevantResources = new StringBuilder();
-		relevantResources.append(getItemPath(targetPath, 2));
-
-		for (final File file : exampleProject.listFiles()) {
-			final String name = file.getName();
-			final int type = file.isDirectory() ? 2 : 1;
-
-			if (!"bin".equals(name)) {
-				final String path = exampleProjectName + "/" + name;
-				relevantResources.append(getItemPath(path, type));
-			}
-		}
-
-		final Map<String, String> substitutes = new HashMap<String, String>();
-		addSubtitute(substitutes, TOKEN_EXAMPLE_PROJECT, exampleProject.getName());
-		addSubtitute(substitutes, TOKEN_INSTALLER_PROJECT, installerProject.getName());
-		addSubtitute(substitutes, TOKEN_RELEVANT_RESOURCES, relevantResources.toString());
-		addSubtitute(substitutes, TOKEN_REFRESH_RESOURCES, getItemPath(new File(targetPath).getParent(), 2));
-
-		copy(exampleProject, relengProject, substitutes, "copyExample.ant", ".externalToolBuilders/copyExample.ant");
-		copy(exampleProject, relengProject, substitutes, "template.launch",
-				".externalToolBuilders/" + exampleProjectName + ".launch");
-
-		updateProjectDescription(exampleProject, relengProject, substitutes);
-	}
-
-	private static void copy(final File targetProject, final File relengProject, final Map<String, String> substitutes,
-			final String template, final String targetPath) throws IOException {
-		final File source = getTemplate(relengProject, template);
-		final String content = substitute(readFile(source), substitutes);
-
-		final File target = new File(targetProject, targetPath);
-		System.out.println("      Generating " + target.getCanonicalPath());
-		target.getParentFile().mkdir();
-		writeFile(target, content);
-	}
-
-	private static void updateProjectDescription(final File targetProject, final File relengProject,
-			final Map<String, String> substitutes) throws IOException {
-		final File snippetTemplate = getTemplate(relengProject, "template.project");
-		final String snippet = substitute(readFile(snippetTemplate), substitutes);
-
-		final File descriptionFile = new File(targetProject, ".project");
-		final String description = readFile(descriptionFile);
-		System.out.println("      Updating " + descriptionFile.getCanonicalPath());
-
-		if (description.indexOf(snippet) != -1) {
-			// Nothing to update
-			return;
-		}
-
-		String newDescription = description;
-
-		final Pattern pattern = Pattern.compile(
-				"(\\s*<buildCommand>.*?</buildCommand>)*(\\s*<buildCommand>.*?<value>&lt;project&gt;/\\.externalToolBuilders/"
-						+ targetProject.getName().replace(".", "\\.") + "\\.launch</value>.*?</buildCommand>)",
-				Pattern.DOTALL);
-		final Matcher matcher = pattern.matcher(description);
-		if (matcher.find()) {
-			final String remove = matcher.group(2);
-			newDescription = newDescription.replace(remove, "");
-		}
-
-		newDescription = newDescription.replaceFirst("[ \\t]*</buildSpec>", snippet + "\t</buildSpec>");
-		if (!newDescription.equals(description)) {
-			writeFile(descriptionFile, newDescription);
-		}
-	}
-
-	private static String readFile(final File file) throws IOException {
-		final StringBuilder result = new StringBuilder();
-
-		try (FileReader in = new FileReader(file); BufferedReader reader = new BufferedReader(in)) {
-			String line;
-			while ((line = reader.readLine()) != null) {
-				result.append(line);
-				result.append(NL);
-			}
-
-			return result.toString();
-		}
-	}
-
-	private static void writeFile(final File file, final String content) throws IOException {
-		try (FileWriter out = new FileWriter(file); BufferedWriter writer = new BufferedWriter(out)) {
-			writer.write(content);
-			writer.flush();
-		}
-	}
-
-	private static String getItemPath(final String resource, final int type) {
-		return "&lt;item path=&quot;/" + resource.replace('\\', '/') + "&quot; type=&quot;" + type
-				+ "&quot;/&gt;&#13;&#10;";
-	}
-
-	private static File getTemplate(final File root, final String template) {
-		return new File(root, "exampleBuilderTemplates/" + template);
-	}
-
-	private static void addSubtitute(final Map<String, String> substitutes, final String token,
-			final String substitute) {
-		System.out.println("      " + token + " = " + substitute);
-		substitutes.put(token, substitute);
-	}
-
-	private static String substitute(String content, final Map<String, String> substitutes) {
-		for (final Entry<String, String> entry : substitutes.entrySet()) {
-			content = content.replace(entry.getKey(), entry.getValue());
-		}
-
-		return content;
-	}
-
-	private static class XMLHandler extends DefaultHandler {
-		private final File relengProject;
-		private final File installerPoject;
-
-		public XMLHandler(final File relengProject, final File installerPoject) {
-			this.relengProject = relengProject;
-			this.installerPoject = installerPoject;
-		}
-
-		@Override
-		public void startElement(final String uri, final String localName, final String qName,
-				final Attributes attributes) throws SAXException {
-			if ("projectDescriptor".equalsIgnoreCase(qName)) {
-				try {
-					final String name = attributes.getValue("name");
-					final String contentURI = attributes.getValue("contentURI");
-					  File exampleProject = null;
-					
-					
-					for(String examplesFolder: availableExampleFolders){
-						
-						File file = new File(this.installerPoject, "../../examples/"+examplesFolder+"/" + name);
-						if(file.exists()){
-							exampleProject=file;
-							break;
-						}
-					}
-
-					System.out.println("   Processing " + name + " --> " + contentURI);
-					System.out.println("   exampleProject: " + exampleProject);
-					System.out.println("   installerProject: " + this.installerPoject);
-
-					processProjectDescriptor(exampleProject, this.relengProject, this.installerPoject, contentURI);
-				}
-				catch (final Exception ex) {
-					ex.printStackTrace();
-				}
-			}
-		}
-	}
-}
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/pom.xml b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/pom.xml
deleted file mode 100644
index f692f79..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-		<parent>
-		<relativePath>../org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.examples.installer</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/.gitignore b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/pom.xml b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/pom.xml
deleted file mode 100644
index 5a77155..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.p2repo</artifactId>
-	<packaging>eclipse-repository</packaging>
-	
-	<properties>
-		<org.jboss.tools.tycho-plugins.version>0.22.0</org.jboss.tools.tycho-plugins.version>
-	</properties>
-	
-	<pluginRepositories>
-		<pluginRepository>
-			<id>jboss-public-repository-group</id>
-			<name>JBoss Public Repository Group</name>
-			<url>http://repository.jboss.org/nexus/content/groups/public/</url>
-		</pluginRepository>
-
-		<pluginRepository>
-			<id>jboss-snapshots-repository</id>
-			<name>JBoss Snapshots Repository</name>
-			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
-		</pluginRepository>
-		  
-		
-	</pluginRepositories>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-p2-repository-plugin</artifactId>
-				<version>${tycho.version}</version>
-
-				<configuration>
-					<compress/>
-				</configuration>
-			</plugin>
-
-			
-			<plugin>
-				<groupId>org.jboss.tools.tycho-plugins</groupId>
-				<artifactId>repository-utils</artifactId>
-				<version>${org.jboss.tools.tycho-plugins.version}</version>
-
-				<executions>
-					<execution>
-						<id>generate-facade</id>
-						<phase>package</phase>
-	
-						<goals>
-							<goal>generate-repository-facade</goal>
-						</goals>
-	
-						<configuration>
-							<siteTemplateFolder>siteTemplate</siteTemplateFolder>
-							
-							<!-- Symbols are used while expanding index.html template -->
-							<symbols>
-								<update.site.name>${project.parent.name}</update.site.name>
-								<target.eclipse.version>4.6.0</target.eclipse.version>
-							</symbols>
-
-							<associateSites>
-							
-							<!-- <site>http://download.eclipse.org/app4mc/updatesites/releases/0.8.3/</site>
-					 		<site>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.10.0/</site> 
-							<site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</site>
-							<site>http://download.eclipse.org/modeling/emf/emf/updates/releases/2.9.2/</site>
-							 -->
-						 
-							</associateSites>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-</project>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/site.xml b/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/site.xml
deleted file mode 100644
index de17901..0000000
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/site.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/org.eclipse.app4mc.transformation.core.feature_0.3.0.qualifier.jar" id="org.eclipse.app4mc.transformation.core.feature" version="0.3.0.qualifier">
-      <category name="APP4MC EMF model Transformation"/>
-   </feature>
-   <feature url="features/org.eclipse.app4mc.transformation.examples.feature_0.3.0.qualifier.jar" id="org.eclipse.app4mc.transformation.examples.feature" version="0.3.0.qualifier">
-      <category name="APP4MC EMF model Transformation"/>
-   </feature>
-   <category-def name="APP4MC EMF model Transformation" label="org.eclipse.app4mc.transformation.p2repo"/>
-</site>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/model/loader/AmaltheaMultiFileLoader.java b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/model/loader/AmaltheaMultiFileLoader.java
index 5134524..831f48f 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/model/loader/AmaltheaMultiFileLoader.java
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/model/loader/AmaltheaMultiFileLoader.java
@@ -72,6 +72,7 @@
 
 		for (File amxmiFile : listFiles) {
 
+			logger.info("loading file :"+amxmiFile.getName());
 			String absolutePath = amxmiFile.getAbsolutePath();
 			final Resource res = resourceSet.createResource(URI.createURI("file:////" + absolutePath));
 			try {
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/TicksTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/TicksTransformer.xtend
index 360c9fb..e9d4b16 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/TicksTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/TicksTransformer.xtend
@@ -29,6 +29,7 @@
 import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil
 import org.eclipse.emf.ecore.util.EcoreUtil
 import templates.AbstractAmaltheaInchronTransformer
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit
 
 @Singleton
 class TicksTransformer extends AbstractAmaltheaInchronTransformer {
@@ -45,12 +46,21 @@
 			EcoreUtil.getRootContainer(amltTask) as Amalthea);
 
 		//get distribution (extended if provided by the model element)
-		val amltCore = amltCores?.get(0)
+		var ProcessingUnit amltCore = null
+		
+		if(amltCores!==null && amltCores.size>0){
+			amltCore=amltCores?.get(0)
+		}
+
 		var amltDistribution = amltTicks?.extended.get(amltCore?.definition)
 		if (amltDistribution === null) {
 			amltDistribution = amltTicks.^default
 		}
 		
+		if(amltDistribution===null)
+		{
+			return
+		}
 		//transform basic elements
 		it.min = createTimeTicks( amltDistribution.lowerBound)
 		it.mean =  createTimeTicks(amltDistribution.average)
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.classpath
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/.classpath
copy to eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.classpath
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.gitignore b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.gitignore
new file mode 100644
index 0000000..7e902e8
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.gitignore
@@ -0,0 +1 @@
+output/*
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.project
similarity index 92%
copy from eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
copy to eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.project
index 7614bd0..f73f982 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/net.sourceforge.plantuml/.project
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>net.sourceforge.plantuml</name>
+	<name>app4m.example.transform.cust.app</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs
copy to eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/.settings/org.eclipse.jdt.core.prefs
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/Cust_ModelTransformation.product b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/Cust_ModelTransformation.product
new file mode 100644
index 0000000..a28ec11
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/Cust_ModelTransformation.product
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Example: Sample Model Transformation" uid="test" id="app4mc.example.transform.app.product" application="app4mc.example.transform.app.application" version="1" useFeatures="false" includeLaunchers="true">
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <programArgs>--input.props &quot;${workspace_loc:app4m.example.transform.cust.app}/input.properties&quot;
+      </programArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
+   </launcherArgs>
+
+   <windowImages/>
+
+   <launcher>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
+   <plugins>
+      <plugin id="app4mc.example.transform.app"/>
+      <plugin id="app4mc.example.transform.m2m"/>
+      <plugin id="app4mc.example.transform.m2t"/>
+      <plugin id="app4mc.example.transform.m2t.cust" fragment="true"/>
+      <plugin id="app4mc.example.transform.samplemodel"/>
+      <plugin id="com.google.guava"/>
+      <plugin id="com.google.inject"/>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="com.inchron.realtime.root"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="javax.xml"/>
+      <plugin id="org.apache.batik.constants"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.i18n"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.batik.util.gui"/>
+      <plugin id="org.apache.commons.cli"/>
+      <plugin id="org.apache.commons.io"/>
+      <plugin id="org.apache.commons.jxpath"/>
+      <plugin id="org.apache.commons.lang"/>
+      <plugin id="org.apache.commons.logging"/>
+      <plugin id="org.apache.commons.math3"/>
+      <plugin id="org.apache.felix.gogo.command"/>
+      <plugin id="org.apache.felix.gogo.command.source"/>
+      <plugin id="org.apache.felix.gogo.runtime"/>
+      <plugin id="org.apache.felix.gogo.runtime.source"/>
+      <plugin id="org.apache.felix.gogo.shell"/>
+      <plugin id="org.apache.felix.gogo.shell.source"/>
+      <plugin id="org.apache.felix.scr"/>
+      <plugin id="org.apache.felix.scr.source"/>
+      <plugin id="org.apache.log4j"/>
+      <plugin id="org.apache.xerces"/>
+      <plugin id="org.apache.xml.resolver"/>
+      <plugin id="org.apache.xml.serializer"/>
+      <plugin id="org.apache.xmlgraphics"/>
+      <plugin id="org.eclipse.app4mc.amalthea.converters.log4j.configuration" fragment="true"/>
+      <plugin id="org.eclipse.app4mc.amalthea.model"/>
+      <plugin id="org.eclipse.app4mc.transformation.application"/>
+      <plugin id="org.eclipse.app4mc.transformation.extensions"/>
+      <plugin id="org.eclipse.compare.core"/>
+      <plugin id="org.eclipse.core.commands"/>
+      <plugin id="org.eclipse.core.contenttype"/>
+      <plugin id="org.eclipse.core.databinding"/>
+      <plugin id="org.eclipse.core.databinding.observable"/>
+      <plugin id="org.eclipse.core.databinding.property"/>
+      <plugin id="org.eclipse.core.expressions"/>
+      <plugin id="org.eclipse.core.filesystem"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.jobs"/>
+      <plugin id="org.eclipse.core.resources"/>
+      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.runtime"/>
+      <plugin id="org.eclipse.core.variables"/>
+      <plugin id="org.eclipse.e4.core.commands"/>
+      <plugin id="org.eclipse.e4.core.contexts"/>
+      <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.annotations"/>
+      <plugin id="org.eclipse.e4.core.di.extensions"/>
+      <plugin id="org.eclipse.e4.core.di.extensions.supplier"/>
+      <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.emf.xpath"/>
+      <plugin id="org.eclipse.e4.ui.bindings"/>
+      <plugin id="org.eclipse.e4.ui.css.core"/>
+      <plugin id="org.eclipse.e4.ui.css.swt"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
+      <plugin id="org.eclipse.e4.ui.di"/>
+      <plugin id="org.eclipse.e4.ui.dialogs"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench"/>
+      <plugin id="org.eclipse.e4.ui.services"/>
+      <plugin id="org.eclipse.e4.ui.widgets"/>
+      <plugin id="org.eclipse.e4.ui.workbench"/>
+      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench3"/>
+      <plugin id="org.eclipse.emf"/>
+      <plugin id="org.eclipse.emf.common"/>
+      <plugin id="org.eclipse.emf.common.ui"/>
+      <plugin id="org.eclipse.emf.ecore"/>
+      <plugin id="org.eclipse.emf.ecore.change"/>
+      <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
+      <plugin id="org.eclipse.emf.ecore.xmi"/>
+      <plugin id="org.eclipse.emf.edit"/>
+      <plugin id="org.eclipse.emf.edit.ui"/>
+      <plugin id="org.eclipse.emf.transaction"/>
+      <plugin id="org.eclipse.emf.transaction.ui"/>
+      <plugin id="org.eclipse.emf.validation"/>
+      <plugin id="org.eclipse.emf.workspace"/>
+      <plugin id="org.eclipse.emf.workspace.ui"/>
+      <plugin id="org.eclipse.equinox.app"/>
+      <plugin id="org.eclipse.equinox.bidi"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.ds"/>
+      <plugin id="org.eclipse.equinox.event"/>
+      <plugin id="org.eclipse.equinox.p2.core"/>
+      <plugin id="org.eclipse.equinox.p2.engine"/>
+      <plugin id="org.eclipse.equinox.p2.metadata"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
+      <plugin id="org.eclipse.equinox.p2.repository"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.region" fragment="true"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.equinox.security"/>
+      <plugin id="org.eclipse.equinox.security.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.equinox.supplement"/>
+      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
+      <plugin id="org.eclipse.equinox.util"/>
+      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
+      <plugin id="org.eclipse.fx.osgi" fragment="true"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.jface.text"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
+      <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.osgi.services.source"/>
+      <plugin id="org.eclipse.osgi.util"/>
+      <plugin id="org.eclipse.sphinx.emf"/>
+      <plugin id="org.eclipse.sphinx.emf.editors"/>
+      <plugin id="org.eclipse.sphinx.emf.editors.forms"/>
+      <plugin id="org.eclipse.sphinx.emf.ui"/>
+      <plugin id="org.eclipse.sphinx.emf.workspace"/>
+      <plugin id="org.eclipse.sphinx.emf.workspace.ui"/>
+      <plugin id="org.eclipse.sphinx.platform"/>
+      <plugin id="org.eclipse.sphinx.platform.ui"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.text"/>
+      <plugin id="org.eclipse.ui"/>
+      <plugin id="org.eclipse.ui.console"/>
+      <plugin id="org.eclipse.ui.forms"/>
+      <plugin id="org.eclipse.ui.ide"/>
+      <plugin id="org.eclipse.ui.navigator"/>
+      <plugin id="org.eclipse.ui.views"/>
+      <plugin id="org.eclipse.ui.views.properties.tabbed"/>
+      <plugin id="org.eclipse.ui.win32" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.eclipse.ui.workbench.texteditor"/>
+      <plugin id="org.eclipse.xtend.lib"/>
+      <plugin id="org.eclipse.xtend.lib.macro"/>
+      <plugin id="org.eclipse.xtext.logging" fragment="true"/>
+      <plugin id="org.eclipse.xtext.xbase.lib"/>
+      <plugin id="org.jdom"/>
+      <plugin id="org.tukaani.xz"/>
+      <plugin id="org.w3c.css.sac"/>
+      <plugin id="org.w3c.dom.events"/>
+      <plugin id="org.w3c.dom.smil"/>
+      <plugin id="org.w3c.dom.svg"/>
+   </plugins>
+
+   <configurations>
+      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="1" />
+      <plugin id="org.eclipse.osgi" autoStart="false" startLevel="1" />
+      <plugin id="org.eclipse.osgi.services" autoStart="false" startLevel="0" />
+      <property name="equinox.use.ds" value="false" />
+   </configurations>
+
+   <preferencesInfo>
+      <targetfile overwrite="false"/>
+   </preferencesInfo>
+
+   <cssInfo>
+   </cssInfo>
+
+</product>
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0074986
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: App
+Bundle-SymbolicName: app4m.example.transform.cust.app
+Bundle-Version: 1.0.0.qualifier
+Automatic-Module-Name: app4m.example.transform.cust.app
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/build.properties b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/build.properties b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input.properties
similarity index 62%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/build.properties
rename to eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input.properties
index 41593a1..4a3a266 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.resourceset.mapper/build.properties
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input.properties
@@ -1,5 +1,5 @@
 # *******************************************************************************
-#  Copyright (c) 2017 - 2018 Robert Bosch GmbH and others.
+#  Copyright (c) 2018 Robert Bosch GmbH and others.
 #  All rights reserved. This program and the accompanying materials
 #  are made available under the terms of the Eclipse Public License 2.0
 #  which accompanies this distribution, and is available at
@@ -9,12 +9,8 @@
 #  	 Robert Bosch GmbH - initial API and implementation
 # 
 # *******************************************************************************
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               epl-2.0.html
-src.includes = about.html,\
-               epl-2.0.html
+input_models_folder=./input/amalthea_models
+m2m_output_folder=./output/m2m_output_models
+m2t_output_folder=./output/m2t_output_text_files
+log_file=./output/transformation.txt
+tranformationConfigIDs=app4mc.example.transform.m2t.cust1.config1
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input/amalthea_models/democar.amxmi b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input/amalthea_models/democar.amxmi
new file mode 100644
index 0000000..276723b
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4m.example.transform.cust.app/input/amalthea_models/democar.amxmi
@@ -0,0 +1,799 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.8" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
+  <commonElements>
+    <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcBrakeForceArbiter" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcABSCalculation" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcSensors" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcSensorPostprocessing" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcCylNumObserver" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcBrakeForceCalculation" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcEngineSensors" tagType="SOFTWARE_COMPONENT" />
+    <tags name="SwcInjIgnActuation" tagType="SOFTWARE_COMPONENT" />
+  </commonElements>
+  <swModel>
+    <tasks name="Task_10MS" stimuli="Timer_10MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="10" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DiagnosisArbiter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleStateMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeSafetyMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ABSCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceActuation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="CaliperPositionCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="StopLightActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="CylNumObserver?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleController?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="APedVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BaseFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="TotalFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="TransientFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="InjectionTimeActuation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="10" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="10" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuBrakePedalSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuDecelerationSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="APedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="144000" upperBound="176000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="160000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="144000" upperBound="176000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="160000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime3?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime4?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime5?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime6?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime3?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime4?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime5?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime6?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime7?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime8?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
+    </runnables>
+    <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="ABSMode" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="APedPosition1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="APedPosition2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="APedSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="APedSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="ArbitratedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="ArbitratedDiagnosisRequest" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BaseFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="BrakeApplication" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakeForce" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakeForceCurrent" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakeForceFeedback" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakeForceVoltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="BrakeMonitorLevel" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakePedalPosition1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakePedalPosition2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakePedalPositionVoltage1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="BrakePedalPositionVoltage2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="BrakeSafetyLevel" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="BrakeSafetyState" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="CalculatedBrakeForce" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="CaliperPosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="CylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="DecelerationRate1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="DecelerationRate2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="DecelerationVoltage1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="DecelerationVoltage2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="DesiredThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="DesiredThrottlePositionVoltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime3" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime4" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime5" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime6" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime7" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="IgnitionTime8" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime3" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime4" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime5" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime6" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime7" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="InjectionTime8" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="MAFRate" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="MAFSensorVoltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="MassAirFlow" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="MonitoredVehicleState" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="ThrottlePosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="ThrottleSensor1Voltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="ThrottleSensor2Voltage" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="TotalFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="TransientFuelMassPerStroke" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="TriggeredCylinderNumber" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VehicleSpeed1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VehicleSpeed2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VehicleSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="VehicleSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="VotedAPedPosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VotedBrakePedalPosition" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VotedDecelerationRate" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VotedVehicleSpeed" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="VotedWheelSpeed" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="WheelSpeed1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="WheelSpeed2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="8" unit="bit" />
+    </labels>
+    <labels name="WheelSpeedVoltage1" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+    <labels name="WheelSpeedVoltage2" constant="false" bVolatile="false" dataStability="noProtection">
+      <size value="16" unit="bit" />
+    </labels>
+  </swModel>
+  <hwModel>
+    <definitions xsi:type="am:ProcessingUnitDefinition" name="DefaultCore" puType="CPU" features="Instructions/IPC_1?type=HwFeature" />
+    <definitions xsi:type="am:MemoryDefinition" name="DefaultMemory">
+      <size value="4" unit="MB" />
+      <accessLatency xsi:type="am:DiscreteValueConstant" value="2" />
+    </definitions>
+    <featureCategories name="Instructions" featureType="performance">
+      <features name="IPC_1" value="1.0" />
+    </featureCategories>
+    <structures name="Democar" structureType="System">
+      <structures name="ECU_1" structureType="ECU">
+        <structures name="Microcontroller_1" structureType="Microcontroller">
+          <modules xsi:type="am:Memory" name="Mem_1" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultMemory?type=MemoryDefinition">
+            <ports name="port" bitWidth="32" priority="0" portType="responder" />
+          </modules>
+          <modules xsi:type="am:ProcessingUnit" name="Core_1" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultCore?type=ProcessingUnitDefinition">
+            <ports name="port" bitWidth="32" priority="0" portType="initiator" />
+          </modules>
+          <connections name="con1" port1="Core_1/port?type=HwPort" port2="Mem_1/port?type=HwPort" />
+        </structures>
+      </structures>
+    </structures>
+    <domains xsi:type="am:FrequencyDomain" name="FrequencyDomain_1" clockGating="false">
+      <defaultValue value="200.0" unit="MHz" />
+    </domains>
+  </hwModel>
+  <osModel>
+    <operatingSystems name="OperatingSystem">
+      <taskSchedulers name="Task_Scheduler_Core_1">
+        <schedulingAlgorithm xsi:type="am:OSEK" />
+      </taskSchedulers>
+    </operatingSystems>
+  </osModel>
+  <stimuliModel>
+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_10MS">
+      <offset value="0" unit="ms" />
+      <recurrence value="10" unit="ms" />
+    </stimuli>
+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_20MS">
+      <offset value="0" unit="ms" />
+      <recurrence value="20" unit="ms" />
+    </stimuli>
+    <stimuli xsi:type="am:PeriodicStimulus" name="Timer_5MS">
+      <offset value="0" unit="ms" />
+      <recurrence value="5" unit="ms" />
+    </stimuli>
+  </stimuliModel>
+  <constraintsModel>
+    <requirements xsi:type="am:ProcessRequirement" name="Deadline_05" severity="Critical" process="Task_5MS?type=Task">
+      <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+        <limitValue value="5" unit="ms" />
+      </limit>
+    </requirements>
+    <requirements xsi:type="am:ProcessRequirement" name="Deadline_10" severity="Critical" process="Task_10MS?type=Task">
+      <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+        <limitValue value="10" unit="ms" />
+      </limit>
+    </requirements>
+    <requirements xsi:type="am:ProcessRequirement" name="Deadline_20" severity="Critical" process="Task_20MS?type=Task">
+      <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+        <limitValue value="20" unit="ms" />
+      </limit>
+    </requirements>
+  </constraintsModel>
+</am:Amalthea>
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/.gitignore b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/.gitignore
index 54f516e..7e902e8 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/.gitignore
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/.gitignore
@@ -1,4 +1 @@
-/bin/
-/target/
-/xtend-gen/
-/output/*
\ No newline at end of file
+output/*
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/Example_Sample_Model_Transformation.product b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/Example_Sample_Model_Transformation.product
index 8ec9b85..35232d1 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/Example_Sample_Model_Transformation.product
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/Example_Sample_Model_Transformation.product
@@ -36,10 +36,13 @@
       <plugin id="javax.annotation"/>
       <plugin id="javax.inject"/>
       <plugin id="javax.xml"/>
+      <plugin id="org.apache.batik.constants"/>
       <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.i18n"/>
       <plugin id="org.apache.batik.util"/>
       <plugin id="org.apache.batik.util.gui"/>
       <plugin id="org.apache.commons.cli"/>
+      <plugin id="org.apache.commons.io"/>
       <plugin id="org.apache.commons.jxpath"/>
       <plugin id="org.apache.commons.lang"/>
       <plugin id="org.apache.commons.logging"/>
@@ -56,8 +59,9 @@
       <plugin id="org.apache.xerces"/>
       <plugin id="org.apache.xml.resolver"/>
       <plugin id="org.apache.xml.serializer"/>
+      <plugin id="org.apache.xmlgraphics"/>
+      <plugin id="org.eclipse.app4mc.amalthea.converters.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
-      <plugin id="org.eclipse.app4mc.amalthea.sphinx"/>
       <plugin id="org.eclipse.app4mc.transformation.application"/>
       <plugin id="org.eclipse.app4mc.transformation.extensions"/>
       <plugin id="org.eclipse.compare.core"/>
@@ -87,6 +91,7 @@
       <plugin id="org.eclipse.e4.ui.css.swt"/>
       <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
       <plugin id="org.eclipse.e4.ui.di"/>
+      <plugin id="org.eclipse.e4.ui.dialogs"/>
       <plugin id="org.eclipse.e4.ui.model.workbench"/>
       <plugin id="org.eclipse.e4.ui.services"/>
       <plugin id="org.eclipse.e4.ui.widgets"/>
@@ -113,6 +118,7 @@
       <plugin id="org.eclipse.equinox.bidi"/>
       <plugin id="org.eclipse.equinox.common"/>
       <plugin id="org.eclipse.equinox.ds"/>
+      <plugin id="org.eclipse.equinox.event"/>
       <plugin id="org.eclipse.equinox.p2.core"/>
       <plugin id="org.eclipse.equinox.p2.engine"/>
       <plugin id="org.eclipse.equinox.p2.metadata"/>
@@ -135,6 +141,7 @@
       <plugin id="org.eclipse.osgi"/>
       <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.osgi.services.source"/>
       <plugin id="org.eclipse.osgi.util"/>
       <plugin id="org.eclipse.sphinx.emf"/>
       <plugin id="org.eclipse.sphinx.emf.editors"/>
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/META-INF/MANIFEST.MF
index 1bf8c14..493f13d 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/META-INF/MANIFEST.MF
@@ -6,3 +6,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.app4mc.transformation.application
+Automatic-Module-Name: app4mc.example.transform.app
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/input/amalthea_models/democar.amxmi b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/input/amalthea_models/democar.amxmi
index 5dc5bfb..276723b 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/input/amalthea_models/democar.amxmi
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/input/amalthea_models/democar.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.2" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.8" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT" />
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT" />
@@ -17,850 +17,506 @@
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10" />
       </customProperties>
-      <callGraph>
-        <graphEntries xsi:type="am:CallSequence">
-          <calls xsi:type="am:TaskRunnableCall" runnable="CheckPlausability?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeActuatorMonitor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="DiagnosisArbiter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="VehicleStateMonitor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeForceCalculation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeSafetyMonitor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="ABSCalculation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeForceActuation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="CaliperPositionCalculation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeActuator?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="StopLightActuator?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakePedalSensorTranslation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakePedalSensorVoter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="DecelerationSensorTranslation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="DecelerationSensorVoter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="CylNumObserver?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="ThrottleController?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="APedVoter?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="BaseFuelMass?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="ThrottleActuator?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="TotalFuelMass?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="TransientFuelMass?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="InjectionTimeActuation?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="IgnitionTiming?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="IgnitionTimeActuation?type=Runnable" />
-        </graphEntries>
-      </callGraph>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DiagnosisArbiter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleStateMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeSafetyMonitor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ABSCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceActuation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="CaliperPositionCalculation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakeActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="StopLightActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="DecelerationSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="CylNumObserver?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleController?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="APedVoter?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="BaseFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="TotalFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="TransientFuelMass?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="InjectionTimeActuation?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable" />
+        </items>
+      </activityGraph>
     </tasks>
     <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10" />
       </customProperties>
-      <callGraph>
-        <graphEntries xsi:type="am:CallSequence">
-          <calls xsi:type="am:TaskRunnableCall" runnable="BrakeForceArbiter?type=Runnable" />
-        </graphEntries>
-      </callGraph>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable" />
+        </items>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10" />
       </customProperties>
-      <callGraph>
-        <graphEntries xsi:type="am:CallSequence">
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuBrakeActuator?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuStopLightActuator?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuBrakePedalSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuDecelerationSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="APedSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="ThrottleSensor?type=Runnable" />
-          <calls xsi:type="am:TaskRunnableCall" runnable="MassAirFlowSensor?type=Runnable" />
-        </graphEntries>
-      </callGraph>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CallSequence" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuBrakePedalSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuDecelerationSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="APedSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable" />
+        </items>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="144000" />
-              <upperBound xsi:type="am:LongObject" value="176000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="160000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="144000" upperBound="176000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="160000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="144000" />
-              <upperBound xsi:type="am:LongObject" value="176000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="160000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="144000" upperBound="176000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="160000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime3?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime4?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime5?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime6?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime3?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime4?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime5?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime6?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime3?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime4?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime5?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime6?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime7?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="InjectionTime8?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime3?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime4?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime5?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime6?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime7?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="InjectionTime8?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited" />
-      <runnableItems xsi:type="am:ExecutionNeed">
-        <default key="Instructions">
-          <value xsi:type="am:NeedDeviation">
-            <deviation>
-              <lowerBound xsi:type="am:LongObject" value="72000" />
-              <upperBound xsi:type="am:LongObject" value="88000" />
-              <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.5">
-                <mean xsi:type="am:LongObject" value="80000" />
-              </distribution>
-            </deviation>
-          </value>
-        </default>
-      </runnableItems>
-      <runnableItems xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited" />
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited" />
+        <items xsi:type="am:Ticks">
+          <default lowerBound="72000" upperBound="88000" xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" pRemainPromille="0.5" average="80000" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited" />
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit" />
@@ -1080,7 +736,7 @@
     <definitions xsi:type="am:ProcessingUnitDefinition" name="DefaultCore" puType="CPU" features="Instructions/IPC_1?type=HwFeature" />
     <definitions xsi:type="am:MemoryDefinition" name="DefaultMemory">
       <size value="4" unit="MB" />
-      <accessLatency xsi:type="am:LatencyConstant" cycles="2" />
+      <accessLatency xsi:type="am:DiscreteValueConstant" value="2" />
     </definitions>
     <featureCategories name="Instructions" featureType="performance">
       <features name="IPC_1" value="1.0" />
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/pom.xml b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/pom.xml
index 3c0c6aa..d994e66 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/pom.xml
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/pom.xml
@@ -4,19 +4,17 @@
 
 	<modelVersion>4.0.0</modelVersion>
 
- 
 	<parent>
-		<relativePath>../../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
+		<relativePath>../../../pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
+		<artifactId>parent</artifactId>
 		<version>0.3.0-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
-	<plugin-id>app4mc.example.transform.app</plugin-id>
-	<examples-installer-location>../../../build/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
-	</properties> 
-	
+		<plugin-id>app4mc.example.transform.app</plugin-id>
+		<examples-installer-location>../../../releng/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
+	</properties> 	
 
 	<artifactId>app4mc.example.transform.app</artifactId>
 	<packaging>jar</packaging>
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/src/app4mc/example/transform/app/SampleApplication.java b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/src/app4mc/example/transform/app/SampleApplication.java
index 0930df4..5833df0 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/src/app4mc/example/transform/app/SampleApplication.java
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.app/src/app4mc/example/transform/app/SampleApplication.java
@@ -53,6 +53,7 @@
 			
 			Object inputModelsFolder = properties.get("input_models_folder");
 			Object m2m_outputModelsFolder = properties.get("m2m_output_folder");
+			Object m2t_output_folder = properties.get("m2t_output_folder");
 			Object logFile = properties.get("log_file");
 
 			if(inputModelsFolder !=null) {
@@ -71,6 +72,14 @@
 				properties.put("m2m_output_folder", newPath);
 				
 			}
+			if(m2t_output_folder !=null) {
+				String path=m2t_output_folder.toString();
+				
+				String newPath=new File(path).exists()?path:new File(propertiesFile.getParent()+File.separator+ path).getCanonicalPath();
+				
+				properties.put("m2t_output_folder", newPath);
+				
+			}
 			if(logFile !=null) {
 				String path=logFile.toString();
 				
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/.gitignore b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/.gitignore
deleted file mode 100644
index b58873f..0000000
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/*
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
index fc78761..255d19d 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
@@ -11,3 +11,4 @@
  org.eclipse.app4mc.amalthea.model;visibility:=reexport,
  org.eclipse.app4mc.transformation.extensions,
  app4mc.example.transform.samplemodel
+Automatic-Module-Name: app4mc.example.transform.m2m
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/pom.xml b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/pom.xml
index ecc5f68..b166eab 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/pom.xml
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/pom.xml
@@ -4,20 +4,18 @@
 
 	<modelVersion>4.0.0</modelVersion>
 
-
 	<parent>
-		<relativePath>../../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
+		<relativePath>../../../pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
+		<artifactId>parent</artifactId>
 		<version>0.3.0-SNAPSHOT</version>
 	</parent>
 
 	<properties>
 		<plugin-id>app4mc.example.transform.m2m</plugin-id>
-		<examples-installer-location>../../../build/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
+		<examples-installer-location>../../../releng/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
 	</properties>
 
-
 	<artifactId>app4mc.example.transform.m2m</artifactId>
 	<packaging>jar</packaging>
 
@@ -106,31 +104,6 @@
 
 			</plugin>
 
-			 
-
-
-			<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-
-			</plugin>
-
-
-
 		</plugins>
 	</build>
 </project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/src/configuration/M2MTransformation.java b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/src/configuration/M2MTransformation.java
index 7e97ee8..d1e05ae 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/src/configuration/M2MTransformation.java
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2m/src/configuration/M2MTransformation.java
@@ -17,7 +17,6 @@
 
 import java.util.Properties;
 
-import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToModelConfig;
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.classpath b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.classpath
similarity index 95%
rename from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.classpath
rename to eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.classpath
index 325150d..428337e 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.classpath
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="xtend-gen"/>
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.project
similarity index 92%
copy from eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project
copy to eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.project
index 5f0bcdd..9221ed3 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.content.extractor/.project
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.emfutils.content.extractor</name>
+	<name>app4mc.example.transform.m2t.cust</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs
copy to eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/.settings/org.eclipse.jdt.core.prefs
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2d3d8f9
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Cust
+Bundle-SymbolicName: app4mc.example.transform.m2t.cust;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Fragment-Host: app4mc.example.transform.m2t;bundle-version="0.3.0"
+Automatic-Module-Name: app4mc.example.transform.m2t.cust
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/build.properties b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/build.properties
new file mode 100644
index 0000000..e3023e1
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               fragment.xml
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/fragment.xml b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/fragment.xml
new file mode 100644
index 0000000..e83f305
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/fragment.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<fragment>
+   <extension
+         point="org.eclipse.app4mc.transformation.configuration">
+      <config
+            enabled="true"
+            id="app4mc.example.transform.m2t.cust1.config1"
+            m2t_class="configuration.M2TTransformation"
+            module_class="custmodule.CustM2TInjectorModule">
+      </config>
+   </extension>
+
+</fragment>
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custTemplates/CustTransformer.xtend b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custTemplates/CustTransformer.xtend
new file mode 100644
index 0000000..650c16f
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custTemplates/CustTransformer.xtend
@@ -0,0 +1,24 @@
+package custTemplates
+
+import org.eclipse.app4mc.amalthea.model.Amalthea
+import templates.M2T_Output_Transformer
+
+class CustTransformer extends M2T_Output_Transformer {
+	/**
+	 * Creates output with a "template only" style (like Xpand/Xtend).
+	 */
+	  override String generateOutput1(Amalthea amalthea) '''
+		 Customer template
+		 «super.generateOutput1(amalthea)»
+	'''
+
+
+	/**
+	 * Creates output with a combination of template and functions.
+	 * This allows a more flexible use of utility functions and lambdas.
+	 */
+	override String generateOutput2(Amalthea amalthea) '''
+	Customer template
+	«super.generateOutput2(amalthea)»
+	'''
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custmodule/CustM2TInjectorModule.java b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custmodule/CustM2TInjectorModule.java
new file mode 100644
index 0000000..700a50f
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t.cust/src/custmodule/CustM2TInjectorModule.java
@@ -0,0 +1,32 @@
+ /**
+ ********************************************************************************
+ * Copyright (c) 2018 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package custmodule;
+
+import custTemplates.CustTransformer;
+import module.DefaultM2TInjectorModule;
+import templates.M2T_Output_Transformer;
+
+public class CustM2TInjectorModule extends DefaultM2TInjectorModule {
+
+
+	@Override
+	protected void initializeBaseConfiguration() {
+		super.initializeBaseConfiguration();
+		bind(M2T_Output_Transformer.class).to(CustTransformer.class);
+	}
+
+ 
+}
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/.gitignore b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
index 09344bd..d7e8c84 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
@@ -11,3 +11,4 @@
  org.eclipse.app4mc.amalthea.model;visibility:=reexport,
  org.eclipse.app4mc.transformation.extensions
 Export-Package: module
+Automatic-Module-Name: app4mc.example.transform.m2t
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/pom.xml b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/pom.xml
index 46ba533..8b01bdf 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/pom.xml
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/pom.xml
@@ -4,19 +4,17 @@
 
 	<modelVersion>4.0.0</modelVersion>
 
- 
 	<parent>
-		<relativePath>../../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
+		<relativePath>../../../pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
+		<artifactId>parent</artifactId>
 		<version>0.3.0-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
-	<plugin-id>app4mc.example.transform.m2t</plugin-id>
-	<examples-installer-location>../../../build/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
-	</properties> 
-	
+		<plugin-id>app4mc.example.transform.m2t</plugin-id>
+		<examples-installer-location>../../../releng/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
+	</properties> 	
 
 	<artifactId>app4mc.example.transform.m2t</artifactId>
 	<packaging>jar</packaging>
@@ -105,25 +103,6 @@
 				</executions>
 
 			</plugin>
-			
-				<plugin>
-<groupId>org.eclipse.xtend</groupId>
-<artifactId>xtend-maven-plugin</artifactId>
-<version>2.14.0</version>
-<executions>
-	<execution>
-		<goals>
-			<goal>compile</goal>
-			<goal>xtend-install-debug-info</goal>
-			<goal>testCompile</goal>
-			<goal>xtend-test-install-debug-info</goal>
-		</goals>
-	</execution>
-</executions>
-<configuration>
-	<outputDirectory>xtend-gen</outputDirectory>
-</configuration>
-</plugin>
 		</plugins>
 	</build>
 </project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/configuration/M2TTransformation.java b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/configuration/M2TTransformation.java
index a54b35f..6fd2684 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/configuration/M2TTransformation.java
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/configuration/M2TTransformation.java
@@ -17,7 +17,6 @@
 
 import java.util.Properties;
 
-import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToTextConfig;
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/AmaltheaModel2TextTransformer.xtend b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/AmaltheaModel2TextTransformer.xtend
index 4fb9079..aea52ce 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/AmaltheaModel2TextTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/AmaltheaModel2TextTransformer.xtend
@@ -26,7 +26,7 @@
 			for (model : resource.contents) {
 				// TODO: model is a Amalthea model
 				// check javadoc : https://www.eclipse.org/xtend/documentation/204_activeannotations.html#active-annotations-expression 
-				logger.info("Processing file : " + resource.URI)
+				getLogger.info("Processing file : " + resource.URI)
 
 				var String outputFolder = getProperty("m2t_output_folder");
 				val textGenerator = new M2T_Output_Transformer
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/M2T_Output_Transformer.xtend b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/M2T_Output_Transformer.xtend
index 315f827..b3186c5 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/M2T_Output_Transformer.xtend
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.m2t/src/templates/M2T_Output_Transformer.xtend
@@ -12,9 +12,8 @@
 package templates
 
 import org.eclipse.app4mc.amalthea.model.Amalthea
-import org.eclipse.app4mc.amalthea.model.CallSequence
+import org.eclipse.app4mc.amalthea.model.RunnableCall
 import org.eclipse.app4mc.amalthea.model.Task
-import org.eclipse.app4mc.amalthea.model.TaskRunnableCall
 import org.eclipse.app4mc.amalthea.model.util.ModelUtil
 import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil
 import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
@@ -33,14 +32,10 @@
 		-----------------------------------------------
 		Task: «task.name»
 		
-			«var graphEntries=task.callGraph.graphEntries»
+			«var graphEntries=task.activityGraph.items»
 			«FOR graphEntry: graphEntries»
-				«IF graphEntry instanceof CallSequence»
-					«FOR runnableItem: graphEntry.calls»
-						«IF runnableItem instanceof TaskRunnableCall»
-							Associated Runnable: «(runnableItem as TaskRunnableCall).runnable.name»
-						«ENDIF»
-					«ENDFOR»
+				«IF graphEntry instanceof RunnableCall»
+							Associated Runnable: «(graphEntry as  RunnableCall).runnable.name»
 				«ENDIF»
 			«ENDFOR»
 		«ENDFOR»
@@ -68,8 +63,8 @@
 	'''
 		
 	def runnableNamesOf(Task task) {
-		SoftwareUtil.collectCalls(task, null, [e | e instanceof TaskRunnableCall])
-			.map[e | (e as TaskRunnableCall).runnable.name]
+		SoftwareUtil.collectActivityGraphItems(task.activityGraph, null, [e | e instanceof RunnableCall])
+			.map[e | (e as RunnableCall).runnable.name]
 			.sort
 	}
 	
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/.gitignore b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/META-INF/MANIFEST.MF
index 338dbe4..580b7eb 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/META-INF/MANIFEST.MF
@@ -13,3 +13,4 @@
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore;visibility:=reexport
 Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: app4mc.example.transform.samplemodel
diff --git a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/pom.xml b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/pom.xml
index d7d20a7..b60274e 100644
--- a/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/pom.xml
+++ b/eclipse-tools/model-transformation/examples/sample-model-transformation/app4mc.example.transform.samplemodel/pom.xml
@@ -4,17 +4,16 @@
 
 	<modelVersion>4.0.0</modelVersion>
 
- 
 	<parent>
-		<relativePath>../../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
+		<relativePath>../../../pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
+		<artifactId>parent</artifactId>
 		<version>0.3.0-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
-	<plugin-id>app4mc.example.transform.samplemodel</plugin-id>
-	<examples-installer-location>../../../build/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
+		<plugin-id>app4mc.example.transform.samplemodel</plugin-id>
+		<examples-installer-location>../../../releng/org.eclipse.app4mc.transformation.examples.installer</examples-installer-location>
 	</properties> 
 	
 
diff --git a/eclipse-tools/model-transformation/features/.gitignore b/eclipse-tools/model-transformation/features/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/features/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/.gitignore b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/pom.xml b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/pom.xml
deleted file mode 100644
index adf4d71..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.3rdparty.feature/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.3rdparty.feature</artifactId>
-	<packaging>eclipse-feature</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/.gitignore b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/pom.xml b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/pom.xml
deleted file mode 100644
index a188162..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.core.feature/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.core.feature</artifactId>
-	<packaging>eclipse-feature</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/.gitignore b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/pom.xml b/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/pom.xml
deleted file mode 100644
index 898fd52..0000000
--- a/eclipse-tools/model-transformation/features/org.eclipse.app4mc.transformation.examples.feature/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.examples.feature</artifactId>
-	<packaging>eclipse-feature</packaging>
-
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
index 3ade288..735dc74 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
@@ -17,3 +17,4 @@
  org.eclipse.app4mc.transformation.extensions
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.transformation.application.base
+Automatic-Module-Name: org.eclipse.app4mc.transformation.application
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/pom.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/pom.xml
deleted file mode 100644
index ab3a4d9..0000000
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.application</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-
-
-	<build>
-		<plugins>
-			 
-
-			<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-
-			</plugin>
-
-
-
-		</plugins>
-	</build>
-	
-	
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/Application.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/Application.java
index c0b8a2d..2f5267b 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/Application.java
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/Application.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2018-2019 Robert Bosch GmbH.
+ * Copyright (c) 2018-2020 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -53,7 +53,7 @@
 			System.out.println(
 					"ERROR !! Unable to start transformation as required parameters are not set in input properties file");
 
-			return new Integer(-1);
+			return Integer.valueOf(-1);
 		}
 
 		return IApplication.EXIT_OK;
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/ExecuteTransformation.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/ExecuteTransformation.xtend
index 545ca6b..cacccc3 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/ExecuteTransformation.xtend
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/org/eclipse/app4mc/transformation/application/base/ExecuteTransformation.xtend
@@ -25,7 +25,6 @@
 import org.eclipse.app4mc.transformation.extensions.CustomObjectsStore
 import org.eclipse.app4mc.transformation.extensions.base.templates.Model2ModelRootTransformer
 import org.eclipse.app4mc.transformation.extensions.base.templates.Model2TextRootTransformer
-import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
 
 class ExecuteTransformation {
 
@@ -68,6 +67,8 @@
 								
 				Model2ModelRootTransformer.injector=injector
 
+				Model2ModelRootTransformer.logger=logger
+
 				model2ModelTransformer.m2mTransformation(m2mConfig.inputResourceSet, m2mConfig.ouputResourceSet)
 			}
 
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.gitignore
deleted file mode 100644
index d3fb94c..0000000
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/target/
-/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
index 91d0593..548cb93 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
@@ -15,3 +15,4 @@
 Export-Package: org.eclipse.app4mc.transformation.extensions,
  org.eclipse.app4mc.transformation.extensions.base.templates,
  org.eclipse.app4mc.transformation.extensions.executiontype
+Automatic-Module-Name: org.eclipse.app4mc.transformation.extensions
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/pom.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/pom.xml
deleted file mode 100644
index 47d9ea1..0000000
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.transformation.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.transformation</groupId>
-		<artifactId>org.eclipse.app4mc.transformation.build</artifactId>
-		<version>0.3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.transformation.extensions</artifactId>
-	<packaging>eclipse-plugin</packaging>
-
-
-
-	<build>
-		<plugins>
-
-			<plugin>
-				<groupId>org.eclipse.xtend</groupId>
-				<artifactId>xtend-maven-plugin</artifactId>
-				<version>2.14.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>compile</goal>
-							<goal>xtend-install-debug-info</goal>
-							<goal>testCompile</goal>
-							<goal>xtend-test-install-debug-info</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<outputDirectory>xtend-gen</outputDirectory>
-				</configuration>
-			</plugin>
-			
-			
-			
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/AbstractTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/AbstractTransformer.xtend
index 4e3c3a1..e414204 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/AbstractTransformer.xtend
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/AbstractTransformer.xtend
@@ -27,7 +27,7 @@
 	
 	static public CustomObjectsStore customObjsStore = new CustomObjectsStore
 
-	static private Logger logger
+	static public Logger logger
 
     static public Properties properties
 	
diff --git a/eclipse-tools/model-transformation/pom.xml b/eclipse-tools/model-transformation/pom.xml
new file mode 100644
index 0000000..5a96e20
--- /dev/null
+++ b/eclipse-tools/model-transformation/pom.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.eclipse.app4mc.transformation</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.3.0-SNAPSHOT</version>
+   
+  <packaging>pom</packaging>
+  
+  <name>Model Transformation</name>
+ 
+  <properties>
+    <tycho.version>1.6.0</tycho.version>
+    
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+ 
+	<pluginRepositories>
+		<pluginRepository>
+			<id>cbi</id>
+			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</pluginRepository>
+	</pluginRepositories>
+
+	<modules>
+
+		<!-- example plugins -->
+		<module>examples/sample-model-transformation/app4mc.example.transform.samplemodel</module>
+		<module>examples/sample-model-transformation/app4mc.example.transform.m2m</module>
+		<module>examples/sample-model-transformation/app4mc.example.transform.m2t</module>
+		<module>examples/sample-model-transformation/app4mc.example.transform.app</module>
+
+		<!-- Amlt2Inchron transformation plugins -->
+		<!--
+		<module>examples/amlt2inchron/com.inchron.realtime.root</module>
+		<module>examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.app</module>
+		<module>examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m</module>
+		<module>examples/amlt2inchron/org.eclipse.app4mc.transformation.3rdparty.libs</module>
+		-->
+
+		<!-- core -->
+  		<module>plugins</module>
+		<module>features</module>
+		<module>releng</module>
+	</modules>
+  
+  	<build>
+
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.xtend</groupId>
+				<artifactId>xtend-maven-plugin</artifactId>
+				<version>2.20.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>compile</goal>
+							<goal>xtend-install-debug-info</goal>
+							<goal>testCompile</goal>
+							<goal>xtend-test-install-debug-info</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<outputDirectory>${basedir}/xtend-gen</outputDirectory>
+					<testOutputDirectory>${basedir}/xtend-gen</testOutputDirectory>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<extensions>true</extensions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-compiler-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<verbose>true</verbose>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<environments>
+						<environment>
+							<os>linux</os>
+							<ws>gtk</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>win32</os>
+							<ws>win32</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>macosx</os>
+							<ws>cocoa</ws>
+							<arch>x86_64</arch>
+						</environment>
+					</environments>
+
+					<target>
+						<artifact>
+							<groupId>org.eclipse.app4mc.transformation</groupId>
+							<artifactId>org.eclipse.app4mc.transformation.target</artifactId>
+							<version>0.3.0-SNAPSHOT</version>
+						</artifact>
+					</target>
+					<targetDefinitionIncludeSource>honor</targetDefinitionIncludeSource>
+				</configuration>
+			</plugin>
+			
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<!-- argLine>${tycho.testArgLine}</argLine> -->
+					<forkMode>never</forkMode>
+					<includes>
+						<include>**/*Test.*</include>
+					</includes>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<version>${tycho.version}</version>
+
+				<executions>
+					<execution>
+						<id>plugin-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+		   <plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<version>3.0.0</version>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>${basedir}</directory>
+							<includes>
+								<include>**/xtend-gen/**</include>
+							</includes>
+							<followSymlinks>false</followSymlinks>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>sign</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>1.1.3</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<phase>package</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>  
+</project>
diff --git a/eclipse-tools/model-transformation/build/dev_utils/.project b/eclipse-tools/model-transformation/releng/dev_utils/.project
similarity index 100%
rename from eclipse-tools/model-transformation/build/dev_utils/.project
rename to eclipse-tools/model-transformation/releng/dev_utils/.project
diff --git a/eclipse-tools/model-transformation/releng/dev_utils/workingSets.psf b/eclipse-tools/model-transformation/releng/dev_utils/workingSets.psf
new file mode 100644
index 0000000..7d81ca4
--- /dev/null
+++ b/eclipse-tools/model-transformation/releng/dev_utils/workingSets.psf
@@ -0,0 +1,41 @@
+<psf version="2.0">
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529215332641_1" label="transformation.framework" name="transformation.framework">
+<item elementID="=org.eclipse.app4mc.transformation.application" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=org.eclipse.app4mc.transformation.extensions" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.core.feature" type="4" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.3rdparty.feature" type="4" />
+</workingSets>
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529215338148_2" label="inchron.transformation" name="inchron.transformation">
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.to.inchron.feature" type="4" />
+<item elementID="=org.eclipse.app4mc.transform.to.inchron.app" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=org.eclipse.app4mc.transform.to.inchron.m2m" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=org.eclipse.app4mc.transformation.3rdparty.libs" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=com.inchron.realtime.root" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=org.eclipse.app4mc.transform.to.inchron.product" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+</workingSets>
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529439029677_8" label="sample.model.transformation.example" name="sample.model.transformation.example">
+<item elementID="=app4mc.example.transform.app" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=app4mc.example.transform.m2m" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=app4mc.example.transform.m2t" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=app4mc.example.transform.samplemodel" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.examples.feature" type="4" />
+</workingSets>
+
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529439029677_24" label="sample.model.transformation.example.customization" name="sample.model.transformation.example.customization">
+<item elementID="=app4m.example.transform.cust.app" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item elementID="=app4mc.example.transform.m2t.cust" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+</workingSets>
+
+
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529914625380_12" label="build" name="build">
+<item elementID="=org.eclipse.app4mc.transformation.examples.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.p2repo" type="4" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/dev_utils" type="4" />
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.target" type="4" />
+</workingSets>
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529915202554_18" label="Examples_Builders" name="Examples_Builders">
+<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.app4mc.transformation.examples.feature" type="4" />
+<item elementID="=org.eclipse.app4mc.transformation.examples.installer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory" />
+</workingSets>
+<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1529915327977_23" label="features" name="features" />
+</psf>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.classpath b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.classpath
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.classpath
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.classpath
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.gitignore b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.gitignore
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.gitignore
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.gitignore
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.project b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.project
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.project
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.project
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/.settings/org.eclipse.jdt.core.prefs
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF
similarity index 81%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF
index 8ffc518..a845380 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/META-INF/MANIFEST.MF
@@ -6,3 +6,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.common.ui
 Bundle-Vendor: Eclipse APP4MC
+Automatic-Module-Name: org.eclipse.app4mc.transformation.examples.installer
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/about.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/about.html
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/about.html
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/about.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/build.properties b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/build.properties
similarity index 94%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/build.properties
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/build.properties
index 4d179bc..42bd0cb 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/build.properties
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/build.properties
@@ -18,9 +18,7 @@
                epl-2.0.html
 src.includes = examples/,\
                icons/,\
-               pom.xml,\
                copyExampleLib.ant,\
                about.html,\
-               launch/,\
                generateTransformationExamplesBuilders.ant,\
                epl-2.0.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/copyExampleLib.ant b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/copyExampleLib.ant
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/copyExampleLib.ant
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/copyExampleLib.ant
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/epl-2.0.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/epl-2.0.html
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/epl-2.0.html
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/epl-2.0.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/generateTransformationExamplesBuilders.ant b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/generateTransformationExamplesBuilders.ant
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/generateTransformationExamplesBuilders.ant
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/generateTransformationExamplesBuilders.ant
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/icons/full/ctool16/NewEMFExample.gif b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/icons/full/ctool16/NewEMFExample.gif
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/icons/full/ctool16/NewEMFExample.gif
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/icons/full/ctool16/NewEMFExample.gif
Binary files differ
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/icons/full/wizban/NewEMFExample.gif b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/icons/full/wizban/NewEMFExample.gif
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/icons/full/wizban/NewEMFExample.gif
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/icons/full/wizban/NewEMFExample.gif
Binary files differ
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/org.eclipse.app4mc.transformation.examples.installer generateTransformationExamplesBuilders.ant.launch b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/org.eclipse.app4mc.transformation.examples.installer generateTransformationExamplesBuilders.ant.launch
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/org.eclipse.app4mc.transformation.examples.installer generateTransformationExamplesBuilders.ant.launch
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/org.eclipse.app4mc.transformation.examples.installer generateTransformationExamplesBuilders.ant.launch
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/plugin.properties b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/plugin.properties
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/plugin.properties
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/plugin.properties
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/plugin.xml b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/plugin.xml
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.examples.installer/plugin.xml
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.examples.installer/plugin.xml
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/.project b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/.project
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/.project
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/.project
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/about.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/about.html
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/about.html
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/about.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/category.xml b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
similarity index 72%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/category.xml
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
index de17901..3cdc72e 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/category.xml
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
    <feature url="features/org.eclipse.app4mc.transformation.core.feature_0.3.0.qualifier.jar" id="org.eclipse.app4mc.transformation.core.feature" version="0.3.0.qualifier">
-      <category name="APP4MC EMF model Transformation"/>
+      <category name="APP4MC EMF Model Transformation"/>
    </feature>
    <feature url="features/org.eclipse.app4mc.transformation.examples.feature_0.3.0.qualifier.jar" id="org.eclipse.app4mc.transformation.examples.feature" version="0.3.0.qualifier">
-      <category name="APP4MC EMF model Transformation"/>
+      <category name="APP4MC EMF Model Transformation"/>
    </feature>
-   <category-def name="APP4MC EMF model Transformation" label="org.eclipse.app4mc.transformation.p2repo"/>
+   <category-def name="APP4MC EMF Model Transformation" label="org.eclipse.app4mc.transformation.p2repo"/>
 </site>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html
diff --git a/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/pom.xml b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/pom.xml
new file mode 100644
index 0000000..f83d361
--- /dev/null
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>org.eclipse.app4mc.transformation.p2repo</artifactId>
+
+  <packaging>eclipse-repository</packaging>
+
+  <parent>
+	<relativePath>../../pom.xml</relativePath>
+	<groupId>org.eclipse.app4mc.transformation</groupId>
+	<artifactId>parent</artifactId>
+	<version>0.3.0-SNAPSHOT</version>
+  </parent>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/siteTemplate/index.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/siteTemplate/index.html
similarity index 100%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/siteTemplate/index.html
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.p2repo/siteTemplate/index.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/.project
similarity index 76%
rename from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
rename to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/.project
index e5155e4..961dcee 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.transformation.build</name>
+	<name>org.eclipse.app4mc.transformation.target</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/about.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/about.html
similarity index 100%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/about.html
copy to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/about.html
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/epl-2.0.html
similarity index 100%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.p2repo/epl-2.0.html
copy to eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/epl-2.0.html
diff --git a/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target
new file mode 100644
index 0000000..5e21542
--- /dev/null
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="Model Transformation Target" sequenceNumber="1589780902">
+  <locations>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
+      <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
+      <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
+      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.1.201812070911"/>
+      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.xtext.runtime.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.sdk.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.xbase.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
+      <unit id="org.eclipse.xtend.sdk.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
+      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
+      <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
+      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
+      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
+      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
+      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
+      <unit id="javax.xml" version="1.3.4.v201005080400"/>
+      <unit id="org.jdom" version="1.1.1.v201101151400"/>
+      <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
+      <unit id="com.google.inject" version="3.0.0.v201605172100"/>
+      <repository location="http://download.eclipse.org/releases/2019-12"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="0.9.8.202004301410"/>
+      <repository location="http://download.eclipse.org/app4mc/updatesites/releases/0.9.8"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sphinx.sdk.feature.group" version="0.11.2.201802230805"/>
+      <repository location="http://download.eclipse.org/sphinx/updates/0.11.x"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+      <repository location="http://download.eclipse.org/cbi/updates/license"/>
+    </location>
+  </locations>
+</target>
diff --git a/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd
new file mode 100644
index 0000000..1b99f40
--- /dev/null
+++ b/eclipse-tools/model-transformation/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd
@@ -0,0 +1,41 @@
+target "Model Transformation Target"
+
+with source allEnvironments
+
+location "http://download.eclipse.org/releases/2019-12" {
+	org.eclipse.sdk.ide
+	org.eclipse.emf.ecore.xcore.lib.feature.group
+	org.eclipse.emf.sdk.feature.group
+	org.eclipse.emf.transaction.feature.group
+	org.eclipse.emf.validation.feature.group
+	org.eclipse.emf.workspace.feature.group
+	org.eclipse.xtext.runtime.feature.group
+	org.eclipse.xtext.sdk.feature.group
+	org.eclipse.xtext.xbase.feature.group
+	org.eclipse.xtext.xbase.lib.feature.group
+	org.eclipse.xtend.sdk.feature.group
+	org.eclipse.xpand.sdk.feature.group
+	org.apache.commons.cli
+	org.apache.commons.lang
+	org.apache.log4j
+	org.apache.xerces
+	org.apache.xalan
+	org.apache.xml.resolver
+	org.apache.xml.serializer
+	javax.xml
+	org.jdom
+	com.google.guava
+	com.google.inject
+}
+
+location "http://download.eclipse.org/app4mc/updatesites/releases/0.9.8" {
+	org.eclipse.app4mc.platform.sdk.feature.group
+}
+
+location "http://download.eclipse.org/sphinx/updates/0.11.x" {
+	org.eclipse.sphinx.sdk.feature.group
+}
+
+location "http://download.eclipse.org/cbi/updates/license" {
+	org.eclipse.license.feature.group
+}
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/.gitignore b/eclipse-tools/sca2amalthea/.gitignore
new file mode 100644
index 0000000..f1c734e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/.gitignore
@@ -0,0 +1,5 @@
+.metadata/
+
+# Eclipse target directories
+bin/
+target/
diff --git a/eclipse-tools/sca2amalthea/.mvn/extensions.xml b/eclipse-tools/sca2amalthea/.mvn/extensions.xml
new file mode 100644
index 0000000..710a9ec
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/.mvn/extensions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extensions>
+  <extension>
+    <groupId>org.eclipse.tycho.extras</groupId>
+    <artifactId>tycho-pomless</artifactId>
+    <version>1.6.0</version>
+  </extension>
+</extensions>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.project b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.project
deleted file mode 100644
index bbe6f6b..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.app4mc.sca2amalthea.build</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/META-INF/MANIFEST.MF
deleted file mode 100644
index d4b56df..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,6 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Build
-Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.build
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse.org
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/build.properties b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/build.properties
deleted file mode 100644
index 037c534..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-bin.includes = META-INF/,\

-               epl-2.0.html

-src.includes = epl-2.0.html

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/pom.xml b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/pom.xml
deleted file mode 100644
index b25d2cc..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/pom.xml
+++ /dev/null
@@ -1,202 +0,0 @@
-<project>

-  <modelVersion>4.0.0</modelVersion>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-  <version>1.0.0.qualifier</version> 

-  <packaging>pom</packaging>

-  <name>SCA2AMALTHEA</name>

- 

-	<properties>

-		<tycho.version>0.22.0</tycho.version>

-		<jacoco.version>0.7.4.201502262128</jacoco.version>

-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

-		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

-		<mars-repo.url>http://download.eclipse.org/releases/mars</mars-repo.url>

-		<amalthea-repo.url>http://download.eclipse.org/app4mc/updatesites/releases/0.8.1/</amalthea-repo.url>

-		<orbit-repo.url>http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository/</orbit-repo.url>

-		<ease-repo-url>http://download.eclipse.org/ease/update/release</ease-repo-url>

-		<sphinx-repo-url>http://download.eclipse.org/sphinx/updates/interim</sphinx-repo-url>

-	</properties>

-  	<repositories>

-<repository>

-			<id>amalthea</id>

-			<url>${amalthea-repo.url}</url>

-			<layout>p2</layout>

-		</repository>

-		<repository>

-			<id>mars</id>

-			<url>${mars-repo.url}</url>

-			<layout>p2</layout>

-		</repository>

-		<repository>

-			<id>orbit</id>

-			<url>${orbit-repo.url}</url>

-			<layout>p2</layout>

-		</repository>

-		<repository>

-			<id>ease</id>

-			<url>${ease-repo-url}</url>

-			<layout>p2</layout>

-		</repository>

-		<repository>

-			<id>sphinx</id>

-			<url>${sphinx-repo-url}</url>

-			<layout>p2</layout>

-		</repository>

-	</repositories>

-  

-

-  <modules>

-  	<!-- Plugins -->

-<module>../../plugins/org.eclipse.app4mc.sca.amalthea.loader</module>

-<module>../../plugins/org.eclipse.app4mc.sca.amalthea.model.utils</module>

-<module>../../plugins/org.eclipse.app4mc.sca.logging</module>

-<module>../../plugins/org.eclipse.app4mc.sca.scheduling.loader</module>

-<module>../../plugins/org.eclipse.app4mc.sca.ui</module>

-<module>../../plugins/org.eclipse.app4mc.sca.util</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.exporter</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.ir</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.ir.loader</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.llvm</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.serialization</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.ui</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.utils</module>

-<module>../../plugins/org.eclipse.app4mc.sca2amalthea.docu</module>

-

-

-    <!-- Tests -->

-  

-    <!-- Features -->

-    <module>../../features/org.eclipse.app4mc.sca2amalthea.feature</module>

-<module>../../features/org.eclipse.app4mc.sca2amalthea.feature.sdk</module>

-      

-	  

-    <!-- P2Repo -->

-    <module>../org.eclipse.app4mc.sca2amalthea.updatesite</module>

-

-  </modules>

-  

-  

-  	<build>

-		<plugins>

-			<plugin>

-				<groupId>org.eclipse.tycho</groupId>

-				<artifactId>tycho-maven-plugin</artifactId>

-				<version>${tycho.version}</version>

-				<extensions>true</extensions>

-				<configuration>

-

-				</configuration>

-			</plugin>

-

-			<plugin>

-				<groupId>org.eclipse.tycho</groupId>

-				<artifactId>tycho-compiler-plugin</artifactId>

-				<version>${tycho.version}</version>

-				<configuration>

-					<verbose>true</verbose>

-					<source>1.8</source>

-					<target>1.8</target>

-				</configuration>

-			</plugin>

-

-			<plugin>

-				<groupId>org.eclipse.tycho</groupId>

-				<artifactId>target-platform-configuration</artifactId>

-				<version>${tycho.version}</version>

-				<configuration>

-					<dependency-resolution>

-						<extraRequirements>

-							<requirement>

-								<type>eclipse-plugin</type>

-								<id>org.hamcrest</id>

-								<versionRange>0.0.0</versionRange>

-							</requirement>

-						</extraRequirements>

-					</dependency-resolution>

-					<environments>

-						<environment>

-							<os>linux</os>

-							<ws>gtk</ws>

-							<arch>x86</arch>

-						</environment>

-						<environment>

-							<os>linux</os>

-							<ws>gtk</ws>

-							<arch>x86_64</arch>

-						</environment>

-						<environment>

-							<os>win32</os>

-							<ws>win32</ws>

-							<arch>x86</arch>

-						</environment>

-						<environment>

-							<os>win32</os>

-							<ws>win32</ws>

-							<arch>x86_64</arch>

-						</environment>

-						<environment>

-							<os>macosx</os>

-							<ws>cocoa</ws>

-							<arch>x86_64</arch>

-						</environment>

-					</environments>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.tycho</groupId>

-				<artifactId>tycho-surefire-plugin</artifactId>

-				<version>${tycho.version}</version>

-				<configuration>

-					<!-- argLine>${tycho.testArgLine}</argLine> -->

-					<forkMode>never</forkMode>

-					<includes>

-						<include>**/*Test.*</include>

-					</includes>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.jacoco</groupId>

-				<artifactId>jacoco-maven-plugin</artifactId>

-				<version>0.7.4.201502262128</version>

-				<configuration>

-					<excludes>

-

-					</excludes>

-				</configuration>

-				<executions>

-					<!-- Prepares the property pointing to the JaCoCo runtime agent which

-						is passed as VM argument when Maven the Surefire plugin is executed. -->

-					<execution>

-						<id>pre-unit-test</id>

-						<goals>

-							<goal>prepare-agent</goal>

-						</goals>

-						<configuration>

-							<!-- Sets the path to the file which contains the execution data. -->

-							<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>

-						</configuration>

-					</execution>

-					<!-- Ensures that the code coverage report for unit tests is created

-						after unit tests have been run. -->

-					<execution>

-						<id>post-unit-test</id>

-						<phase>verify</phase>

-						<goals>

-							<goal>report</goal>

-						</goals>

-						<configuration>

-							<!-- Sets the path to the file which contains the execution data. -->

-							<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>

-							<!-- Sets the output directory for the code coverage report. -->

-							<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-  

-  

-</project>

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.gitignore b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/artifacts.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/artifacts.jar
deleted file mode 100644
index f5e92c9..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/artifacts.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml
deleted file mode 100644
index 04780f3..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site>

-   <feature url="features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.qualifier.jar" id="org.eclipse.app4mc.sca2amalthea.feature" version="1.0.0.qualifier">

-      <category name="SCA2AMALTHEA"/>

-   </feature>

-   <feature url="features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.qualifier.jar" id="org.eclipse.app4mc.sca2amalthea.feature.sdk" version="1.0.0.qualifier">

-      <category name="SCA2AMALTHEA"/>

-   </feature>

-   <category-def name="SCA2AMALTHEA" label="SCA2AMALTHEA"/>

-</site>

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/content.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/content.jar
deleted file mode 100644
index c45a41d..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/content.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.201708181120.jar
deleted file mode 100644
index 2e9ed7c..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.201708181120.jar
deleted file mode 100644
index 65d1d95..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.exporter_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.exporter_1.0.0.201708181120.jar
deleted file mode 100644
index 430489c..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.exporter_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader_1.0.0.201708181120.jar
deleted file mode 100644
index a20f8f4..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir_0.1.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir_0.1.0.201708181120.jar
deleted file mode 100644
index 9dc3fff..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir_0.1.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.llvm_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.llvm_1.0.0.201708181120.jar
deleted file mode 100644
index 20b1e80..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.llvm_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher_1.0.0.201708181120.jar
deleted file mode 100644
index 468843c..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.serialization_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.serialization_1.0.0.201708181120.jar
deleted file mode 100644
index 9e4edd1..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.serialization_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ui_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ui_1.0.0.201708181120.jar
deleted file mode 100644
index 3cb4bf4..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ui_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.utils_1.0.0.201708181120.jar b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.utils_1.0.0.201708181120.jar
deleted file mode 100644
index 79e2b0c..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.utils_1.0.0.201708181120.jar
+++ /dev/null
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml
deleted file mode 100644
index 56d78cd..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.updatesite</artifactId>

-  <packaging>eclipse-repository</packaging>

-  

-  

-  

-	<properties>

-		<org.jboss.tools.tycho-plugins.version>0.22.0</org.jboss.tools.tycho-plugins.version>

-	</properties>

-	

-	<pluginRepositories>

-		<pluginRepository>

-			<id>jboss-public-repository-group</id>

-			<name>JBoss Public Repository Group</name>

-			<url>http://repository.jboss.org/nexus/content/groups/public/</url>

-		</pluginRepository>

-

-		<pluginRepository>

-			<id>jboss-snapshots-repository</id>

-			<name>JBoss Snapshots Repository</name>

-			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>

-		</pluginRepository>

-	</pluginRepositories>

-

-	<build>

-		<plugins>

-			<plugin>

-				<groupId>org.eclipse.tycho</groupId>

-				<artifactId>tycho-p2-repository-plugin</artifactId>

-				<version>${tycho.version}</version>

-

-				<configuration>

-					<compress/>

-				</configuration>

-			</plugin>

-

-			

-			<plugin>

-				<groupId>org.jboss.tools.tycho-plugins</groupId>

-				<artifactId>repository-utils</artifactId>

-				<version>${org.jboss.tools.tycho-plugins.version}</version>

-

-				<executions>

-					<execution>

-						<id>generate-facade</id>

-						<phase>package</phase>

-	

-						<goals>

-							<goal>generate-repository-facade</goal>

-						</goals>

-	

-						<configuration>

-							<siteTemplateFolder>siteTemplate</siteTemplateFolder>

-							

-							<!-- Symbols are used while expanding index.html template -->

-							<symbols>

-								<update.site.name>${project.parent.name}</update.site.name>

-								<target.eclipse.version>4.3.2</target.eclipse.version>

-							</symbols>

-

-							<associateSites>

-								<!-- site>http://hudson.eclipse.org/hudson/job/damos-master/lastSuccessfulBuild/artifact/update-site</site>

-								<site>http://download.eclipse.org/modeling/emf/emf/updates/releases</site>

-								<site>http://download.eclipse.org/modeling/emf/compare/updates/releases</site>

-								<site>http://download.eclipse.org/rmf/updates</site>

-								<site>http://download.eclipse.org/sphinx/updates/interim</site>

-								<site>http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases</site>

-								<site>http://franca.github.io/franca/update_site/releases</site>

-								<site>http://updates.yakindu.org/sct/kepler/releases</site>

-								

-								<site>http://download.eclipse.org/sphinx/updates/interim</site-->

-							</associateSites>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-

-</project>

-  
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/site.xml b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/site.xml
deleted file mode 100644
index a3feb82..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/site.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site>

-   <feature url="features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.201708181120.jar" id="org.eclipse.app4mc.sca2amalthea.feature" version="1.0.0.201708181120">

-      <category name="sca2amalthea Runtime"/>

-   </feature>

-   <feature url="features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.201708181120.jar" id="org.eclipse.app4mc.sca2amalthea.feature.sdk" version="1.0.0.201708181120">

-      <category name="sca2amalthea sdk"/>

-   </feature>

-   <category-def name="sca2amalthea Runtime" label="sca2amalthea Runtime"/>

-   <category-def name="sca2amalthea sdk" label="sca2amalthea sdk"/>

-</site>

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html
deleted file mode 100644
index bb3363d..0000000
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>

-	<head>

-		<title>${update.site.name} Update Site</title>

-	</head>

-

-	<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">

-		

-		<h2 class="title">${update.site.name} - Use this URL in Eclipse to install ${update.site.name}</h2>

-	

-		<p>This is the Update Site for ${update.site.name}.

-			<ol>

-				<li>To install ${update.site.name} from this site, start up Eclipse ${target.eclipse.version}, then do:

-					<ul><code><strong>Help > Install New Software... ></strong></code></ul>

-				</li>

-				<li>Copy this site's URL into Eclipse, and hit Enter.</li>

-				<li>When the site loads, select the features to install, or click the <code><strong>Select All</strong></code> button.</li>

-				<li>To properly resolve all dependencies, check 

-					<ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>

-				<li>Click <code><strong>Next</strong></code>, agree to the license terms, and install.</li>

-			</ol>

-		</p>

-

-		<p>${site.contents}</p>

-	</body>

-</html>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/build/readme.txt b/eclipse-tools/sca2amalthea/build/readme.txt
deleted file mode 100644
index c7b9f56..0000000
--- a/eclipse-tools/sca2amalthea/build/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Place only build related projects here.
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.gitignore b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.gitignore
deleted file mode 100644
index b83d222..0000000
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/
diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/feature.xml b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/feature.xml
index 9f82127..606c646 100644
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/feature.xml
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature

       id="org.eclipse.app4mc.sca2amalthea.feature.sdk"

       label="SCA2AMALTHEA SDK"

-      version="1.0.0.qualifier"

+      version="0.9.7.qualifier"

       provider-name="Eclipse.org">

 

    <description url="http://www.example.com/description">

@@ -17,133 +17,109 @@
       [Enter License Description here.]

    </license>

 

-   <requires>

-      <import plugin="org.eclipse.core.runtime"/>

-      <import plugin="org.eclipse.emf.ecore.xmi"/>

-      <import plugin="org.eclipse.core.resources"/>

-      <import plugin="org.eclipse.app4mc.sca.logging"/>

-      <import plugin="org.eclipse.emf.ecore"/>

-      <import plugin="org.eclipse.app4mc.sca.logging" version="1.0.0" match="greaterOrEqual"/>

-      <import plugin="org.eclipse.sphinx.emf"/>

-      <import plugin="org.eclipse.xtext.xbase.lib"/>

-      <import plugin="org.eclipse.app4mc.sca.amalthea.loader"/>

-      <import plugin="org.eclipse.emf.ecore.xmi" version="2.10.2" match="greaterOrEqual"/>

-      <import plugin="org.eclipse.ui"/>

-      <import plugin="org.eclipse.emf.common" version="2.10.1" match="greaterOrEqual"/>

-      <import plugin="org.eclipse.core.commands"/>

-      <import plugin="org.eclipse.ui.workbench"/>

-      <import plugin="org.eclipse.ease"/>

-      <import plugin="org.eclipse.app4mc.amalthea.sphinx"/>

-      <import plugin="org.eclipse.app4mc.amalthea.model"/>

-      <import plugin="org.eclipse.app4mc.sca.amalthea.model.utils"/>

-      <import plugin="org.eclipse.app4mc.sca.scheduling.loader"/>

-      <import plugin="org.eclipse.equinox.registry"/>

-      <import plugin="org.eclipse.jface"/>

-      <import plugin="org.eclipse.app4mc.sca.util"/>

-      <import plugin="org.eclipse.app4mc.sca.ui"/>

-      <import plugin="org.eclipse.app4mc.sca2amalthea.utils" version="1.0.0" match="greaterOrEqual"/>

-      <import plugin="org.eclipse.app4mc.sca.util" version="1.0.0" match="greaterOrEqual"/>

-   </requires>

+   <includes

+         id="org.eclipse.app4mc.sca2amalthea.feature"

+         version="0.0.0"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.exporter"

+         id="org.eclipse.app4mc.sca2amalthea.exporter.source"

          download-size="0"

          install-size="0"

          version="0.0.0"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.ir"

+         id="org.eclipse.app4mc.sca2amalthea.ir.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.ir.loader"

+         id="org.eclipse.app4mc.sca2amalthea.ir.loader.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.llvm"

+         id="org.eclipse.app4mc.sca2amalthea.llvm.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.scairmodelenricher"

+         id="org.eclipse.app4mc.sca2amalthea.scairmodelenricher.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.serialization"

+         id="org.eclipse.app4mc.sca2amalthea.serialization.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.utils"

+         id="org.eclipse.app4mc.sca2amalthea.utils.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.ui"

+         id="org.eclipse.app4mc.sca2amalthea.ui.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.amalthea.loader"

+         id="org.eclipse.app4mc.sca.amalthea.loader.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.amalthea.model.utils"

+         id="org.eclipse.app4mc.sca.amalthea.model.utils.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.logging"

+         id="org.eclipse.app4mc.sca.logging.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.scheduling.loader"

+         id="org.eclipse.app4mc.sca.scheduling.loader.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.ui"

+         id="org.eclipse.app4mc.sca.ui.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca.util"

+         id="org.eclipse.app4mc.sca.util.source"

          download-size="0"

          install-size="0"

          version="0.0.0"

          unpack="false"/>

 

    <plugin

-         id="org.eclipse.app4mc.sca2amalthea.docu"

+         id="org.eclipse.app4mc.sca2amalthea.docu.source"

          download-size="0"

          install-size="0"

          version="0.0.0"/>

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/pom.xml b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/pom.xml
deleted file mode 100644
index a7c65f0..0000000
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/pom.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-      <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.feature.sdk</artifactId>

-  <packaging>eclipse-feature</packaging>

-</project>

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.gitignore b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.gitignore
deleted file mode 100644
index b83d222..0000000
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/
diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/feature.xml b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/feature.xml
index 3cb5967..ad652ef 100644
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/feature.xml
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature

       id="org.eclipse.app4mc.sca2amalthea.feature"

       label="SCA2AMALTHEA Runtime"

-      version="1.0.0.qualifier"

+      version="0.9.8.qualifier"

       provider-name="Eclipse.org">

 

    <description url="http://www.example.com/description">

@@ -23,7 +23,6 @@
       <import plugin="org.eclipse.core.resources"/>

       <import plugin="org.eclipse.app4mc.sca.logging"/>

       <import plugin="org.eclipse.emf.ecore"/>

-      <import plugin="org.eclipse.app4mc.sca.logging" version="1.0.0" match="greaterOrEqual"/>

       <import plugin="org.eclipse.sphinx.emf"/>

       <import plugin="org.eclipse.xtext.xbase.lib"/>

       <import plugin="org.eclipse.app4mc.sca.amalthea.loader"/>

@@ -32,8 +31,6 @@
       <import plugin="org.eclipse.emf.common" version="2.10.1" match="greaterOrEqual"/>

       <import plugin="org.eclipse.core.commands"/>

       <import plugin="org.eclipse.ui.workbench"/>

-      <import plugin="org.eclipse.ease"/>

-      <import plugin="org.eclipse.app4mc.amalthea.sphinx"/>

       <import plugin="org.eclipse.app4mc.amalthea.model"/>

       <import plugin="org.eclipse.app4mc.sca.amalthea.model.utils"/>

       <import plugin="org.eclipse.app4mc.sca.scheduling.loader"/>

@@ -41,8 +38,7 @@
       <import plugin="org.eclipse.jface"/>

       <import plugin="org.eclipse.app4mc.sca.util"/>

       <import plugin="org.eclipse.app4mc.sca.ui"/>

-      <import plugin="org.eclipse.app4mc.sca2amalthea.utils" version="1.0.0" match="greaterOrEqual"/>

-      <import plugin="org.eclipse.app4mc.sca.util" version="1.0.0" match="greaterOrEqual"/>

+      <import plugin="org.eclipse.app4mc.sca2amalthea.utils"/>

    </requires>

 

    <plugin

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/pom.xml b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/pom.xml
deleted file mode 100644
index afcce51..0000000
--- a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/pom.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-    <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.feature</artifactId>

-  <packaging>eclipse-feature</packaging>

-</project>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/META-INF/MANIFEST.MF
index e86fa6c..7987681 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Amalthea Loader
 Bundle-SymbolicName: org.eclipse.app4mc.sca.amalthea.loader
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.sphinx.emf,
- org.eclipse.app4mc.amalthea.sphinx,
  org.eclipse.app4mc.amalthea.model,
  org.eclipse.app4mc.sca.logging
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.app4mc.sca.amalthea.loader,
  org.eclipse.app4mc.sca.amalthea.serializer
+Automatic-Module-Name: org.eclipse.app4mc.sca.amalthea.loader
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/pom.xml
deleted file mode 100644
index 0de10d5..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.amalthea.loader</artifactId>

-  <packaging>eclipse-plugin</packaging>

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/loader/AMALTHEAResourceLoader.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/loader/AMALTHEAResourceLoader.java
index 40a49b7..740d69b 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/loader/AMALTHEAResourceLoader.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/loader/AMALTHEAResourceLoader.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/serializer/AMALTHEAResourceSerializer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/serializer/AMALTHEAResourceSerializer.java
index d746bfb..2136418 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/serializer/AMALTHEAResourceSerializer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/serializer/AMALTHEAResourceSerializer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/META-INF/MANIFEST.MF
index fba8065..c199925 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SCA2AMALTHEA Model Exporter Util
 Bundle-SymbolicName: org.eclipse.app4mc.sca.amalthea.model.utils
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.app4mc.sca.amalthea.loader,
  org.eclipse.app4mc.sca.logging,
- org.eclipse.xtext.xbase,
  org.eclipse.app4mc.amalthea.model
 Export-Package: org.eclipse.app4mc.sca.amalthea.model.utils.helper,
  org.eclipse.app4mc.sca.amalthea.model.utils.manipulator
+Automatic-Module-Name: org.eclipse.app4mc.sca.amalthea.model.utils
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/pom.xml
deleted file mode 100644
index 123d869..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/pom.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.amalthea.model.utils</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>

-

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/Activator.java
index 7dcbb54..fcf2d32 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/CustomPropertiesUtil.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/CustomPropertiesUtil.java
index 5f93639..f2f77a5 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/CustomPropertiesUtil.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/CustomPropertiesUtil.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/ModelAccess.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/ModelAccess.java
index 179dfaa..e220376 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/ModelAccess.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/ModelAccess.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -17,15 +17,14 @@
 import java.util.HashSet;

 import java.util.Set;

 

+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;

 import org.eclipse.app4mc.amalthea.model.Amalthea;

-import org.eclipse.app4mc.amalthea.model.CallSequence;

-import org.eclipse.app4mc.amalthea.model.CallSequenceItem;

-import org.eclipse.app4mc.amalthea.model.GraphEntryBase;

+import org.eclipse.app4mc.amalthea.model.Group;

 import org.eclipse.app4mc.amalthea.model.ISR;

 import org.eclipse.app4mc.amalthea.model.Process;

 import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.RunnableCall;

 import org.eclipse.app4mc.amalthea.model.Task;

-import org.eclipse.app4mc.amalthea.model.TaskRunnableCall;

 import org.eclipse.emf.common.util.EList;

 

 /**

@@ -57,14 +56,15 @@
    */

   public static Set<Runnable> getRunnablesFromTask(final Process process) {

     Set<Runnable> calledRunnables = new HashSet<>();

-    for (GraphEntryBase entry : process.getCallGraph().getGraphEntries()) {

-      if (!(entry instanceof CallSequence)) {

+    for (ActivityGraphItem activityGraphItem : process.getActivityGraph().getItems()) {

+      if (!(activityGraphItem instanceof Group)) {

         continue;

       }

-      for (CallSequenceItem item : ((CallSequence) entry).getCalls()) {

-        if (item instanceof TaskRunnableCall) {

-          calledRunnables.add(((TaskRunnableCall) item).getRunnable());

-        }

+      for (ActivityGraphItem groupItem : ((Group) activityGraphItem).getItems()) {

+    	  if(groupItem instanceof RunnableCall) {

+    		  RunnableCall rc=(RunnableCall)groupItem;

+    		  calledRunnables.add(rc.getRunnable());

+    	  }

       }

     }

     return calledRunnables;

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/FunctionPointerRunnableConverter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/FunctionPointerRunnableConverter.java
index 12e31ee..5deca24 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/FunctionPointerRunnableConverter.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/FunctionPointerRunnableConverter.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -17,13 +17,13 @@
 import java.util.regex.Matcher;

 import java.util.regex.Pattern;

 

+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;

 import org.eclipse.app4mc.amalthea.model.Amalthea;

 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;

 import org.eclipse.app4mc.amalthea.model.LabelAccess;

 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;

 import org.eclipse.app4mc.amalthea.model.Runnable;

 import org.eclipse.app4mc.amalthea.model.RunnableCall;

-import org.eclipse.app4mc.amalthea.model.RunnableItem;

 import org.eclipse.app4mc.amalthea.model.StringObject;

 import org.eclipse.app4mc.sca.amalthea.model.utils.Activator;

 import org.eclipse.app4mc.sca.amalthea.model.utils.helper.CustomPropertiesUtil;

@@ -51,11 +51,10 @@
     EList<Runnable> runnables = amaltheaModel.getSwModel().getRunnables();

     try {

       for (Runnable runnable : runnables) {

-        System.out.println(runnable.getName());

         for (int i = 0; i < runnable.getRunnableItems().size(); i++) {

-          RunnableItem item = runnable.getRunnableItems().get(i);

-          if ((item != null) && (item instanceof LabelAccess)) {

-            LabelAccess labelAccess = (LabelAccess) item;

+        	ActivityGraphItem activityGraphItem = runnable.getRunnableItems().get(i);

+          if ((activityGraphItem != null) && (activityGraphItem instanceof LabelAccess)) {

+            LabelAccess labelAccess = (LabelAccess) activityGraphItem;

             if (labelAccess.getData() != null) {

               Matcher matcher = pattern.matcher(labelAccess.getData().getName());

               if ((labelAccess.getAccess() == LabelAccessEnum.READ) && matcher.matches()) {

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/IModelManipulator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/IModelManipulator.java
index 5596ee2..3523c5f 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/IModelManipulator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/IModelManipulator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/StructMemberRemover.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/StructMemberRemover.java
index 1718a0b..444939e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/StructMemberRemover.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/StructMemberRemover.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -14,12 +14,12 @@
  */

 package org.eclipse.app4mc.sca.amalthea.model.utils.manipulator;

 

+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;

 import org.eclipse.app4mc.amalthea.model.Amalthea;

 import org.eclipse.app4mc.amalthea.model.Component;

 import org.eclipse.app4mc.amalthea.model.Label;

 import org.eclipse.app4mc.amalthea.model.LabelAccess;

 import org.eclipse.app4mc.amalthea.model.Runnable;

-import org.eclipse.app4mc.amalthea.model.RunnableItem;

 import org.eclipse.app4mc.sca.amalthea.loader.AMALTHEAResourceLoader;

 import org.eclipse.app4mc.sca.amalthea.model.utils.Activator;

 import org.eclipse.app4mc.sca.logging.util.SCALogConstants;

@@ -34,8 +34,8 @@
  */

 public class StructMemberRemover implements IModelManipulator {

 

-  private final String FUNCTION_STATIC_VARIABLES_MARKER = "PLAT4MC_FS";

-  private final String FILE_STATIC_VARIABLES_MARKER = "PLAT4MC_CS";

+  private final String FUNCTION_STATIC_VARIABLES_MARKER = "APP4MC_FS";

+  private final String FILE_STATIC_VARIABLES_MARKER = "APP4MC_CS";

 

   private Amalthea amaltheaModel;

   private String inFile;

@@ -130,11 +130,11 @@
     EList<Runnable> runnables = amaltheaModel.getSwModel().getRunnables();

     try {

       for (Runnable runnable : runnables) {

-        EList<RunnableItem> runnableItemList = runnable.getRunnableItems();

-        if ((runnableItemList != null) && !runnableItemList.isEmpty()) {

-          for (RunnableItem runnableItem : runnableItemList) {

-            if (runnableItem instanceof LabelAccess) {

-              LabelAccess labelAccess = (LabelAccess) runnableItem;

+        EList<ActivityGraphItem> activityGraphItemList = runnable.getRunnableItems();

+        if ((activityGraphItemList != null) && !activityGraphItemList.isEmpty()) {

+          for (ActivityGraphItem activityGraphItem : activityGraphItemList) {

+            if (activityGraphItem instanceof LabelAccess) {

+              LabelAccess labelAccess = (LabelAccess) activityGraphItem;

               String labelName = labelAccess.getData().getName();

               if (containsStructMember(labelName)) {

                 String mainLabelName = removeMemberInformation(labelName);

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/META-INF/MANIFEST.MF
index ee27ff6..7099e4e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Logging
 Bundle-SymbolicName: org.eclipse.app4mc.sca.logging;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.ecore,
@@ -22,3 +22,4 @@
  org.eclipse.app4mc.sca.logging.notification,
  org.eclipse.app4mc.sca.logging.util
 Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.app4mc.sca.logging
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/build.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/build.properties
index 8a183d6..51ac232 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/build.properties
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/build.properties
@@ -8,5 +8,4 @@
                build.properties

 src.includes = epl-2.0.html,\

                logger.properties,\

-               build.properties,\

                cmdlogger.properties

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/pom.xml
deleted file mode 100644
index 9aefc73..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.logging</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/console/loggers/CommandLineLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/console/loggers/CommandLineLogger.java
index e2b47f8..8773d1d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/console/loggers/CommandLineLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/console/loggers/CommandLineLogger.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/exception/App4mcLoggerException.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/exception/App4mcLoggerException.java
index 5899b11..7d03fb6 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/exception/App4mcLoggerException.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/exception/App4mcLoggerException.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/CollectiveLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/CollectiveLogger.java
index c750578..8971572 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/CollectiveLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/CollectiveLogger.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConfiguration.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConfiguration.java
index 2b78704..3853d82 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConfiguration.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConfiguration.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConsoleLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConsoleLogger.java
index 6fb2bd8..01bbaa4 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConsoleLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConsoleLogger.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IExternalLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IExternalLogger.java
index 8b99f4d..42e38c1 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IExternalLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IExternalLogger.java
@@ -9,7 +9,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ILogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ILogger.java
index 688d8fa..6a21195 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ILogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ILogger.java
@@ -5,7 +5,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ITextLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ITextLogger.java
index e738d43..675f54e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ITextLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ITextLogger.java
@@ -5,7 +5,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/loggers/TextFileLogger.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/loggers/TextFileLogger.java
index ec629c2..1af6625 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/loggers/TextFileLogger.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/loggers/TextFileLogger.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/LogFactory.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/LogFactory.java
index 4ba6437..11230c5 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/LogFactory.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/LogFactory.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/Logmanager.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/Logmanager.java
index 6f8d0cd..934bc0b 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/Logmanager.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/Logmanager.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/ILogNotificationListener.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/ILogNotificationListener.java
index 708b832..7c6dbbd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/ILogNotificationListener.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/ILogNotificationListener.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/LogNotificationEvent.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/LogNotificationEvent.java
index 68cdefd..496eebe 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/LogNotificationEvent.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/notification/LogNotificationEvent.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/App4mcLogUtil.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/App4mcLogUtil.java
index a512310..8d0b45a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/App4mcLogUtil.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/App4mcLogUtil.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogInformation.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogInformation.java
index 6ff171f..442c4d2 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogInformation.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogInformation.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogUtil.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogUtil.java
index 97e2316..857beca 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogUtil.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/LogUtil.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/SCALogConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/SCALogConstants.java
index 2cb8db9..5eb5026 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/SCALogConstants.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/util/SCALogConstants.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/META-INF/MANIFEST.MF
index 30e129b..b7b392f 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Loader
 Bundle-SymbolicName: org.eclipse.app4mc.sca.scheduling.loader;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.app4mc.amalthea.model,
@@ -13,6 +13,7 @@
  org.eclipse.jface,
  org.eclipse.ui.workbench,
  org.eclipse.ui,
- org.eclipse.app4mc.sca.ui;bundle-version="1.0.0"
+ org.eclipse.app4mc.sca.ui
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.sca.scheduling.loader.model
+Automatic-Module-Name: org.eclipse.app4mc.sca.scheduling.loader
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/build.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/build.properties
index 1e1031e..694bc38 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/build.properties
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/build.properties
@@ -2,6 +2,5 @@
 output.. = bin/

 bin.includes = META-INF/,\

                .,\

-               plugin.xml,\

                epl-2.0.html

 src.includes = epl-2.0.html

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/plugin.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/plugin.xml
deleted file mode 100644
index b60f62a..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/plugin.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.4"?>

-<plugin>

-

-</plugin>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/pom.xml
deleted file mode 100644
index 5249939..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.scheduling.loader</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/activator/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/activator/Activator.java
index 1231e25..c18a50b 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/activator/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/activator/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSConfModel.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSConfModel.java
index face6bd..d7d5398 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSConfModel.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSConfModel.java
@@ -1,7 +1,7 @@
 package org.eclipse.app4mc.sca.scheduling.loader.model;

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSTask.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSTask.java
index 49c8c28..a21b6dd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSTask.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/OSTask.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/SchedulingInformationLoader.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/SchedulingInformationLoader.java
index e30cb8e..052749d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/SchedulingInformationLoader.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/SchedulingInformationLoader.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -29,7 +29,6 @@
    * @param absolutefilePath

    * @return

    */

-  @SuppressWarnings("javadoc")

   public OSConfModel getTasksInformation(final String absolutefilePath) {

 	  this.osConfModel=new OSConfModel();

 	  try {

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/TaskType.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/TaskType.java
index 18591cd..19a94f7 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/TaskType.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.scheduling.loader/src/org/eclipse/app4mc/sca/scheduling/loader/model/TaskType.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/META-INF/MANIFEST.MF
index 584ba42..63ecce9 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Ui
+Bundle-Name: SCA2AMALTHEA Ui
 Bundle-SymbolicName: org.eclipse.app4mc.sca.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Activator: org.eclipse.app4mc.sca.ui.Activator
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
@@ -16,6 +16,9 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.app4mc.sca.ui,
- org.eclipse.app4mc.sca.ui.preferences,
- org.eclipse.app4mc.sca.ui.preferences.interfaces,
- org.eclipse.app4mc.sca.ui.util
+ org.eclipse.app4mc.sca.ui.messagedialog,
+ org.eclipse.app4mc.sca.ui.util,
+ org.eclipse.app4mc.sca.ui.widget.builder,
+ org.eclipse.app4mc.sca.ui.widgets,
+ org.eclipse.app4mc.sca.ui.wizard
+Automatic-Module-Name: org.eclipse.app4mc.sca.ui
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/plugin.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/plugin.xml
index 85a0fef..e93f171 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/plugin.xml
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/plugin.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <?eclipse version="3.4"?>

 <plugin>

-   <extension-point id="exportOptions" name="PreferenceExporter" schema="schema/exportOptions.exsd"/>

-<extension point="org.eclipse.ui.menus">

+ <extension point="org.eclipse.ui.menus">

   <menuContribution

         locationURI="popup:org.eclipse.ui.popup.any?after=additions">

      <menu

@@ -14,31 +13,13 @@
               <iterate>

                  <or>

                     <adapt

-                          type="org.eclipse.core.resources.IResource">

-                    </adapt>

-                    <adapt

-                          type="org.eclipse.app4mc.amalthea.model.BaseObject">

+                          type="org.eclipse.core.resources.IProject">

                     </adapt>

                  </or>

               </iterate>

            </and>

         </visibleWhen>

      </menu>

-  </menuContribution>
-</extension>

-

-<extension point="org.eclipse.ui.preferencePages">

-    <page id="SCA Tools"

-        name="SCA Tools"

-        class="org.eclipse.app4mc.sca.ui.preferences.SCAPreferencePage">

-    </page>
-</extension>

-<extension

-      point="org.eclipse.app4mc.sca.ui.exportOptions">

-   <exporter

-         name="Platform"

-         preferences="org.eclipse.app4mc.sca.ui.preferences.SCAExportPreferenceList"

-         tool="SCATools">

-   </exporter>

-</extension> >
+  </menuContribution>

+</extension>>
 </plugin>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/pom.xml
deleted file mode 100644
index 09d238f..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.ui</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/Activator.java
index 2398d66..32e5d42 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/messagedialog/App4mcMessgeDialog.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/messagedialog/App4mcMessgeDialog.java
new file mode 100644
index 0000000..ec6afce
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/messagedialog/App4mcMessgeDialog.java
@@ -0,0 +1,76 @@
+
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.messagedialog;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * This is a message dialog class to be used to show the pop-ups(information,error,warning) as and when required.
+ */
+public class App4mcMessgeDialog {
+
+
+  private final Image shellImg;
+  private final int kind;
+  private final Shell shell;
+  private final String title;
+  private final String msg;
+
+  /**
+   * @param kind the kind of dialog to open Eg ERROR,INFORMATION,QUESTION, WARNING,CONFIRM,orQUESTION_WITH_CANCEL.
+   * @param shell the parent shell of the dialog
+   * @param title the dialog's title
+   * @param shellImg the image to be shown on the left top corner of the pop-up
+   * @param msg the message to be shown in the pop up.
+   */
+  public App4mcMessgeDialog(final int kind, final Shell shell, final String title, final Image shellImg,
+      final String msg) {
+    this.kind = kind;
+    this.shell = shell;
+    this.title = title;
+    this.shellImg = shellImg;
+    this.msg = msg;
+
+  }
+
+  private String[] getApp4mcButtonLabels() {
+    String[] app4mcDialogButtonLabels;
+
+    if ((this.kind == MessageDialog.ERROR) || (this.kind == MessageDialog.INFORMATION) ||
+        (this.kind == MessageDialog.WARNING)) {
+      app4mcDialogButtonLabels = new String[] { IDialogConstants.OK_LABEL };
+    }
+    else if (this.kind == MessageDialog.CONFIRM) {
+      app4mcDialogButtonLabels = new String[] { IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL };
+    }
+    else if (this.kind == MessageDialog.QUESTION) {
+      app4mcDialogButtonLabels = new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL };
+    }
+    else if (this.kind == MessageDialog.QUESTION_WITH_CANCEL) {
+      app4mcDialogButtonLabels =
+          new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL };
+    }
+    else {
+      throw new IllegalArgumentException("Illegal value for kind in MessageDialog.open()");
+    }
+    return app4mcDialogButtonLabels;
+  }
+
+  /**
+   * Opens the message dialog.
+   *
+   * @return int indicating if the message dialog was opened successfully.
+   */
+  public int open() {
+    MessageDialog d =
+        new MessageDialog(this.shell, this.title, this.shellImg, this.msg, this.kind, 0, getApp4mcButtonLabels());
+    return d.open();
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/AbstractSCAToolsPreferencePage.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/AbstractSCAToolsPreferencePage.java
deleted file mode 100644
index f3ea630..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/AbstractSCAToolsPreferencePage.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca.ui.preferences;

-

-import java.io.File;

-import java.io.IOException;

-

-import org.eclipse.app4mc.sca.logging.manager.Logmanager;

-import org.eclipse.app4mc.sca.ui.Activator;

-import org.eclipse.app4mc.sca.ui.util.SCAToolsUIUtil;

-import org.eclipse.jface.dialogs.Dialog;

-import org.eclipse.jface.dialogs.IDialogConstants;

-import org.eclipse.jface.preference.FieldEditorPreferencePage;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.FileDialog;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.ui.IWorkbenchPreferencePage;

-

-/**

- * Abstract preference page for the multicore preference page implementations.The page would contain the default

- * implementation of all the common features agreed upon in the multicore architecture group meeting

- */

-public abstract class AbstractSCAToolsPreferencePage extends FieldEditorPreferencePage

-    implements IWorkbenchPreferencePage {

-

-  /**

-   * Button to export the preferences to the options file

-   */

-  protected Button exportPref;

-  /**

-   * Label for status image

-   */

-  protected Label statusImage;

-  /**

-   * Label for status info

-   */

-  protected Label infoLabel;

-

-  /**

-   * Default constructor to support preference pages implemented using SWT controls.

-   */

-

-  public AbstractSCAToolsPreferencePage() {

-

-  }

-

-  /**

-   * Parameterized constructor to support preference pages implemented using field editors.

-   *

-   * @param style layouting style GRID or FLAT

-   */

-  public AbstractSCAToolsPreferencePage(final int style) {

-    super(style);

-  }

-

-  @Override

-  protected void contributeButtons(final Composite parent) {

-    GridLayout layout = (GridLayout) parent.getLayout();

-    layout.numColumns = layout.numColumns + 3;

-

-    this.statusImage = new Label(parent, SWT.NONE);

-    this.statusImage.setImage(parent.getShell().getDisplay().getSystemImage(SWT.ICON_INFORMATION));

-    this.statusImage.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

-    this.statusImage.setVisible(false);

-

-    this.infoLabel = new Label(parent, SWT.None);

-    this.infoLabel.setText("Options file exported successfully!!!");

-    this.infoLabel.setVisible(false);

-

-    int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);

-    this.exportPref = new Button(parent, SWT.PUSH);

-    this.exportPref.setText("Export Preferences");

-    Dialog.applyDialogFont(this.exportPref);

-    Point minButtonSize = this.exportPref.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);

-    GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);

-    data.widthHint = Math.max(widthHint, minButtonSize.x);

-    this.exportPref.setLayoutData(data);

-    this.exportPref.addSelectionListener(new SelectionAdapter() {

-

-      @Override

-      public void widgetSelected(final SelectionEvent e) {

-        savePreferences(parent);

-      }

-    });

-    super.contributeButtons(parent);

-  }

-

-  /**

-   * Exports all the preferences to options file

-   */

-  private void savePreferences(final Composite parent) {

-    showStatus(false);

-    setErrorMessage(null);

-    FileDialog fileDialog = new FileDialog(parent.getShell(), SWT.SAVE | SWT.SHEET);

-    fileDialog.setText("Export");

-    fileDialog.setFilterPath(System.getProperty("user.home"));

-    fileDialog.setFileName("Preference.opt");

-    fileDialog.setFilterExtensions(new String[] { ".opt" });

-    String path = fileDialog.open();

-    if (path != null) {

-      File optionsFile = new File(path);

-      try {

-        boolean status = optionsFile.createNewFile();

-        if (!status) {

-          setErrorMessage("File with same name exists in the selected folder!");

-        }

-        else {

-          SCAToolsUIUtil.exportProperties(optionsFile, getPreferenceStore(), getToolId());

-          showStatus(true);

-        }

-      }

-      catch (IOException e) {

-        Logmanager.getInstance().logException(this.getClass(), e, Activator.PLUGIN_ID);

-      }

-    }

-  }

-

-  /**

-   * Enable/disable the status labels

-   *

-   * @param status {@link Boolean}

-   */

-  private void showStatus(final boolean status) {

-    this.infoLabel.setVisible(status);

-    this.statusImage.setVisible(status);

-  }

-

-  /**

-   * Just returning

-   */

-  @Override

-  public void createFieldEditors() {

-    return;

-  }

-

-  /**

-   * Returns the tool id for which the page has been contributed

-   *

-   * @return Sting

-   */

-  public abstract String getToolId();

-

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAExportPreferenceList.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAExportPreferenceList.java
deleted file mode 100644
index 20ebfe4..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAExportPreferenceList.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca.ui.preferences;

-

-import java.util.Arrays;

-import java.util.List;

-

-import org.eclipse.app4mc.sca.ui.preferences.interfaces.IExportPreferences;

-import org.eclipse.app4mc.sca.ui.util.SCAToolsPreferenceConstants;

-import org.eclipse.jface.preference.IPreferenceStore;

-

-/**

- * The list of preferences that are exported for the tool SCA as options file

- */

-public class SCAExportPreferenceList implements IExportPreferences {

-

-  /**

-   * Private constructor

-   */

-  public SCAExportPreferenceList() {

-    // Nothing now

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public List<String> keysToExport() {

-    String[] prefToSave = { // NOSONAR not significant

-        SCAToolsPreferenceConstants.TEXT_LOGFILENAME,

-        SCAToolsPreferenceConstants.DEBUG_MODE };

-    return Arrays.asList(prefToSave);

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public IPreferenceStore getPreferenceStore() {

-    return org.eclipse.app4mc.sca.util.Activator.getDefault().getPreferenceStore();

-  }

-

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAPreferencePage.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAPreferencePage.java
deleted file mode 100644
index 5facdbc..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/SCAPreferencePage.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca.ui.preferences;

-

-

-import java.io.File;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.Map;

-

-import org.eclipse.app4mc.sca.logging.manager.LogFactory.LoggerType;

-import org.eclipse.app4mc.sca.logging.manager.Logmanager;

-import org.eclipse.app4mc.sca.ui.util.SCAToolsPreferenceConstants;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.preference.PreferenceDialog;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.KeyEvent;

-import org.eclipse.swt.events.KeyListener;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.DirectoryDialog;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.IWorkbench;

-

-

-/**

- * This class implements SCA Tools Preference page UI using SWT controls. User can configure the logger type using

- * this preference page.The logger types available are 1)Eclipse Console 2)Error log 3)Problems log 4)Log file

- */

-public class SCAPreferencePage extends AbstractSCAToolsPreferencePage {

-

-  private Group loggerType;

-  private StringBuilder scaLoggerType;

-  private Label logFileDirectoryLabel;

-  private Text logFileDirectoryText;

-  private Button browse;

-  private Label logFileNameLabel;

-  private Text logFileNameText;

-  private Composite composite;

-  private Composite compositeForCheckBox;

-  private Button[] checkBoxButtons;

-  private Button debugModeButton;

-  private Map<String, String> selectedCheckBox;

-  private HashSet<String> selectedButtons;

-  /**

-   * Error message

-   */

-  private String errorMessage = "Log File name should end with .log";

-

-  /**

-   * Initializes this preference page for the given workbench.This method is called automatically as the preference page

-   * is being created and initialized

-   *

-   * @param workbench the workbench

-   */

-  @Override

-  public void init(final IWorkbench workbench) {

-    setPreferenceStore(org.eclipse.app4mc.sca.util.Activator.getDefault().getPreferenceStore());

-    setDescription(SCAToolsPreferenceConstants.PREFERENCE_PAGE_DESCRIPTION);

-

-  }

-

-  /**

-   * This method will be called everytime the SCA Tools preference page is loaded. All the UI controls are created

-   * inside this method. Listeners are added to the UI controls. The UI controls are also initialized with approrpriate

-   * values.

-   *

-   * @param parent The composite on which the UI controls are created

-   * @return parent after all the UI controls are created

-   */

-  @Override

-  protected Control createContents(final Composite parent) {

-    initializeMap();

-    new Label(parent, SWT.NONE).setLayoutData(new GridData(SWT.NONE, SWT.NONE, true, false, 5, -1));

-

-    this.selectedButtons = new HashSet<String>();

-    // creating the main composite on which the other controls are laid

-    Composite mainComposite = new Composite(parent, SWT.NULL);

-    GridLayout mainCompositeLayout = new GridLayout();

-    mainCompositeLayout.numColumns = 1;

-    mainCompositeLayout.marginHeight = 0;

-    mainCompositeLayout.marginWidth = 0;

-    mainComposite.setLayout(mainCompositeLayout);

-    // creating the group for check box buttons and the text boxes

-    this.loggerType = new Group(mainComposite, SWT.SHADOW_OUT);

-    this.loggerType.setText("Logger Types");

-

-    GridLayout layout = new GridLayout(5, false);

-    this.loggerType.setLayout(layout);

-

-    GridDataFactory.defaultsFor(this.loggerType).grab(true, false).span(2, 1).applyTo(this.loggerType);

-    GridDataFactory.defaultsFor(mainComposite).grab(true, true).span(2, 1).applyTo(mainComposite);

-

-    new Label(this.loggerType, SWT.NONE).setLayoutData(new GridData(SWT.NONE, SWT.NONE, true, false, 5, -1));

-

-    // creating the composite inside the group for the check box buttons alone

-

-    this.checkBoxButtons = new Button[4];

-    this.compositeForCheckBox = new Composite(this.loggerType, SWT.NONE);

-    GridLayout gridLayoutForCheckBox = new GridLayout(5, false);

-    this.compositeForCheckBox.setLayout(gridLayoutForCheckBox);

-    this.compositeForCheckBox.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

-    GridData gridDataForCheckBox = (GridData) this.compositeForCheckBox.getLayoutData();

-    gridDataForCheckBox.grabExcessHorizontalSpace = true;

-    gridLayoutForCheckBox.horizontalSpacing = 8;

-

-    for (int i = 0; i < this.checkBoxButtons.length; i++) {

-      this.checkBoxButtons[i] = new Button(this.compositeForCheckBox, SWT.CHECK);

-      this.checkBoxButtons[i].setLayoutData(new GridData(SWT.HORIZONTAL));

-    }

-    this.checkBoxButtons[0].setText(SCAToolsPreferenceConstants.ECLIPSE_CONSOLE);

-    this.checkBoxButtons[1].setText(SCAToolsPreferenceConstants.ERROR_LOG);

-    this.checkBoxButtons[2].setText(SCAToolsPreferenceConstants.PROBLEMS_LOG);

-    this.checkBoxButtons[3].setText(SCAToolsPreferenceConstants.LOG_FILE);

-

-    new Label(this.loggerType, SWT.NONE).setLayoutData(new GridData(SWT.NONE, SWT.NONE, true, false, 5, -1));

-

-    // creating another composite inside the group for the text boxes

-

-    this.composite = new Composite(this.loggerType, SWT.NONE);

-    GridLayout gridLayout = new GridLayout(3, false);

-    this.composite.setLayout(gridLayout);

-    this.composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

-    GridData gridData = (GridData) this.composite.getLayoutData();

-    gridData.grabExcessHorizontalSpace = true;

-    gridLayout.horizontalSpacing = 8;

-    gridLayout.verticalSpacing = 15;

-

-    this.logFileNameLabel = new Label(this.composite, SWT.SINGLE | SWT.LEFT);

-    this.logFileNameText = new Text(this.composite, SWT.SINGLE | SWT.BORDER);

-    this.logFileNameLabel.setText("Log File name");

-

-    this.logFileNameLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 1, -1));

-    this.logFileNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, -1));

-

-    this.logFileDirectoryLabel = new Label(this.composite, SWT.SINGLE);

-    this.logFileDirectoryText = new Text(this.composite, SWT.SINGLE | SWT.BORDER);

-    this.browse = new Button(this.composite, SWT.PUSH);

-

-    this.logFileDirectoryLabel.setText("Log File Directory");

-    this.browse.setText("Browse");

-

-    this.logFileDirectoryLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 1, -1));

-    this.logFileDirectoryText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, -1));

-    this.browse.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 1, -1));

-

-    Group modeGroup = new Group(mainComposite, SWT.SHADOW_OUT);

-    modeGroup.setText("Debug Mode");

-

-    layout = new GridLayout(5, false);

-    modeGroup.setLayout(layout);

-    modeGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

-    this.debugModeButton = new Button(modeGroup, SWT.CHECK);

-    this.debugModeButton.setText(SCAToolsPreferenceConstants.DEBUG_MODE_LABEL);

-    // initializing the controls

-    initializeValues();

-    // adding listeners to the controls

-    addListeners();

-    return parent;

-  }

-

-  /**

-   * This method will be called when the user presses Ok button. Preferences are stored in the preference store.

-   *

-   * @return true after saving the preferences to the preference store

-   */

-  @Override

-  public boolean performOk() {

-    super.performOk();

-    savePreferences();

-    return true;

-  }

-

-

-  /**

-   * This method checks if the log file name ends with .log extension when the user clicks on the "Log File" check box

-   * button  and sets the approriate error message. It also disables the Ok and Apply button whenever there is an error message set.

-   */

-  private void validate() {

-    this.errorMessage = null;

-    if (this.selectedButtons.isEmpty()) {

-      this.errorMessage = "At least one logging mechanisms should be selected";

-    }

-    if (this.selectedButtons.contains(SCAToolsPreferenceConstants.LOG_FILE)) {

-      validatelogFile();

-    }

-

-    if (this.selectedButtons.contains(SCAToolsPreferenceConstants.LOG_FILE) &&

-        !(new File(this.logFileDirectoryText.getText())).exists()) {

-      this.errorMessage = "Log File directory does not exist";

-    }

-    setErrorMessage(this.errorMessage);

-    disableOrEnableOkAndApplyButton();

-  }

-

-

-  /**

-   * This methods adds the appropriate listeners to the UI controls of this preference page and it also reacts to the

-   * corrosponding events.

-   */

-  private void addListeners() {

-    addKeyListenerToTextBox(this.logFileNameText);

-    addKeyListenerToTextBox(this.logFileDirectoryText);

-    this.browse.addSelectionListener(new SelectionAdapter() {

-

-      @Override

-      public void widgetSelected(final SelectionEvent event) {

-        DirectoryDialog directoryDialog = new DirectoryDialog(SCAPreferencePage.this.loggerType.getShell());

-        directoryDialog.setMessage("Select a directory");

-        String path = directoryDialog.open();

-        if (path != null) {

-          SCAPreferencePage.this.logFileDirectoryText.setText(path);

-        }

-      }

-    });

-

-    SelectionAdapter selectionListener = new SelectionAdapter() {

-

-      @Override

-      public void widgetSelected(final SelectionEvent event) {

-        Button b = ((Button) event.widget);

-        if (b.getSelection()) {

-          SCAPreferencePage.this.selectedButtons.add(b.getText());

-        }

-        else {

-          if (SCAPreferencePage.this.selectedButtons.contains(b.getText())) {

-            SCAPreferencePage.this.selectedButtons.remove(b.getText());

-          }

-        }

-        enableOrDisableText(SCAPreferencePage.this.selectedButtons);

-        validate();

-      }

-    };

-

-    for (Button b : this.checkBoxButtons) {

-      b.addSelectionListener(selectionListener);

-    }

-  }

-

-  /**

-   * This method sets the default values to the UI controls of this preference page. The default log file name is

-   * "sca.log" ,the default log file directory is user home directory and the default check box button selected is

-   * "Error log"

-   */

-  private void setDefaultsControls() {

-    this.selectedButtons.clear();

-    for (Button rButton : this.checkBoxButtons) {

-      if (SCAToolsPreferenceConstants.ERROR_LOG.equals(rButton.getText())) {

-        rButton.setSelection(true);

-        this.selectedButtons.add(rButton.getText());

-      }

-      else {

-        rButton.setSelection(false);

-      }

-    }

-

-    this.logFileNameLabel.setEnabled(false);

-    this.logFileNameText.setEnabled(false);

-    this.logFileDirectoryLabel.setEnabled(false);

-    this.logFileDirectoryText.setEnabled(false);

-    this.browse.setEnabled(false);

-

-  }

-

-  /**

-   * Sets the controls with the default values form the preference.ini file

-   */

-  private void setValuesToDefault() {

-    this.logFileNameText.setText(getPreferenceStore().getDefaultString(SCAToolsPreferenceConstants.TEXT_LOGFILENAME));

-    this.logFileDirectoryText

-        .setText(getPreferenceStore().getDefaultString(SCAToolsPreferenceConstants.TEXT_LOGFILEDIRECTORY));

-  }

-

-  /**

-   * This method will be called when the user clicks on "Restore defaults" button.It basically sets the default values

-   * of the UI controls.

-   */

-  @Override

-  protected void performDefaults() {

-    setDefaultsControls();

-    setValuesToDefault();

-    validate();

-  }

-

-

-  /**

-   * This method gets the values of the check box buttons selected, the log file name and the log file directory and

-   * save them in the preference store

-   */

-  private void savePreferences() {

-    this.scaLoggerType = new StringBuilder();

-    for (Map.Entry<String, String> entry : this.selectedCheckBox.entrySet()) {

-      String key = entry.getKey();

-      String value = entry.getValue();

-      if (this.selectedButtons.contains(value)) {

-        this.scaLoggerType = this.scaLoggerType.append(key + ";");

-      }

-    }

-    this.scaLoggerType =

-        new StringBuilder(this.scaLoggerType.substring(0, this.scaLoggerType.length() - 1));

-    getPreferenceStore().setValue(SCAToolsPreferenceConstants.SCA_LOGGER, this.scaLoggerType.toString());

-    getPreferenceStore().setValue(SCAToolsPreferenceConstants.TEXT_LOGFILENAME, this.logFileNameText.getText());

-    getPreferenceStore().setValue(SCAToolsPreferenceConstants.TEXT_LOGFILEDIRECTORY,

-        this.logFileDirectoryText.getText());

-

-    getPreferenceStore().setValue(SCAToolsPreferenceConstants.DEBUG_MODE, this.debugModeButton.getSelection());

-    Logmanager.getInstance().setDebugMode(this.debugModeButton.getSelection());

-  }

-

-

-  /**

-   * This method enables or disables the text controls depending on the check boxes that are selected the text controls

-   * are enabled when user clicks on "Log file" check box button.

-   *

-   * @param selected Set of check boxes that are selected

-   */

-  private void enableOrDisableText(final HashSet<String> selected) {

-    this.logFileDirectoryText.setEnabled(false);

-    this.logFileDirectoryLabel.setEnabled(false);

-    this.logFileNameText.setEnabled(false);

-    this.logFileNameLabel.setEnabled(false);

-    this.browse.setEnabled(false);

-

-

-    if (selected.contains(SCAToolsPreferenceConstants.LOG_FILE)) {

-      this.logFileDirectoryText.setEnabled(true);

-      this.logFileDirectoryLabel.setEnabled(true);

-      this.logFileNameText.setEnabled(true);

-      this.logFileNameLabel.setEnabled(true);

-      this.browse.setEnabled(true);

-    }

-

-  }

-

-

-  /**

-   * The method initializes the UI controls. It checks if there are any values stored in preference store, if yes the UI

-   * controls are set to those present in preference store else they are set to the defalt values

-   */

-  private void initializeValues() {

-    this.logFileNameText.setText(getPreferenceStore().getString(SCAToolsPreferenceConstants.TEXT_LOGFILENAME));

-    this.logFileDirectoryText.setText(getPreferenceStore().getString(SCAToolsPreferenceConstants.TEXT_LOGFILEDIRECTORY));

-

-    String selectedLoggers = getPreferenceStore().getString(SCAToolsPreferenceConstants.SCA_LOGGER);

-    if (selectedLoggers.isEmpty()) {

-      setDefaultsControls();

-    }

-    else {

-      String[] buttons = (selectedLoggers.split(";"));

-      for (String s : buttons) {

-        this.selectedButtons.add(this.selectedCheckBox.get(s));

-      }

-    }

-    initializeDebugMode(getPreferenceStore().getString(SCAToolsPreferenceConstants.DEBUG_MODE));

-    for (Button b : this.checkBoxButtons) {

-      if (this.selectedButtons.contains(b.getText())) {

-        b.setSelection(true);

-      }

-      else {

-        b.setSelection(false);

-      }

-    }

-    enableOrDisableText(this.selectedButtons);

-    validate();

-  }

-

-  /**

-   * Initializes the debug check box based on the give value

-   *

-   * @param value String

-   */

-  private void initializeDebugMode(final String value) {

-    if ("true".equals(value)) {

-      this.debugModeButton.setSelection(true);

-      Logmanager.getInstance().setDebugMode(true);

-    }

-    else {

-      this.debugModeButton.setSelection(false);

-      Logmanager.getInstance().setDebugMode(false);

-    }

-  }

-

-  /**

-   * This method disables the Ok and Apply button whenever there is an error message set.

-   */

-  private void disableOrEnableOkAndApplyButton() {

-    Button okButton = null;

-    PreferenceDialog iPreferencePageContainer = (PreferenceDialog) getContainer();

-

-    Composite buttons = (Composite) iPreferencePageContainer.buttonBar;

-    Control[] allbuttons = buttons.getChildren();

-    Composite compositeForButtons = (Composite) allbuttons[1];

-    for (Control b : compositeForButtons.getChildren()) {

-      if (b instanceof Button) {

-        Button presentButton = (Button) b;

-        if ("OK".equals(presentButton.getText())) {

-          okButton = presentButton;

-        }

-      }

-

-    }

-

-    Button applyButton = getApplyButton();

-    if ((okButton != null) && (applyButton != null)) {

-      if (getErrorMessage() != null) {

-        okButton.setEnabled(false);

-        applyButton.setEnabled(false);

-      }

-      else {

-        okButton.setEnabled(true);

-        applyButton.setEnabled(true);

-      }

-    }

-  }

-

-

-  /**

-   * This method will be called whenever the "Log File" check box button is selected. This method validates the Log File

-   * Name and Log File Directory text boxes and sets the error message whenever applicable.

-   */

-  private void validatelogFile() {

-    if (this.logFileNameText.getText().endsWith(".log") && (new File(this.logFileDirectoryText.getText())).exists()) {

-      setErrorMessage(null);

-    }

-    else {

-      if (!this.logFileNameText.getText().endsWith(".log")) {

-        this.errorMessage = "Log File name should end with .log";

-        setErrorMessage(this.errorMessage);

-      }

-    }

-  }

-

-

-  private void addKeyListenerToTextBox(final Text t) {

-    t.addKeyListener(new KeyListener() {

-

-

-      @Override

-      public void keyReleased(final KeyEvent e) {

-        validate();

-      }

-

-      @Override

-      public void keyPressed(final KeyEvent e) {

-        validate();

-      }

-    });

-  }

-

-  private void initializeMap() {

-    this.selectedCheckBox = new HashMap<String, String>();

-    this.selectedCheckBox.put(LoggerType.ECLIPSE_CONSOLE.toString(), SCAToolsPreferenceConstants.ECLIPSE_CONSOLE);

-    this.selectedCheckBox.put(LoggerType.ERROR_LOG.toString(), SCAToolsPreferenceConstants.ERROR_LOG);

-    this.selectedCheckBox.put(LoggerType.PROBLEMS_LOG.toString(), SCAToolsPreferenceConstants.PROBLEMS_LOG);

-    this.selectedCheckBox.put(LoggerType.TEXT_FILE.toString(), SCAToolsPreferenceConstants.LOG_FILE);

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public String getToolId() {

-    return SCAToolsPreferenceConstants.SCA_TOOL_ID;

-  }

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/interfaces/IExportPreferences.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/interfaces/IExportPreferences.java
deleted file mode 100644
index 05f3374..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/preferences/interfaces/IExportPreferences.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca.ui.preferences.interfaces;

-

-import java.util.List;

-

-import org.eclipse.jface.preference.IPreferenceStore;

-

-/**

- * The contribution class of the extension point org.eclipse.app4mc.ui.exportOptions need to implement the below

- * interface. The extension point expect the keys that are to be exported as part of the options file and the preference

- * store from which the value of the keys are to be fetched.

- */

-public interface IExportPreferences {

-

-  /**

-   * Mentions all the preferences to be exported to the options file

-   *

-   * @return List of preferences to be exported

-   */

-  public List<String> keysToExport();

-

-  /**

-   * Specifies the preference store from which the preferences are to be exported

-   *

-   * @return {@link IPreferenceStore}

-   */

-  public IPreferenceStore getPreferenceStore();

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/AmaltheaWizardPreferenceConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/AmaltheaWizardPreferenceConstants.java
new file mode 100644
index 0000000..f69f429
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/AmaltheaWizardPreferenceConstants.java
@@ -0,0 +1,63 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+
+/**
+ * Constants class for Amalthea wizard preferences
+ */
+public class AmaltheaWizardPreferenceConstants {
+
+  /**
+   * Project path in the file system
+   */
+  public static final String PROJECT_PATH = "projectPath";
+
+  /**
+   * Preference key for build_cmds.log file
+   */
+  public static final String BUILD_CMDS_LOG_FILE = "buildCmdsLogFile";
+
+  /**
+   * Preference key for OS lock function file
+   */
+  public static final String OS_LOCK_FILE = "lockInfo";
+  /**
+   * Preference key for Task/Scheduling file
+   */
+  public static final String TASK_SCHEDULING_FILE = "taskInfo";
+
+  /**
+   * Preference key for Path to output directory
+   */
+  public static final String OUTPUT_DIRECTORY = "outputPath";
+
+  /**
+   * Preference key for Generate struct members option.
+   */
+  public static final String ENABLE_STRUCT_MEMBER_KEY = "enableStructMember";
+
+  /**
+   * Preference key for Path to llvm executable option
+   */
+  public static final String AST_PATH_KEY = "astPath";
+  /**
+   * Preference key for header directories list option.
+   */
+  public static final String HDIR_LIST_KEY = "hdirList";
+
+  /**
+   * Preference key for build command log option.
+   */
+  public static final String BLOG_KEY = "blog";
+
+  /**
+  *
+  */
+  private AmaltheaWizardPreferenceConstants() {
+    // default constructor
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonInfo.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonInfo.java
new file mode 100644
index 0000000..9b67f66
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonInfo.java
@@ -0,0 +1,64 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+
+/**
+ * Class for storing swt button information.
+ */
+public class ButtonInfo {
+
+  private final String buttonName;
+  private final String buttonId;
+  private final ButtonType buttonType;
+
+  /**
+   * @param name
+   * @param id
+   */
+  public ButtonInfo(final String name, final String id, final ButtonType buttonType) {
+    this.buttonName = name;
+    this.buttonId = id;
+    this.buttonType = buttonType;
+  }
+
+
+  /**
+   * @return the buttonName
+   */
+  public String getButtonName() {
+    return this.buttonName;
+  }
+
+
+  /**
+   * @return the buttonId
+   */
+  public String getButtonId() {
+    return this.buttonId;
+  }
+
+
+  /**
+   * @return the buttonType
+   */
+  public ButtonType getButtonType() {
+    return this.buttonType;
+  }
+
+  @Override
+  public boolean equals(final Object buttonInfo) {
+    if (buttonInfo instanceof ButtonInfo) {
+      return this.buttonName.equals(((ButtonInfo) buttonInfo).getButtonName());
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    return this.buttonName.hashCode();
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonType.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonType.java
new file mode 100644
index 0000000..656a8e1
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/ButtonType.java
@@ -0,0 +1,27 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+
+/**
+ * Enum representing button type.
+ */
+public enum ButtonType {
+
+                        /**
+                         * For Browsing a file.
+                         */
+                        BROWSE_FILE,
+                        /**
+                         * For Browsing a Directory.
+                         */
+                        BROWSE_FOLDER,
+                        /**
+                         * For Removing items.
+                         */
+                        REMOVE
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IAmaltheaGenerator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IAmaltheaGenerator.java
new file mode 100644
index 0000000..950e406
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IAmaltheaGenerator.java
@@ -0,0 +1,28 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * This is the generator interface class for Amalthea generation
+ */
+@FunctionalInterface
+public interface IAmaltheaGenerator {
+
+  /**
+   * Funcitonality for amalthea generation based on the provided input @Properties
+   *
+   * @param monitor IProgressMonitor
+   * @param properties Properties
+   * @return IStatus
+   */
+  public IStatus execute(final IProgressMonitor monitor, final Properties properties);
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IOptionsProvider.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IOptionsProvider.java
new file mode 100644
index 0000000..fd58810
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/IOptionsProvider.java
@@ -0,0 +1,22 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+import java.util.Properties;
+
+/**
+ * This is an interface to handle input/output Properties/Options.
+ */
+public interface IOptionsProvider {
+
+  /**
+   * @return - Contains all properties (UI and Tool properties)
+   */
+  public Properties getOptions();
+
+
+}
+
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelListButtonCreator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelListButtonCreator.java
new file mode 100644
index 0000000..58b1c2d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelListButtonCreator.java
@@ -0,0 +1,214 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Utility to create label, list and the buttons.
+ */
+public class LabelListButtonCreator {
+
+  /**
+   * {@link Label}
+   */
+  private Label label;
+  /**
+   * {@link Text}
+   */
+  private List listBox;
+
+  private final java.util.List<Button> buttons = new ArrayList<>();
+
+  private final Map<String, ButtonInfo> buttonInfoMap = new HashMap<>();
+  /**
+   * the project base path
+   */
+  private String basePath;
+
+
+  /**
+   * @param parent the root composite on which the label ,list and buttons are created.
+   * @param labelName the name of the label.
+   * @param listBoxId the list instance.
+   * @param buttonInfoList list of buttoninfo instances
+   */
+  public LabelListButtonCreator(final Composite parent, final String labelName, final String listBoxId,
+      final java.util.Set<ButtonInfo> buttonInfoList) {
+    createComponent(parent, labelName, listBoxId, buttonInfoList);
+  }
+
+  /**
+   * @param parent Composite into which this LabelTextButton composite is to be placed
+   * @param labelName label's text
+   * @param listBoxId - list Field Id
+   * @param buttonInfoList list of buttoninfo instances
+   */
+  public void createComponent(final Composite parent, final String labelName, final String listBoxId,
+      final java.util.Set<ButtonInfo> buttonInfoList) {
+    // Create Label
+    this.label = new Label(parent, SWT.LEFT);
+    this.label.setText(labelName);
+    this.label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
+    // Create List Field
+    this.listBox = new List(parent, SWT.BORDER);
+    this.listBox.setData("name", listBoxId);
+    this.listBox.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+
+
+    Composite buttonComposite = new Composite(parent, SWT.NONE);
+    buttonComposite.setLayout(new GridLayout(1, false));
+    buttonComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, -1));
+
+    // Create buttons
+    for (ButtonInfo buttonInfo : buttonInfoList) {
+      Button button = new Button(buttonComposite, SWT.PUSH);
+      button.setData("name", buttonInfo.getButtonId());
+      button.setText(buttonInfo.getButtonName());
+      button.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false));
+      this.buttons.add(button);
+      this.buttonInfoMap.put(buttonInfo.getButtonName(), buttonInfo);
+    }
+
+
+    GridData listData = (GridData) this.listBox.getLayoutData();
+    listData.heightHint = this.listBox.computeTrim(0, 0, 0, this.listBox.getItemHeight() * 4).height;
+
+  }
+
+  /**
+   * Adds listeners to the buttons of the list boxes.
+   */
+  public void addListeners() {
+    for (Button b : this.buttons) {
+      ButtonInfo buttonInfo = this.buttonInfoMap.get(b.getText());
+      if (buttonInfo.getButtonType().equals(ButtonType.BROWSE_FILE)) {
+        b.addSelectionListener(new SelectionAdapter() {
+
+          @Override
+          public void widgetSelected(final SelectionEvent e) {
+            FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell());
+            String filePath = dialog.open();
+            if (filePath != null) {
+              LabelListButtonCreator.this.listBox.add(filePath);
+            }
+          }
+        });
+      }
+      else if (buttonInfo.getButtonType().equals(ButtonType.BROWSE_FOLDER)) {
+        b.addSelectionListener(new SelectionAdapter() {
+
+          @Override
+          public void widgetSelected(final SelectionEvent e) {
+            DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
+            String directoryPath = dialog.open();
+            if (directoryPath != null) {
+              LabelListButtonCreator.this.listBox.add(directoryPath);
+            }
+          }
+        });
+      }
+      else if (buttonInfo.getButtonType().equals(ButtonType.REMOVE)) {
+        this.listBox.remove(this.listBox.getSelectionIndices());
+      }
+    }
+  }
+
+
+  /**
+   * @param pathname
+   */
+  public void setFilePath(final String pathname) {
+    Display.getDefault().syncExec(() -> {
+
+      if ((this.basePath != null) && !this.basePath.isEmpty()) {
+        try {
+          String path = new File(this.basePath).getCanonicalPath();
+          if (pathname.indexOf(path + File.separatorChar) != -1) {
+            this.listBox.add(pathname.substring(this.basePath.length() - 1));
+          }
+          else if (pathname.equalsIgnoreCase(path)) {
+            this.listBox.add("");
+          }
+          else {
+            this.listBox.add(pathname);
+          }
+        }
+        catch (IOException e) {
+          this.listBox.add(pathname);
+        }
+      }
+      else {
+        this.listBox.add(pathname);
+      }
+    });
+
+  }
+
+  /**
+   * @return the labelName
+   */
+  public Label getLabel() {
+    return this.label;
+  }
+
+  /**
+   * @return
+   */
+  public java.util.List<Button> getButtonList() {
+    return this.buttons;
+  }
+
+  /**
+   * @return
+   */
+  public Map<String, ButtonInfo> getButtonInfoMap() {
+    return this.buttonInfoMap;
+  }
+
+  /**
+   * @return
+   */
+  public List getListBox() {
+    return this.listBox;
+  }
+
+  /**
+   * @param projectLocation the project base path to set
+   */
+  public void setProjectPath(final String projectLocation) {
+    if (projectLocation.substring(projectLocation.length() - 1).equals(File.separator)) {
+      this.basePath = projectLocation;
+    }
+    this.basePath = projectLocation + File.separator;
+  }
+
+  /**
+   * @return the project base path
+   */
+  public String getProjectPath() {
+    return this.basePath;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelTextButtonCreator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelTextButtonCreator.java
new file mode 100644
index 0000000..5925fc3
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/LabelTextButtonCreator.java
@@ -0,0 +1,344 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+
+/**
+ * This class creates the often used combination of label, text and button
+ */
+public class LabelTextButtonCreator {
+
+  /**
+   * {@link Label}
+   */
+  private Label label;
+  /**
+   * {@link Text}
+   */
+  private Text textField;
+  /**
+   * {@link Button}
+   */
+  private Button button;
+  /**
+   * the project base path
+   */
+  private String basePath;
+  /**
+   * the absolute path to the given file
+   */
+  private String absolutePath = "";
+  private String optionalButtonTitle;
+  private Button optionalButton;
+  private int optionalButtonStyle;
+  private final LinkedHashMap<String, String> textHistory;
+
+  /**
+   * Constructor used for LabelTextButton composite.
+   *
+   * @param parent -Parent Composite
+   * @param labelName - Label Name
+   * @param textFieldId - Text Field Id
+   * @param buttonName - Button Name
+   * @param buttonId - Button Id
+   */
+  public LabelTextButtonCreator(final Composite parent, final String labelName, final String textFieldId,
+      final String buttonName, final String buttonId) {
+    createComponent(parent, labelName, textFieldId, buttonName, buttonId);
+    this.textHistory = new LinkedHashMap<>();
+  }
+
+
+  /**
+   * Constructor used for LabelTextButton composite with optional button
+   *
+   * @param parent {@link Composite}
+   * @param labelName Label Name
+   * @param textFieldId Text Field id
+   * @param buttonName Button name
+   * @param buttonId Button id
+   * @param optButtonStyle Optional button Style
+   * @param optButtonTitle Optional Button title
+   */
+  public LabelTextButtonCreator(final Composite parent, final String labelName, final String textFieldId,
+      final String buttonName, final String buttonId, final int optButtonStyle, final String optButtonTitle) {
+    this.optionalButtonStyle = optButtonStyle;
+    this.optionalButtonTitle = optButtonTitle;
+    createComponent(parent, labelName, textFieldId, buttonName, buttonId);
+    this.textHistory = new LinkedHashMap<>();
+  }
+
+
+  /**
+   * @return children items.
+   */
+  public Control[] getChildren() {
+    List<Control> children = new ArrayList<>();
+    Control[] mandatoryControls = new Control[] { this.label, this.textField, this.button };
+    children.addAll(Arrays.asList(mandatoryControls));
+    // Check if Optional Button has been provided
+    if (hasOptionalButton()) {
+      children.add(this.optionalButton);
+    }
+    return children.toArray(new Control[children.size()]);
+  }
+
+  /**
+   * @param parent Composite into which this LabelTextButton composite is to be placed
+   * @param labelName label's text
+   * @param textFieldId - Text Field Id
+   * @param buttonName button's text
+   * @param buttonId - Button Id
+   */
+  public void createComponent(final Composite parent, final String labelName, final String textFieldId,
+      final String buttonName, final String buttonId) {
+    // Create Label
+    this.label = new Label(parent, SWT.LEFT);
+    this.label.setText(labelName);
+    this.label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
+    // Create Text Field
+    this.textField = new Text(parent, SWT.BORDER);
+    this.textField.setData("name", textFieldId);
+    this.textField.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+    this.textField.addVerifyListener(e -> {
+      // text field content before change
+      String currentText = ((Text) e.widget).getText();
+      // text field content after change
+      String changedText = currentText.substring(0, e.start) + e.text + currentText.substring(e.end);
+      validateTextEntry(changedText);
+    });
+
+
+    // Create button
+    this.button = new Button(parent, SWT.PUSH);
+    this.button.setData("name", buttonId);
+    this.button.setText(buttonName);
+    this.button.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, -1));
+
+    // Create Optional Button if needed
+    if (hasOptionalButton()) {
+      // depending on page it can be check box or push button
+      this.optionalButton = new Button(parent, this.optionalButtonStyle);
+      this.optionalButton.setText(this.optionalButtonTitle);
+      this.optionalButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+    }
+  }
+
+
+  /**
+   * @return true if this LabelTextButtonCreator component has the optional Label + Button, false otherwise
+   */
+  private boolean hasOptionalButton() {
+    return !((this.optionalButtonTitle == null) || this.optionalButtonTitle.isEmpty());
+  }
+
+
+  /**
+   * Enable / Disable the control
+   *
+   * @param enabled Indicates if the control should be enabled or disabled
+   */
+
+  public void setEnabled(final boolean enabled) {
+    if (this.label != null) {
+      this.label.setEnabled(enabled);
+    }
+    if (this.textField != null) {
+      this.textField.setEnabled(enabled);
+    }
+    if (this.button != null) {
+      this.button.setEnabled(enabled);
+    }
+  }
+
+  /**
+   * method to retain the relative path to project level
+   *
+   * @param pathname : set path from UI
+   */
+  public void setFilePath(final String pathname) {
+
+    Display.getDefault().syncExec(() -> {
+
+      if ((this.basePath != null) && !this.basePath.isEmpty()) {
+        try {
+          String path = new File(this.basePath).getCanonicalPath();
+          if (pathname.indexOf(path + File.separatorChar) != -1) {
+            this.textField.setText(pathname.substring(this.basePath.length() - 1));
+          }
+          else if (pathname.equalsIgnoreCase(path)) {
+            this.textField.setText("");
+          }
+          else {
+            this.textField.setText(pathname);
+          }
+        }
+        catch (IOException e) {
+          this.textField.setText(pathname);
+        }
+      }
+      else {
+        this.textField.setText(pathname);
+      }
+    });
+  }
+
+
+  /**
+   * Validates the provided path inside this LabelTextButtonCreator's text field and triggers respective notifications
+   * to be displayed in this LabelTextButtonCreator's notification component.
+   *
+   * @param filePath to be validated
+   */
+  public void validateTextEntry(final String filePath) {
+    if (filePath != null) {
+      String tempFilePath = filePath.trim();
+      if (!tempFilePath.isEmpty() &&
+          (new File(tempFilePath).exists() || new File(this.basePath + tempFilePath).exists())) {
+        setAbsolutePath(tempFilePath);
+      }
+      else if (tempFilePath.isEmpty()) {
+        this.absolutePath = "";
+      }
+    }
+  }
+
+
+  /**
+   * @param filePath
+   */
+  private void setAbsolutePath(final String filePath) {
+    if (new File(filePath).exists()) {
+      this.absolutePath = filePath;
+    }
+    else {
+      if (new File(filePath).isAbsolute()) {
+        this.absolutePath = filePath;
+      }
+      else if (new File(this.basePath + filePath).exists()) {
+        this.absolutePath = new File(this.basePath + filePath).getAbsolutePath();
+      }
+      else {
+        this.absolutePath = this.basePath + filePath;
+      }
+    }
+    this.textHistory.put(this.label.getText(), this.absolutePath);
+  }
+
+
+  /**
+   * @return the labelName
+   */
+  public Label getLabel() {
+    return this.label;
+  }
+
+
+  /**
+   * @return the textFieldName
+   */
+
+  public Text getTextField() {
+    return this.textField;
+  }
+
+
+  /**
+   * @return the buttonName
+   */
+
+  public Button getButton() {
+    return this.button;
+  }
+
+  /**
+   * @return the Optional Button
+   */
+  public Button getOptionalButton() {
+    return this.optionalButton;
+  }
+
+  /**
+   * @param projectLocation the project base path to set
+   */
+  public void setProjectPath(final String projectLocation) {
+    if (projectLocation.substring(projectLocation.length() - 1).equals(File.separator)) {
+      this.basePath = projectLocation;
+    }
+    this.basePath = projectLocation + File.separator;
+  }
+
+  /**
+   * @return the project base path
+   */
+  public String getProjectPath() {
+    return this.basePath;
+  }
+
+
+  /**
+   * @return the absolutePath of the file/directory given in text field
+   */
+
+  public String getAbsoluteFilePath() {
+    return this.absolutePath;
+  }
+
+
+  /**
+   * @return the text history
+   */
+  public Map<String, String> getTextHistory() {
+    return this.textHistory;
+  }
+
+
+  /**
+   * @return the location for the Dialog to open in when pressing "Browse" button
+   */
+  public String provideDialogLocation() {
+    String location = getProjectPath();
+    String textEntry = getTextField().getText();
+
+    File file = new File(textEntry);
+    // dialog per default shall open either in location provided in text field or in project base path
+    if (!textEntry.isEmpty()) {
+      // try to set location to provided path of text field
+      if (file.exists()) {
+        // as is (full path)
+        if (file.isDirectory()) {
+          location = file.getPath();
+        }
+        else {
+          location = file.getParent();
+        }
+      }
+      else if (new File(getProjectPath() + textEntry).exists()) {
+        // base path + text field entry (full path = base path + relative path)
+        location = new File(getProjectPath() + textEntry).getParent();
+      }
+    }
+    return location;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/NoScrollFormLayout.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/NoScrollFormLayout.java
new file mode 100644
index 0000000..06a2969
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/NoScrollFormLayout.java
@@ -0,0 +1,46 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * This layout is intended to be assigned to the body composite of a FormPage with a ScrolledForm. It ensures that the
+ * body composite will never exceed the size of the form window thereby inhibiting the form from creating scrollbars.
+ */
+public class NoScrollFormLayout extends Layout {
+
+  /**
+   * Always return 1,1. Indicating to the parent Form that this composite will shrink to the desired size.
+   */
+  @Override
+  protected Point computeSize(final Composite composite, final int wHint, final int hHint, final boolean flushCache) {
+    // Compute sie for Point
+    return new Point(1, 1);
+  }
+
+  /**
+   * All child composites will be made the size of the form.
+   */
+  @Override
+  protected void layout(final Composite composite, final boolean flushCache) {
+    // |Get the children from the composite
+    Control[] children = composite.getChildren();
+    // Get client area for each child element and set bounds
+    for (Control element : children) {
+      // Get client area
+      Rectangle bounds = composite.getClientArea();
+      if (bounds != null) {
+        // Set bounds
+        element.setBounds(bounds);
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsPreferenceConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsPreferenceConstants.java
deleted file mode 100644
index 8283766..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsPreferenceConstants.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca.ui.util;

-

-

-/**

- * Constants class to contain all the constants used in ui features

- */

-public final class SCAToolsPreferenceConstants {

-

-  /**

-   * Private Constructor

-   */

-  private SCAToolsPreferenceConstants() {

-    // Private constructor

-  }

-

-  /**

-   * SCA Tool id

-   */

-  public static final String SCA_TOOL_ID = "SCATOOLs";

-

-  /**

-   * default directory of the log file

-   */

-  public static final String DEFAULT_DIRECTORY = System.getProperty("user.home");

-

-  /**

-   * preference name of the log file

-   */

-  public static final String TEXT_LOGFILENAME = "LOG_FILE_NAME";

-

-  /**

-   * preference name of the log file directory

-   */

-  public static final String TEXT_LOGFILEDIRECTORY = "LOG_FILE_DIRECTORY";

-

-  /**

-   * preference name of the radio buttons

-   */

-  public static final String SCA_LOGGER = "SCA_LOGGER";

-

-  /**

-   * preference page description

-   */

-  public static final String PREFERENCE_PAGE_DESCRIPTION = "General settings for multicore tools";

-

-  /**

-   * Log File radio button.

-   */

-  public static final String LOG_FILE = "Log File";

-

-

-  /**

-   * Error Log radio button.

-   */

-  public static final String ERROR_LOG = "Error Log";

-

-  /**

-   * Eclipse Console radio button.

-   */

-  public static final String ECLIPSE_CONSOLE = "Eclipse Console";

-

-  /**

-   * Problems Log radio button.

-   */

-  public static final String PROBLEMS_LOG = "Problems Log";

-

-  /**

-   * Debug mode check box label

-   */

-  public static final String DEBUG_MODE_LABEL = "Enable/Disable debug mode";

-  /**

-   * Debug mode key

-   */

-  public static final String DEBUG_MODE = "DEBUG_MODE";

-

-  /**

-   * OPT export failed message

-   */

-  public static final String OPT_EXPORT_FAILED = "";

-  /**

-   * OPT export success message

-   */

-  public static final String OPT_EXPORT_SUCCESS = "Preferences appended to the given file successfully";

-  /**

-   * Message to be displayed when the file name or the tool id is empty

-   */

-  public static final String EMPTY_FILE_OR_TOOL_ID = "Tool ID and Input file path cannot be empty or null";

-  /**

-   * Message to be displayed when the extension of the file provided is invalid

-   */

-  public static final String INVALID_EXT =

-      "The input file should have .opt extension. Create an opt file and try again";

-  /**

-   * Message to be displayed when the file provided is invalid

-   */

-  public static final String INVALID_FILE = "No file exists in the path provided. Create an opt file and try again";

-  /**

-   * Message to be displayed when the tood id provided is invalid

-   */

-  public static final String INVALID_TOOLID = "Invalid tool id. Please check and retry";

-  /**

-   * Options file extension

-   */

-  public static final String OPTIONS_FILE_EXT = ".opt";

-

-

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsUIUtil.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsUIUtil.java
index d0a25b9..90e4eec 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsUIUtil.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/SCAToolsUIUtil.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -15,28 +15,16 @@
 package org.eclipse.app4mc.sca.ui.util;

 

 import java.io.File;

-import java.io.FileInputStream;

-import java.io.FileOutputStream;

 import java.io.IOException;

-import java.io.InputStream;

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

-import java.util.Properties;

-import java.util.Set;

+import java.util.Arrays;

 

-import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

-import org.eclipse.app4mc.sca.logging.manager.Logmanager;

-import org.eclipse.app4mc.sca.logging.util.SCALogConstants;

-import org.eclipse.app4mc.sca.ui.Activator;

-import org.eclipse.app4mc.sca.ui.preferences.interfaces.IExportPreferences;

-import org.eclipse.app4mc.sca.util.parsers.OptionsFileParser;

-import org.eclipse.core.runtime.IConfigurationElement;

-import org.eclipse.core.runtime.IExtension;

-import org.eclipse.core.runtime.InvalidRegistryObjectException;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.jface.preference.IPreferenceStore;

+import org.eclipse.core.resources.IProject;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.ProjectScope;

+import org.eclipse.core.runtime.preferences.IEclipsePreferences;

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.IStructuredSelection;

+import org.eclipse.ui.PlatformUI;

 

 /**

  * Utilities for all the SCA ui operations

@@ -44,231 +32,112 @@
 public final class SCAToolsUIUtil {

 

   /**

-   * Map that contains all the keys that are to be exported for a given tool

-   */

-  private static HashMap<String, List<String>> exportKeyList = null;

-

-  private static HashMap<String, IPreferenceStore> preferenceStoreMap = new HashMap<String, IPreferenceStore>();

-

-  /**

-   * Extension point id of {@code productNameAndVersionDefinition} extension point

-   */

-  private static final String EXT_POINT_ID = "org.eclipse.app4mc.ui.exportOptions";

-

-  /**

    * Private constructor

    */

   private SCAToolsUIUtil() {

     // Private constructor

   }

 

-  /**

-   * Loads the contributed keys that are to be exported as options file

-   */

-  private static void loadExportKeyContributions() {

-    try {

-      if ((exportKeyList == null)) {

-        synchronized (SCAToolsUIUtil.class) {

-          exportKeyList = new HashMap<String, List<String>>();

-        }

-      }

-      IExtension[] extensions = Platform.getExtensionRegistry().getExtensionPoint(EXT_POINT_ID).getExtensions();

-      for (IExtension extension : extensions) {

-        IConfigurationElement[] configElements = extension.getConfigurationElements();

-        for (IConfigurationElement configElement : configElements) {

-          String preferenceClass = configElement.getAttribute("preferences");

-          String toolId = configElement.getAttribute("tool");

-          exportKeyList.put(toolId, fetchKeysFromClass(preferenceClass, extension, exportKeyList.get(toolId), toolId));

-        }

-      }

-    }

-    catch (InvalidRegistryObjectException e) {

-      Logmanager.getInstance().logException(SCAToolsUIUtil.class, e, SCALogConstants.PLUGIN_ID);

-    }

-  }

 

   /**

-   * Fetches the keys to be exported from the contributed class and returns the list

+   * method to get the absolute path to project level

    *

-   * @param preferenceClass

-   * @param extension The extension from which

-   * @param keyList The key list. null in case its empty

-   * @return Returns the keyList to be added to the tool

+   * @param projectPath - project path

+   * @param absoluteOrRelativePath : relative path of the file

+   * @return absolute path of the file

    */

-  @SuppressWarnings("unchecked")

-  private static List<String> fetchKeysFromClass(final String preferenceClass, final IExtension extension,

-      final List<String> keyList, final String toolId) {

-    if (preferenceClass != null) {

-      Class<IExportPreferences> preference;

-      try {

-        preference = (Class<IExportPreferences>) Platform.getBundle(extension.getContributor().getName())

-            .loadClass(preferenceClass);

-        IExportPreferences preferenceInstance = preference.newInstance();

-        preferenceStoreMap.put(toolId, preferenceInstance.getPreferenceStore());

-        if (keyList == null) {

-          ArrayList<String> newList = new ArrayList<String>();

-          newList.addAll(preferenceInstance.keysToExport());

-          return newList;

-        }

-        keyList.addAll(preferenceInstance.keysToExport());

-      }

-      catch (ClassNotFoundException | InvalidRegistryObjectException | InstantiationException

-          | IllegalAccessException e) {

-        Logmanager.getInstance().logException(SCAToolsUIUtil.class, e, SCALogConstants.PLUGIN_ID);

-      }

-    }

-    return keyList;

-  }

-

-  /**

-   * Uses the properties API to export the preferences to the options file

-   *

-   * @param opFile The options file to which the properties are to be exported

-   * @param store the given preference store

-   * @param toolId The tool for which the preferences are to be exported to the options file

-   */

-  public static void exportProperties(final File opFile, final IPreferenceStore store, final String toolId) {

-    List<String> keysToExport = getKeysToExport(toolId);

-    IPreferenceStore prefStore = store;

-    if (prefStore == null) {

-      prefStore = preferenceStoreMap.get(toolId);

-    }

+  public static String getProjectAbsoluteFilePath(final String projectPath, final String absoluteOrRelativePath) {

     try {

-      updateAndSaveProperties(opFile, keysToExport, prefStore);

+      if ((projectPath != null) && (absoluteOrRelativePath != null)) {

+        // get canonical path

+        String path = new File(projectPath).getCanonicalPath();

+        if (new File(absoluteOrRelativePath).isAbsolute()) {

+          return absoluteOrRelativePath;

+        }

+        File projectAbsPath = new File(path + File.separator + absoluteOrRelativePath);

+        if (projectAbsPath.exists()) {

+          return projectAbsPath.getAbsolutePath();

+        }

+      }

+      return absoluteOrRelativePath;

     }

     catch (IOException e) {

-      Logmanager.getInstance().logException(SCAToolsUIUtil.class, e, Activator.PLUGIN_ID);

-    }

-  }

-

-  /**

-   * Saves the given properties to the given file

-   *

-   * @param prop the properties to be saved

-   * @param opFile The file to which the properties are to be saved

-   * @throws IOException exception in case if something goes wrong

-   */

-  private static void saveProperties(final Properties properties, final File opFile) throws IOException {

-    FileOutputStream fr = new FileOutputStream(opFile);

-    properties.store(fr, "Properties");

-    fr.close();

-  }

-

-  /**

-   * Retreives the keys for the given tool id

-   *

-   * @param toolId String

-   * @return {@link String}

-   */

-  public static List<String> getKeysToExport(final String toolId) {

-    if ((exportKeyList == null)) {

-      loadExportKeyContributions();

-    }

-    return exportKeyList.get(toolId);

-  }

-

-

-  /**

-   * Appends the given preferences to the provided input file

-   *

-   * @param inputOptFilePath THe input options file to which the preferences are exported

-   * @param toolId The tool for which the preferences are to be exported

-   * @throws IOException Exception in case something goes wrong

-   * @throws App4mcLoggerException if the validation fails

-   */

-  public static void exportPropertiesToInputFile(final String inputOptFilePath, final String toolId)

-      throws IOException, App4mcLoggerException {

-

-    File inputFile = new File(inputOptFilePath);

-    validate(toolId, inputOptFilePath, inputFile);

-    List<String> keysToExport = getKeysToExport(toolId);

-    if (!exportKeyList.containsKey(toolId)) {

-      throw new App4mcLoggerException(SCAToolsPreferenceConstants.INVALID_TOOLID);

-    }

-    IPreferenceStore iPreferenceStore = preferenceStoreMap.get(toolId);

-    removePreferencesPresentInOptionsFile(keysToExport, inputOptFilePath);

-    try {

-      updateAndSaveProperties(inputFile, keysToExport, iPreferenceStore);

-      Logmanager.getInstance().log(SCAToolsPreferenceConstants.OPT_EXPORT_SUCCESS);

-    }

-    catch (IOException e) {

-      Logmanager.getInstance().logException(SCAToolsUIUtil.class, e, Activator.PLUGIN_ID);

-    }

-  }

-

-  /**

-   * @param inputFile

-   * @param keysToExport

-   * @param iPreferenceStore

-   * @throws IOException

-   * @throws App4mcLoggerException

-   */

-  private static void updateAndSaveProperties(final File inputFile, final List<String> keysToExport,

-      final IPreferenceStore iPreferenceStore) throws IOException, App4mcLoggerException {

-    Properties properties = new Properties();

-    InputStream in = new FileInputStream(inputFile);

-    properties.load(in);

-    for (String key : keysToExport) {

-      String prefValue = iPreferenceStore.getString(key);

-      properties.setProperty(key, prefValue);

-    }

-    saveProperties(properties, inputFile);

-  }

-

-  /**

-   * Removes the keys that are already part of the options file from the keys that are to be exported. This makes sure

-   * that only the keys that are not there in the options file are written on to the file

-   *

-   * @param keysToExport {@link List}

-   */

-  private static void removePreferencesPresentInOptionsFile(final List<String> keysToExport, final String optFilePath) {

-    Map<?, ?> properties = loadOptionsFile(optFilePath);

-    Set<?> keySet = properties.keySet();

-    for (Object key : keySet) {

-      keysToExport.remove(key);

-    }

-  }

-

-  /**

-   * Loads the given input options file to the properties map

-   *

-   * @param optFilePath the given options file

-   * @return Returns the properties that contains all the key and values

-   */

-  private static Map<?, ?> loadOptionsFile(final String optFilePath) {

-    OptionsFileParser parser = new OptionsFileParser();

-    return parser.load(optFilePath, null);

-  }

-

-  /**

-   * Validates the parameters

-   */

-  private static void validate(final String toolId, final String inputFilePath, final File inputFile)

-      throws App4mcLoggerException {

-    if ((toolId == null) || toolId.isEmpty() || (inputFilePath == null) || inputFilePath.isEmpty()) {

-      throw new App4mcLoggerException(SCAToolsPreferenceConstants.EMPTY_FILE_OR_TOOL_ID);

-    }

-    if (!inputFile.exists()) {

-      throw new App4mcLoggerException(SCAToolsPreferenceConstants.INVALID_FILE);

-    }

-    else if (!inputFilePath.endsWith(SCAToolsPreferenceConstants.OPTIONS_FILE_EXT)) {

-      throw new App4mcLoggerException(SCAToolsPreferenceConstants.INVALID_EXT);

+      return absoluteOrRelativePath;

     }

   }

 

 

   /**

-   * @return the exportKeyList

+   * @param projectPath - Project path

+   * @param path - Absoulte/Relative path

+   * @param isFile - true if it is file else false(for directory)

+   * @param fileExtension - File extension

+   * @return true if valid else false

    */

-  public static Map<String, List<String>> getExportKeyList() {

-    return exportKeyList;

+  public static boolean validatePath(final String projectPath, final String path, final boolean isFile,

+      final String... fileExtension) {

+    if ((projectPath != null) && !projectPath.isEmpty()) {

+      File file = new File(getProjectAbsoluteFilePath(projectPath, path.trim()));

+      String extension = file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf('.') + 1);

+      if (isFile && (fileExtension != null)) {

+        return (file.canRead() && file.isFile() &&

+            Arrays.asList(fileExtension).stream().anyMatch(e -> e.equalsIgnoreCase(extension) || e.equals("*.*")));

+      }

+      return (file.canRead() && file.isDirectory());

+    }

+    return false;

   }

 

-

   /**

-   * @return the preferenceStoreMap

+   * @param path - path

+   * @return true if it is a drive else false

    */

-  public static Map<String, IPreferenceStore> getPreferenceStoreMap() {

-    return preferenceStoreMap;

+  public static boolean isDrive(final String path) {

+    String regex = "[a-zA-Z]:|[a-zA-Z]:\\\\";

+    return path.matches(regex);

   }

+

+  /**

+   * @param resource project whose preferences have to loaded.

+   * @param pluginId plugin id

+   * @return IEclipsePreferences

+   */

+  public static IEclipsePreferences loadProjectScopePrefs(final IProject resource, final String pluginId) {

+    ProjectScope projectScope = new ProjectScope(resource);

+    return projectScope.getNode(pluginId);

+  }

+

+  /**

+   * @return IProject

+   */

+  public static IProject getCurrentProjectResource() {

+    Object currentProjectResource = getSelectionObject();

+    if (currentProjectResource != null) {

+      return ((IResource) currentProjectResource).getProject();

+    }

+    return null;

+  }

+

+  /**

+   * @return selected element

+   */

+  public static Object getSelectionObject() {

+    ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();

+    if (selection instanceof IStructuredSelection) {

+      return ((IStructuredSelection) selection).getFirstElement();

+    }

+    return null;

+  }

+

+  /**

+   * @return the project folder path of the selected ifile.

+   */

+  public static String getCurrentSelectionProjectPath() {

+    IProject currentSelectionProject = getCurrentProjectResource();

+    if (currentSelectionProject != null) {

+      return currentSelectionProject.getLocation().toOSString();

+    }

+    return null;

+  }

+

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/WizardConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/WizardConstants.java
new file mode 100644
index 0000000..8e28bd0
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/util/WizardConstants.java
@@ -0,0 +1,123 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.util;
+
+/**
+ * This is constants class for common Wizard dialog for Elf2Amalthea/SCA2Amalthea
+ */
+public class WizardConstants {
+
+  /**
+   * Export Options button name
+   */
+  public static final String EXPORT_OPTIONS = "Export Options";
+  /**
+   * Default file name used during the export options button
+   */
+  public static final String DEFAULT_EX_OPT_FILE_NAME = "OptionsExport.opt";
+
+  /**
+   * Browse button name
+   */
+  public static final String BROWSE = "Browse";
+  /**
+   * Output
+   */
+  public static final String OUTPUT = "Output";
+
+  /**
+   * SW Data (Labels/Runnables)
+   */
+  public static final String SW_DATA = "SW Data (Labels/Runnables)";
+
+  /**
+   * Scheduling/OS Data
+   */
+  public static final String SCHEDULING_OS_DATA = "Scheduling/OS Data";
+  /**
+   * OS lock function file (optional)
+   */
+  public static final String OS_LOCK_FUNC_FILE = "OS lock function file (optional)";
+  /**
+   * Task/Scheduling file (optional)
+   */
+  public static final String TASK_SCHED_FILE = "Task/Scheduling file (optional)";
+
+  /**
+   * Path to output directory (optional)
+   */
+  public static final String OUTPUT_DIRECTORY_PATH = "Output directory (optional)";
+  /**
+   * Amalthea Generation
+   */
+  public static final String AMALTHEA_GENERATION = "Amalthea Generation";
+  /**
+   * Group Name used in sca2amalthea widget
+   */
+  public static final String GROUP_SCA2AMALTHEA = "SCA2AMALTHEA";
+  /**
+   * Generate struct member check box text.
+   */
+  public static final String GENERATE_STRUCT_MEMBER = "Generate Structure members";
+  /**
+   * LLVM Executable path label text
+   */
+  public static final String LLVM_PATH_TEXT = "LLVM Executable directory (optional)";
+  /**
+   * Header directories label text.
+   */
+  public static final String HEADER_DIRECTORIES = "Header directories (optional)";
+  /**
+   * New Button text.
+   */
+  public static final String NEW_BUTTON = "New";
+  /**
+   * Remove Button text.
+   */
+  public static final String REMOVE_BUTTON = "Remove";
+  /**
+   * Build cmd file label text.
+   */
+  public static final String BUILD_CMD_FILE = "Build command log file (optional)";
+
+  /**
+   * Error message to be shown when the path of the llvm executable is not existing.
+   */
+  public static final String LLVM_PATH_ERROR_MESSAGE = "Path to the llvm does not exist";
+  
+  /**
+   * Error message to be shown when the path of the llvm executable is not existing.
+   */
+  public static final String LLVM_PATH_DIR_MESSAGE = "Path to the llvm should be a directory";
+
+  /**
+   * Error message to be shown when the path of the llvm executable is empty.
+   */
+  public static final String LLVM_PATH_EMPTY_ERROR_MESSAGE = "Path to the llvm is mandatory";
+  /**
+   * Error message to be shown when the path of the build cmd file does not exit.
+   */
+  public static final String BUILD_CMD_FILE_ERROR_MESSAGE = "Path of the build command log file does not exist";
+  /**
+   * Error message to be shown when the path of the build cmd file does not end with .log.
+   */
+  public static final String BUILD_CMD_FILE_EXTENSION_ERROR_MESSAGE =
+      "Path of the build command log file shoud end with .log extension";
+
+  /**
+   * Error message to be shown when the header directory paths do not exist.
+   */
+  public static final String HEADER_LIST_ERROR_MESSAGE = "At least one of the header directory paths does not exist";
+
+
+  /**
+   * Private Constructor
+   */
+  private WizardConstants() {
+    // Private Constructor
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/OutputDetailsWidgetBuilder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/OutputDetailsWidgetBuilder.java
new file mode 100644
index 0000000..938894b
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/OutputDetailsWidgetBuilder.java
@@ -0,0 +1,47 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widget.builder;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.widgets.OutputDetailsWidget;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This class provides the UI elements/Widgets for Output directory path for the Amalthea generation
+ */
+public class OutputDetailsWidgetBuilder implements WidgetBuilder {
+
+  private final Properties properties;
+
+  /**
+   * @param properties Properties
+   */
+  public OutputDetailsWidgetBuilder(final Properties properties) {
+    this.properties = properties;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Widget buildWidget(final Composite parent) {
+    return new OutputDetailsWidget(parent, this.properties);
+  }
+
+  /**
+   * @param enable - Enable/Disable output directory path
+   * @return OutputDetailsWidgetBuilder
+   */
+  public OutputDetailsWidgetBuilder setOutputDirectoryPathEnabled(final boolean enable) {
+    this.properties.setProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY, Boolean.toString(enable));
+    return this;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SchedulingOsDataWidgetBuilder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SchedulingOsDataWidgetBuilder.java
new file mode 100644
index 0000000..010bdaf
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SchedulingOsDataWidgetBuilder.java
@@ -0,0 +1,59 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widget.builder;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.app4mc.sca.ui.widgets.SchedulingOsDataWidget;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This is the WidgetBuilder class for @SchedulingOsDataWidget. This creates the UI elements and provides options to set
+ * default values for UI components.
+ */
+public class SchedulingOsDataWidgetBuilder implements WidgetBuilder {
+
+  private final Properties properties;
+
+  /**
+   * @param properties Properties
+   */
+  public SchedulingOsDataWidgetBuilder(final Properties properties) {
+    this.properties = properties;
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Widget buildWidget(final Composite parent) {
+    return new SchedulingOsDataWidget(parent, this.properties);
+  }
+
+
+  /**
+   * @param generate - Enable/Disable OS lock function file Text field
+   * @return SchedulingOsDataWidgetBuilder
+   */
+  public SchedulingOsDataWidgetBuilder setOsLockFunctionFileEnabled(final boolean generate) {
+    this.properties.setProperty(WizardConstants.OS_LOCK_FUNC_FILE, Boolean.toString(generate));
+    return this;
+  }
+
+
+  /**
+   * @param generate - Enable/Disable Task/Scheduling file Text field
+   * @return SchedulingOsDataWidgetBuilder
+   */
+  public SchedulingOsDataWidgetBuilder setTaskSchedulingFileEnabled(final boolean generate) {
+    this.properties.setProperty(WizardConstants.TASK_SCHED_FILE, Boolean.toString(generate));
+    return this;
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SwModelWidgetBuilder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SwModelWidgetBuilder.java
new file mode 100644
index 0000000..d3f056f
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/SwModelWidgetBuilder.java
@@ -0,0 +1,39 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widget.builder;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.widgets.SwModelWidget;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This is the WidgetBuilder class for @SWModelWidget. This creates the UI elements and provides options to set default
+ * values for UI components.
+ */
+public class SwModelWidgetBuilder implements WidgetBuilder {
+
+  private final Properties properties;
+  private final WidgetBuilder subWidget;
+
+
+  /**
+   * @param subWidget WidgetBuilder
+   * @param properties Properties
+   */
+  public SwModelWidgetBuilder(final WidgetBuilder subWidget, final Properties properties) {
+    this.subWidget = subWidget;
+    this.properties = properties;
+  }
+
+
+  @Override
+  public Widget buildWidget(final Composite parent) {
+    return new SwModelWidget(parent, this.subWidget, this.properties);
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/WidgetBuilder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/WidgetBuilder.java
new file mode 100644
index 0000000..9820cff
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widget/builder/WidgetBuilder.java
@@ -0,0 +1,24 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widget.builder;
+
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This is an interface for building the Widgets to create UI components
+ */
+@FunctionalInterface
+public interface WidgetBuilder {
+
+  /**
+   * @param parent - Parent Composite
+   * @return - Widget
+   */
+  public Widget buildWidget(final Composite parent);
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/OutputDetailsWidget.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/OutputDetailsWidget.java
new file mode 100644
index 0000000..a8cc415
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/OutputDetailsWidget.java
@@ -0,0 +1,131 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widgets;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.Activator;
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.util.LabelTextButtonCreator;
+import org.eclipse.app4mc.sca.ui.util.SCAToolsUIUtil;
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+
+
+/**
+ * This is the class for Output folder location in common wizard
+ */
+public class OutputDetailsWidget extends Widget {
+
+
+  private final Properties properties;
+  private LabelTextButtonCreator outputDirectory;
+
+  /**
+   * @param parent Composite
+   * @param properties Properties
+   */
+  public OutputDetailsWidget(final Composite parent, final Properties properties) {
+    this.properties = properties;
+    createComponent(parent);
+  }
+
+
+  /**
+   * @param parent
+   */
+  private void createComponent(final Composite parent) {
+    Composite compositeForGroup = new Composite(parent, SWT.NONE);
+    compositeForGroup.setLayout(new GridLayout());
+    GridDataFactory.defaultsFor(compositeForGroup).grab(true, false).span(1, 1).applyTo(compositeForGroup);
+
+    Group group = new Group(compositeForGroup, SWT.NONE);
+    group.setLayout(new GridLayout());
+    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+    group.setText(WizardConstants.OUTPUT);
+
+    Composite composite = new Composite(group, SWT.NONE);
+    composite.setLayout(new GridLayout(3, false));
+    GridDataFactory.defaultsFor(composite).grab(true, false).span(3, 1).applyTo(composite);
+
+
+    this.outputDirectory = new LabelTextButtonCreator(composite, WizardConstants.OUTPUT_DIRECTORY_PATH, "outputTextField",
+        WizardConstants.BROWSE, "outputBrowseButton");
+    this.outputDirectory.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+    this.outputDirectory.getButton().addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        DirectoryDialog directoryDialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
+        directoryDialog.setFilterPath(OutputDetailsWidget.this.outputDirectory.provideDialogLocation());
+        String outputPath = directoryDialog.open();
+        if (outputPath != null) {
+          OutputDetailsWidget.this.outputDirectory.setFilePath(outputPath);
+        }
+      }
+    });
+
+    this.outputDirectory.getTextField().addModifyListener(event -> {
+      this.properties.setProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY,
+          this.outputDirectory.getAbsoluteFilePath());
+      setChanged();
+      notifyObservers();
+
+    });
+
+    initializeOptions();
+  }
+
+
+  /**
+   *
+   */
+  private void initializeOptions() {
+    this.outputDirectory.setFilePath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY, ""));
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Properties getOptions() {
+    return this.properties;
+  }
+
+
+  /**
+   * @return - validate and return Status
+   */
+  @Override
+  public IStatus validate() {
+    String projectPath = this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH);
+    String outputText = this.outputDirectory.getTextField().getText();
+    File absoluteFile = new File(SCAToolsUIUtil.getProjectAbsoluteFilePath(projectPath, outputText)).getAbsoluteFile();
+    if (!outputText.isEmpty() && !SCAToolsUIUtil.validatePath(projectPath, outputText, false, "")) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Invalid output directory path");
+    }
+    if (!Files.isWritable(Paths.get(absoluteFile.getAbsolutePath())) || SCAToolsUIUtil.isDrive(outputText)) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Output Path cannot be a drive.");
+    }
+    return Status.OK_STATUS;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SchedulingOsDataWidget.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SchedulingOsDataWidget.java
new file mode 100644
index 0000000..22d552e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SchedulingOsDataWidget.java
@@ -0,0 +1,156 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widgets;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.Activator;
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.util.LabelTextButtonCreator;
+import org.eclipse.app4mc.sca.ui.util.SCAToolsUIUtil;
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+
+
+/**
+ * This class provides the UI elements for Scheduling/OS Data model in Amalthea generation wizard
+ */
+public class SchedulingOsDataWidget extends Widget {
+
+  private static final String CSV = "*.csv";
+  private LabelTextButtonCreator osLockFuncFile;
+  private LabelTextButtonCreator taskSchedFile;
+  private final Properties properties;
+
+  /**
+   * @param parent - Composite
+   * @param options - Properties
+   */
+  public SchedulingOsDataWidget(final Composite parent, final Properties options) {
+    this.properties = options;
+    createComponent(parent);
+  }
+
+
+  /**
+   *
+   */
+  private void createComponent(final Composite parent) {
+    Composite compositeForGroup = new Composite(parent, SWT.NONE);
+    compositeForGroup.setLayout(new GridLayout());
+    GridDataFactory.defaultsFor(compositeForGroup).grab(true, false).span(1, 1).applyTo(compositeForGroup);
+
+    Group group = new Group(compositeForGroup, SWT.NONE);
+    group.setLayout(new GridLayout());
+    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+    group.setText(WizardConstants.SCHEDULING_OS_DATA);
+
+    Composite composite = new Composite(group, SWT.NONE);
+    composite.setLayout(new GridLayout(3, false));
+    GridDataFactory.defaultsFor(composite).grab(true, false).span(3, 1).applyTo(composite);
+
+    this.osLockFuncFile = new LabelTextButtonCreator(composite, WizardConstants.OS_LOCK_FUNC_FILE, "osLockTextField",
+        WizardConstants.BROWSE, "osLockBrowseButton");
+    this.osLockFuncFile.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+    this.osLockFuncFile.getButton().addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        FileDialog fileDialog = new FileDialog(Display.getCurrent().getActiveShell());
+        fileDialog.setFilterExtensions(new String[] { CSV });
+        fileDialog.setFilterPath(SchedulingOsDataWidget.this.osLockFuncFile.provideDialogLocation());
+        String outsetPropertyPath = fileDialog.open();
+        if (outsetPropertyPath != null) {
+          SchedulingOsDataWidget.this.osLockFuncFile.setFilePath(outsetPropertyPath);
+        }
+      }
+    });
+
+    String[] extensions = new String[] { CSV };
+    this.taskSchedFile = new LabelTextButtonCreator(composite, WizardConstants.TASK_SCHED_FILE, "taskSchedTextField",
+        WizardConstants.BROWSE, "taskSchedBrowseButton");
+    this.taskSchedFile.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+    this.taskSchedFile.getButton().addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        FileDialog fileDialog = new FileDialog(Display.getCurrent().getActiveShell());
+        fileDialog.setFilterExtensions(extensions);
+        fileDialog.setFilterPath(SchedulingOsDataWidget.this.taskSchedFile.provideDialogLocation());
+        String outsetPropertyPath = fileDialog.open();
+        if (outsetPropertyPath != null) {
+          SchedulingOsDataWidget.this.taskSchedFile.setFilePath(outsetPropertyPath);
+        }
+      }
+    });
+
+
+    this.taskSchedFile.getTextField().addModifyListener(e -> {
+      this.properties.setProperty(AmaltheaWizardPreferenceConstants.TASK_SCHEDULING_FILE,
+          this.taskSchedFile.getAbsoluteFilePath());
+      setChanged();
+      notifyObservers();
+
+    });
+
+    this.osLockFuncFile.getTextField().addModifyListener(event -> {
+      this.properties.setProperty(AmaltheaWizardPreferenceConstants.OS_LOCK_FILE, this.osLockFuncFile.getAbsoluteFilePath());
+      setChanged();
+      notifyObservers();
+    });
+
+    initializeOptions();
+  }
+
+
+  /**
+   *
+   */
+  private void initializeOptions() {
+    this.osLockFuncFile.setFilePath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.OS_LOCK_FILE, ""));
+    this.taskSchedFile.setFilePath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.TASK_SCHEDULING_FILE, ""));
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Properties getOptions() {
+    return this.properties;
+  }
+
+
+  /**
+   * @return - validate and return Status
+   */
+  @Override
+  public IStatus validate() {
+    String projectPath = this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH);
+    String osLockFilePath = this.osLockFuncFile.getTextField().getText();
+    if (!osLockFilePath.isEmpty() && !SCAToolsUIUtil.validatePath(projectPath, osLockFilePath, true, "csv")) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Invalid OS lock function file");
+    }
+    String taskSchedFilePath = this.taskSchedFile.getTextField().getText();
+    if (!taskSchedFilePath.isEmpty() && !SCAToolsUIUtil.validatePath(projectPath, taskSchedFilePath, true, "csv")) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Invalid Task/Scheduling file");
+    }
+
+    return Status.OK_STATUS;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SwModelWidget.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SwModelWidget.java
new file mode 100644
index 0000000..f2491a2
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/SwModelWidget.java
@@ -0,0 +1,106 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widgets;
+
+import java.util.Observer;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.app4mc.sca.ui.widget.builder.WidgetBuilder;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+
+
+/**
+ * This class provides the UI elements for SW Model in Amalthea generation wizard
+ */
+public class SwModelWidget extends Widget {
+
+  private final Properties properties;
+  private Widget optionalSubWidget;
+
+  /**
+   * @param parent - Composite
+   * @param subWidget - componenet specific widget
+   * @param options - Properties
+   */
+  public SwModelWidget(final Composite parent, final WidgetBuilder subWidget, final Properties options) {
+    this.properties = options;
+    createComponent(parent, subWidget);
+  }
+
+
+  /**
+   *
+   */
+  private void createComponent(final Composite parent, final WidgetBuilder subWidget) {
+
+    Composite compositeForGroup = new Composite(parent, SWT.NULL);
+    compositeForGroup.setLayout(new GridLayout());
+    GridDataFactory.defaultsFor(compositeForGroup).grab(true, false).span(1, 1).applyTo(compositeForGroup);
+
+    Group group = new Group(compositeForGroup, SWT.NONE);
+    GridLayout grpLayout = new GridLayout(1, false);
+    group.setLayout(grpLayout);
+    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+    group.setText(WizardConstants.SW_DATA);
+
+    // Create optional subWidget
+    if (subWidget != null) {
+      this.optionalSubWidget = subWidget.buildWidget(group);
+    }
+
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Properties getOptions() {
+    if (this.optionalSubWidget != null) {
+      Properties options = this.optionalSubWidget.getOptions();
+      this.properties.putAll(options);
+    }
+    return this.properties;
+  }
+
+
+  /**
+   * @return - validate and return Status
+   */
+  @Override
+  public IStatus validate() {
+    if (this.optionalSubWidget != null) {
+      IStatus validate = this.optionalSubWidget.validate();
+      if (!validate.isOK()) {
+        return validate;
+      }
+    }
+
+    return Status.OK_STATUS;
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public synchronized void addObserver(final Observer o) {
+    super.addObserver(o);
+    if (this.optionalSubWidget != null) {
+      this.optionalSubWidget.addObserver(o);
+    }
+  }
+
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/Widget.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/Widget.java
new file mode 100644
index 0000000..5464cbd
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/widgets/Widget.java
@@ -0,0 +1,24 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.widgets;
+
+import java.util.Observable;
+
+import org.eclipse.app4mc.sca.ui.util.IOptionsProvider;
+import org.eclipse.core.runtime.IStatus;
+
+
+/**
+ * This is an interface to create UI components in Amalthea generation wizard
+ */
+public abstract class Widget extends Observable implements IOptionsProvider {
+
+  /**
+   * @return {@link IStatus}
+   */
+  public abstract IStatus validate();
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizard.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizard.java
new file mode 100644
index 0000000..5924bd2
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizard.java
@@ -0,0 +1,136 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.wizard;
+
+import java.util.List;
+import java.util.Observable;
+import java.util.Observer;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.util.IAmaltheaGenerator;
+import org.eclipse.app4mc.sca.ui.util.IOptionsProvider;
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.widgets.Display;
+
+
+/**
+ * This is a common wizard class to Generate Amalthea
+ */
+public class GenerateAmaltheaWizard extends Wizard implements IOptionsProvider, Observer {
+
+  private final List<GenerateAmaltheaWizardPage> wizardPages;
+  private final IAmaltheaGenerator amaltheaExecutor;
+  private final Properties properties;
+
+  /**
+   * @param asList - List<GenerateAmaltheaWizardPage>
+   * @param properties Properties
+   * @param amaltheaExecutor IAmaltheaExecutor - for amalthea generation
+   */
+  public GenerateAmaltheaWizard(final List<GenerateAmaltheaWizardPage> asList, final Properties properties,
+      final IAmaltheaGenerator amaltheaExecutor) {
+    setNeedsProgressMonitor(true);
+    this.wizardPages = asList;
+    this.properties = properties;
+    this.amaltheaExecutor = amaltheaExecutor;
+    setWindowTitle("Generate Amalthea");
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void addPages() {
+    for (GenerateAmaltheaWizardPage amaltheaWizardPage : this.wizardPages) {
+      addPage(amaltheaWizardPage);
+    }
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public boolean performFinish() {
+    Job job = new Job("Amalthea Generation") {
+
+      @Override
+      protected IStatus run(final IProgressMonitor monitor) {
+        IStatus status = GenerateAmaltheaWizard.this.amaltheaExecutor.execute(monitor, getOptions());
+        String outputDirProperty =
+            GenerateAmaltheaWizard.this.properties.getProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY, "");
+        String ouputDirPath =
+            ((outputDirProperty != null) && !outputDirProperty.isEmpty()) ? " in " + outputDirProperty + "." : ".";
+        openResultDialog(status, ouputDirPath);
+        return status;
+      }
+    };
+    job.schedule();
+    return true;
+  }
+
+
+  private void openResultDialog(final IStatus status, final String ouputDirPath) {
+    Display.getDefault().asyncExec(() -> {
+
+      if (status.getSeverity() == IStatus.WARNING) {
+        MessageDialog.openInformation(Display.getDefault().getActiveShell(), WizardConstants.AMALTHEA_GENERATION,
+            "Amalthea model successfully generated" + ouputDirPath +
+                "\n\nWarnings have been found - Please check log files for more details.");
+      }
+      else if (status.getSeverity() == IStatus.OK) {
+        MessageDialog.openInformation(Display.getDefault().getActiveShell(), WizardConstants.AMALTHEA_GENERATION,
+            "Amalthea model successfully generated" + ouputDirPath);
+      }
+      else {
+        MessageDialog.openError(Display.getDefault().getActiveShell(), WizardConstants.AMALTHEA_GENERATION,
+            "Amlathea model generation failed. Please check the logs for more details.");
+      }
+    });
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Properties getOptions() {
+    for (GenerateAmaltheaWizardPage amaltheaWizardPage : this.wizardPages) {
+      this.properties.putAll(amaltheaWizardPage.getOptions());
+    }
+    return this.properties;
+  }
+
+
+  @Override
+  public boolean canFinish() {
+    for (GenerateAmaltheaWizardPage amaltheaWizardPage : this.wizardPages) {
+      if (!amaltheaWizardPage.isPageComplete()) {
+        return false;
+      }
+    }
+    return getContainer().getCurrentPage().getNextPage() == null;
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void update(final Observable o, final Object arg) {
+    for (GenerateAmaltheaWizardPage amaltheaWizardPage : this.wizardPages) {
+      amaltheaWizardPage.setPageComplete(amaltheaWizardPage.isPageComplete());
+    }
+  }
+
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizardPage.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizardPage.java
new file mode 100644
index 0000000..a560b3d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.ui/src/org/eclipse/app4mc/sca/ui/wizard/GenerateAmaltheaWizardPage.java
@@ -0,0 +1,117 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca.ui.wizard;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Observable;
+import java.util.Observer;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.IOptionsProvider;
+import org.eclipse.app4mc.sca.ui.util.NoScrollFormLayout;
+import org.eclipse.app4mc.sca.ui.widget.builder.WidgetBuilder;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * This is a common WizardPage class for Amalthea generation
+ */
+public class GenerateAmaltheaWizardPage extends WizardPage implements IOptionsProvider, Observer {
+
+  final List<WidgetBuilder> builders;
+  final List<Widget> widgets;
+  final Properties props = new Properties();
+
+  /**
+   * @param title - Page Title
+   * @param widgetBuilders - List of @WidgetBuilder for this page
+   */
+  public GenerateAmaltheaWizardPage(final String title, final List<WidgetBuilder> widgetBuilders) {
+    super("AMALTHEA Generation", title, null);
+    this.builders = widgetBuilders;
+    this.widgets = new ArrayList<>();
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void createControl(final Composite parent) {
+    Composite rootComposite = new Composite(parent, SWT.NONE);
+    rootComposite.setLayout(new NoScrollFormLayout());
+
+    ScrolledComposite scrolledComposite =
+        new ScrolledComposite(rootComposite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+    scrolledComposite
+        .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, SWT.DEFAULT).create());
+    scrolledComposite.setExpandHorizontal(true);
+    scrolledComposite.setExpandVertical(true);
+    Composite mainComposite = new Composite(scrolledComposite, SWT.FILL);
+    mainComposite.setLayout(new GridLayout());
+
+    this.builders.stream().forEach(builder -> {
+      Widget widget = builder.buildWidget(mainComposite);
+      this.widgets.add(widget);
+      widget.addObserver(this);
+    });
+
+    scrolledComposite.setContent(mainComposite);
+    setControl(rootComposite);
+    setPageComplete(false);
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Properties getOptions() {
+    Display.getDefault().syncExec(() -> this.widgets.stream().forEach(w -> this.props.putAll(w.getOptions())));
+    return this.props;
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public boolean isPageComplete() {
+    for (Widget wid : this.widgets) {
+      IStatus validate = wid.validate();
+      if (validate.getSeverity() == IStatus.ERROR) {
+        setErrorMessage(validate.getMessage());
+        return false;
+      }
+      else if ((validate.getSeverity() == IStatus.WARNING) || (validate.getSeverity() == IStatus.INFO)) {
+        setErrorMessage(null);
+        setMessage(validate.getMessage(), validate.getSeverity());
+        return true;
+      }
+    }
+    setErrorMessage(null);
+    setMessage(null);
+    return true;
+  }
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void update(final Observable o, final Object arg) {
+    setPageComplete(isPageComplete());
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/META-INF/MANIFEST.MF
index 95d04ca..f5a8e39 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/META-INF/MANIFEST.MF
@@ -2,18 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Util
 Bundle-SymbolicName: org.eclipse.app4mc.sca.util;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Activator: org.eclipse.app4mc.sca.util.Activator
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.app4mc.sca.logging;bundle-version="1.0.0",
+ org.eclipse.app4mc.sca.logging,
  org.eclipse.ui.workbench,
  org.eclipse.jface,
  org.eclipse.core.resources,
- org.eclipse.app4mc.amalthea.model
+ org.eclipse.app4mc.amalthea.model,
+ org.eclipse.equinox.preferences
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.app4mc.sca.util,
  org.eclipse.app4mc.sca.util.parsers,
- org.eclipse.app4mc.sca.util.preferences,
  org.eclipse.app4mc.sca.util.util,
  org.eclipse.app4mc.sca.util.workspaces
+Automatic-Module-Name: org.eclipse.app4mc.sca.util
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/pom.xml
deleted file mode 100644
index 38656f6..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca.util</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/Activator.java
index 49b592c..006fb66 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/App4mcToolConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/App4mcToolConstants.java
index 964200c..e184da7 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/App4mcToolConstants.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/App4mcToolConstants.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/parsers/OptionsFileParser.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/parsers/OptionsFileParser.java
index ce140f6..789cbca 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/parsers/OptionsFileParser.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/parsers/OptionsFileParser.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/preferences/DefaultSCAToolsPreferences.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/preferences/DefaultSCAToolsPreferences.java
index f8e1937..47b0f7b 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/preferences/DefaultSCAToolsPreferences.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/preferences/DefaultSCAToolsPreferences.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAToolsDirectoryType.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAToolsDirectoryType.java
index 8334183..479d675 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAToolsDirectoryType.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAToolsDirectoryType.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
index ab82f30..3a863bf 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
@@ -1,21 +1,15 @@
 /**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available

+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/

+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation

  */

 package org.eclipse.app4mc.sca.util.util;

 

 import java.io.File;

 

+/**

+ * Utilty class

+ */

 public class SCAUtils {

 

 

@@ -36,11 +30,10 @@
       final String componentDirectoryName) {

     File scaDir;

     if ((componentDirectoryName != null) && !componentDirectoryName.isEmpty()) {

-      scaDir = new File(projectPath + File.separator + dirType + File.separator +

-          componentDirectoryName);

+      scaDir = new File(projectPath + File.separator + dirType + File.separator + componentDirectoryName);

     }

     else {

-      scaDir = new File(projectPath + File.separator + dirType + File.separator );

+      scaDir = new File(projectPath + File.separator + dirType + File.separator);

     }

     if (scaDir.exists()) {

       return scaDir.getAbsolutePath();

@@ -49,4 +42,5 @@
     return scaDir.getAbsolutePath();

   }

 

+

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/workspaces/WorkspaceOperations.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/workspaces/WorkspaceOperations.java
index e3fd355..19d4d5a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/workspaces/WorkspaceOperations.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/workspaces/WorkspaceOperations.java
@@ -1,7 +1,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/TraverseASTMain.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/TraverseASTMain.cpp
index 0ebaa5e..ae03551 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/TraverseASTMain.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/TraverseASTMain.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.cpp
index f0955dc..c640d51 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -1946,7 +1946,7 @@
 	std::string file = fileName.substr(found + 1);

 	found = file.find_last_of(".");

 	file = file.replace(found, 1, "_");

-	variableName = variableName.append(".").append(file).append(".PLAT4MC_CS");

+	variableName = variableName.append(".").append(file).append(".APP4MC_CS");

 	return variableName;

 }

 

@@ -1981,7 +1981,7 @@
 	else {

 		functionName = currentAnalyzedFunction->getFunctionEntry()->getFunctionName();

 	}

-	variableName = variableName.append(".").append(file).append(".").append(functionName).append(".").append(std::to_string(count)).append(".PLAT4MC_FS");

+	variableName = variableName.append(".").append(file).append(".").append(functionName).append(".").append(std::to_string(count)).append(".APP4MC_FS");

 	return variableName;

 }

 

@@ -1990,7 +1990,7 @@
 	std::string file = fileName.substr(found + 1);

 	found = file.find_last_of(".");

 	file = file.replace(found, 1, "_");

-	string name = functionName.append(".").append(file).append(".PLAT4MC_CS");

+	string name = functionName.append(".").append(file).append(".APP4MC_CS");

 	return name;

 }

 

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.h
index 002f196..0f9781a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTClassAction.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.cpp
index b3e9f33..f034199 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.cpp
@@ -1,7 +1,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.h
index aedc995..3e65287 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/algorithms/TraverseASTWorker.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.cpp
index 382e7f9..2c16af5 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.h
index ade3e7f..0c39a55 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/BasicBlock.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.cpp
index bb86f81..3df86ea 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.h
index 7f40ae5..4228f3c 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/CallEntry.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.cpp
index 2b8bb3e..df74dc1 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.h
index 682f1d9..8324bbb 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/ClientDataForThread.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.cpp
index e71e40d..339da7c 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.cpp
@@ -1,7 +1,7 @@
 

 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.h
index 1b1c2fa..fc1434d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionAndCallees.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.cpp
index 4bf6478..b9eb363 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.h
index 400852f..40ca5e6 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionEntry.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.cpp
index 616c969..17e8696 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.h
index 1fc4363..d07c659 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/FunctionParameter.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.cpp
index 2dd09f8..189ab5c 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.h
index 7f9fdda..1b1514c 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariable.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.cpp
index dcbfb7c..b93e155 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.h
index 29c5ba9..510d9c6 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/GlobalVariableAccess.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.cpp
index af6078b..0477c05 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.h
index a57549e..242179e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraverseASTDataStructure.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.cpp
index 9e00caf..07df6af 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.h
index f6e9fb7..7a17772 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/data_structure/TraversingData.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.cpp
index de868e4..f941048 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -425,8 +425,8 @@
 

 

 bool isVariableStatic(std::string variableName){

-		std::size_t pos = variableName.find("PLAT4MC_CS");

-		std::size_t pos1 = variableName.find("PLAT4MC_FS");

+		std::size_t pos = variableName.find("APP4MC_CS");

+		std::size_t pos1 = variableName.find("APP4MC_FS");

 		if (pos != std::string::npos || pos1 != std::string::npos){

 			return true;

 		}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.h
index 78cbd8c..f2373dc 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/Helpers.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.cpp
index ccaec34..97837d6 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.h
index f1fdee4..d5643fa 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/helpers/TraverseASTMainHelpers.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.cpp b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.cpp
index 47c90c2..cc8b072 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.cpp
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.cpp
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.h b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.h
index b1f862f..ac41fa6 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.h
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.c_sources/sca/output/Output.h
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/META-INF/MANIFEST.MF
index af8e8ca..1c04525 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/META-INF/MANIFEST.MF
@@ -2,5 +2,5 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: SCA2AMALTHEA Documentation

 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.docu;singleton:=true

-Bundle-Version: 1.0.0.qualifier

+Bundle-Version: 0.9.8.qualifier

 Bundle-Vendor: Eclipse.org

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/pom.xml
deleted file mode 100644
index 1c5bb91..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.docu/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.docu</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/META-INF/MANIFEST.MF
index 66701c1..94e5bf2 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: Exporter

 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.exporter

-Bundle-Version: 1.0.0.qualifier

+Bundle-Version: 0.9.8.qualifier

 Bundle-Activator: org.eclipse.app4mc.sca2amalthea.exporter.Activator

 Bundle-Vendor: Eclipse.org

 Require-Bundle: org.eclipse.core.runtime,

@@ -10,14 +10,14 @@
  org.eclipse.core.resources,

  org.eclipse.app4mc.sca2amalthea.ir,

  org.eclipse.app4mc.sca2amalthea.serialization,

- org.eclipse.app4mc.amalthea.sphinx,

  org.eclipse.app4mc.amalthea.model,

  org.eclipse.app4mc.sca.logging,

- org.eclipse.app4mc.sca.amalthea.model.utils;bundle-version="1.0.0",

+ org.eclipse.app4mc.sca.amalthea.model.utils,

  org.eclipse.app4mc.sca.scheduling.loader

 Bundle-RequiredExecutionEnvironment: JavaSE-1.8

 Bundle-ActivationPolicy: lazy

 Export-Package: org.eclipse.app4mc.sca2amalthea.exporter,

  org.eclipse.app4mc.sca2amalthea.exporter.locks,

  org.eclipse.app4mc.sca2amalthea.exporter.util

+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.exporter

 

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/pom.xml
deleted file mode 100644
index 611bda1..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.exporter</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/Activator.java
index 52876c4..d988df5 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/ComponentModelTransformer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/ComponentModelTransformer.java
index 8c5c93a..b022905 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/ComponentModelTransformer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/ComponentModelTransformer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -93,7 +93,7 @@
   public void addTaskToComponent(final Function task, final Process process) {

     String fc = task.getContainer().getName();

     if ((fc != null) && (this.dataStore.getComponentMap().get(fc) != null)) {

-      this.dataStore.getComponentMap().get(fc).getTasks().add(process);

+      this.dataStore.getComponentMap().get(fc).getProcesses().add(process);

     }

   }

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/OsModelTransformer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/OsModelTransformer.java
index d6eda47..7228182 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/OsModelTransformer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/OsModelTransformer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SCAToAmaltheaExporter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SCAToAmaltheaExporter.java
index 9face87..6f5ed85 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SCAToAmaltheaExporter.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SCAToAmaltheaExporter.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTransformer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTransformer.java
index 8634b9b..1b41ab3 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTransformer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTransformer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -16,24 +16,25 @@
 

 import java.util.ArrayList;

 import java.util.HashSet;

+import java.util.LinkedHashSet;

 import java.util.List;

 import java.util.Set;

 import java.util.stream.Collectors;

 

+import org.eclipse.app4mc.amalthea.model.ActivityGraph;

 import org.eclipse.app4mc.amalthea.model.Amalthea;

 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;

-import org.eclipse.app4mc.amalthea.model.CallGraph;

-import org.eclipse.app4mc.amalthea.model.CallSequence;

+import org.eclipse.app4mc.amalthea.model.Group;

 import org.eclipse.app4mc.amalthea.model.ISR;

 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;

 import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.RunnableCall;

 import org.eclipse.app4mc.amalthea.model.SWModel;

 import org.eclipse.app4mc.amalthea.model.Semaphore;

 import org.eclipse.app4mc.amalthea.model.SemaphoreAccess;

 import org.eclipse.app4mc.amalthea.model.SemaphoreAccessEnum;

 import org.eclipse.app4mc.amalthea.model.StringObject;

 import org.eclipse.app4mc.amalthea.model.Task;

-import org.eclipse.app4mc.amalthea.model.TaskRunnableCall;

 import org.eclipse.app4mc.sca.logging.manager.LogFactory.Severity;

 import org.eclipse.app4mc.sca.logging.util.LogUtil;

 import org.eclipse.app4mc.sca2amalthea.exporter.locks.LockFunction.LockType;

@@ -51,7 +52,7 @@
 import org.eclipse.emf.common.util.EList;

 

 /**

- * This class transforms all SwModel related part and submodels to the AMALTHEA model

+ * This class transforms all SwModel related part and sub-models to the AMALTHEA model

  */

 public class SwModelTransformer {

 

@@ -112,6 +113,7 @@
         LogUtil.logException(LLVMLogUtil.LOG_MSG_ID, e.getClass(), e, Activator.PLUGIN_ID);

       }

     }

+    

   }

 

 

@@ -174,7 +176,7 @@
    */

   private Set<Function> getAllfunctions(final SCAResource resource) {

     EList<Container> containers = ((Project) resource.getContents().get(0)).getContainers();

-    Set<Function> allFunctions = new HashSet<Function>();

+    Set<Function> allFunctions = new LinkedHashSet<Function>();

     for (Container c : containers) {

       allFunctions.addAll(c.getFunctions());

     }

@@ -187,11 +189,11 @@
   private void transformISRInternals(final Function function) {

     String name = function.getName();

     ISR isr = this.data.getIsrMap().get(name);

-    CallGraph callGraph = AmaltheaFactory.eINSTANCE.createCallGraph();

-    CallSequence callSequence = AmaltheaFactory.eINSTANCE.createCallSequence();

-

-    transformStatements(function, callGraph, callSequence);

-    isr.setCallGraph(callGraph);

+    ActivityGraph activityGraph = AmaltheaFactory.eINSTANCE.createActivityGraph();

+    Group group = AmaltheaFactory.eINSTANCE.createGroup();

+    group.setOrdered(true);

+    transformStatements(function, activityGraph, group);

+    isr.setActivityGraph(activityGraph);

   }

 

   /**

@@ -200,22 +202,22 @@
    * @param callGraph

    * @param callSequence

    */

-  private void transformStatements(final Function function, final CallGraph callGraph,

-      final CallSequence callSequence) {

+  private void transformStatements(final Function function, final ActivityGraph activityGraph,

+      final Group group) {

     EList<StmtCall> stmtseq = function.getStmtseq();

     for (StmtCall stmtCall : stmtseq) {

       if (stmtCall instanceof FunctionCall) {

         FunctionCall fc = (FunctionCall) stmtCall;

         Runnable runnable = this.data.getRunnableMap().get(fc.getCalls().getName());

         if (runnable != null) {

-          TaskRunnableCall taskRunnableCall = AmaltheaFactory.eINSTANCE.createTaskRunnableCall();

-          taskRunnableCall.setRunnable(runnable);

-          callSequence.getCalls().add(taskRunnableCall);

-          CustomPropertiesAdder.addSourceLineInformation(taskRunnableCall, fc.getSrcline(), fc.getSrccol());

+          RunnableCall runnableCall=AmaltheaFactory.eINSTANCE.createRunnableCall();

+          runnableCall.setRunnable(runnable);

+          group.getItems().add(runnableCall);

+          CustomPropertiesAdder.addSourceLineInformation(runnableCall, fc.getSrcline(), fc.getSrccol());

         }

       }

     }

-    callGraph.getGraphEntries().add(callSequence);

+    activityGraph.getItems().add(group);

   }

 

   /**

@@ -225,10 +227,11 @@
     String name = function.getName();

     Task task = this.data.getTaskMap().get(name);

 

-    CallGraph callGraph = AmaltheaFactory.eINSTANCE.createCallGraph();

-    CallSequence callSequence = AmaltheaFactory.eINSTANCE.createCallSequence();

-    transformStatements(function, callGraph, callSequence);

-    task.setCallGraph(callGraph);

+    ActivityGraph activityGraph = AmaltheaFactory.eINSTANCE.createActivityGraph();

+    Group group = AmaltheaFactory.eINSTANCE.createGroup();

+    group.setOrdered(true);

+    transformStatements(function, activityGraph, group);

+    task.setActivityGraph(activityGraph);

   }

 

   /**

@@ -433,5 +436,5 @@
     this.componentTransformer.addTaskToComponent(function, isr);

     isrs.add(isr);

   }

-

+  

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTypeDefTransformer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTypeDefTransformer.java
index a613ec6..cbc5463 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTypeDefTransformer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/SwModelTypeDefTransformer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/TransformerDataStore.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/TransformerDataStore.java
index 980f7bf..af6c9b5 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/TransformerDataStore.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/TransformerDataStore.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockDefinition.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockDefinition.java
index 5421393..6303252 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockDefinition.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockDefinition.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockFunction.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockFunction.java
index 5ebf5fe..1b99b65 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockFunction.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/locks/LockFunction.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/CustomPropertiesAdder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/CustomPropertiesAdder.java
index 23f96a5..535a9f2 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/CustomPropertiesAdder.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/CustomPropertiesAdder.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/LLVMLogUtil.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/LLVMLogUtil.java
index ad57033..059e937 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/LLVMLogUtil.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.exporter/src/org/eclipse/app4mc/sca2amalthea/exporter/util/LLVMLogUtil.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/META-INF/MANIFEST.MF
index 7c65213..42a007a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/META-INF/MANIFEST.MF
@@ -2,16 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Loader-Serializer
 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.ir.loader
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.app4mc.sca2amalthea.serialization,
  org.eclipse.emf.ecore.xmi,
  org.eclipse.app4mc.sca2amalthea.ir,
  org.eclipse.core.resources,
- org.eclipse.app4mc.sca.logging;bundle-version="1.0.0"
+ org.eclipse.app4mc.sca.logging
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.app4mc.sca2amalthea.ir.loader,
  org.eclipse.app4mc.sca2amalthea.ir.serializer
 Bundle-Activator: org.eclipse.app4mc.sca2amalthea.ir.loader.Activator
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.ir.loader
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/pom.xml
deleted file mode 100644
index 546076a..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.ir.loader</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/Activator.java
index f00bf22..e9647cb 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/SCAIRLoader.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/SCAIRLoader.java
index 030897e..566a9ea 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/SCAIRLoader.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/SCAIRLoader.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/utils/LoaderSerializationUtils.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/utils/LoaderSerializationUtils.java
index 7f09078..ca5f99f 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/utils/LoaderSerializationUtils.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/loader/utils/LoaderSerializationUtils.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/serializer/SCAIRSerializer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/serializer/SCAIRSerializer.java
index d4136ed..325638d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/serializer/SCAIRSerializer.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader/src/org/eclipse/app4mc/sca2amalthea/ir/serializer/SCAIRSerializer.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.classpath b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.classpath
index ed2bc12..81065bd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.classpath
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.classpath
@@ -1,7 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

 	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">

+		<attributes>

+			<attribute name="module" value="true"/>

+		</attributes>

+	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="output" path="bin"/>

 </classpath>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/META-INF/MANIFEST.MF
index 8e76380..c087d3a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/META-INF/MANIFEST.MF
@@ -2,14 +2,15 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.ir;singleton:=true

-Bundle-Version: 1.0.0.qualifier

+Bundle-Version: 0.9.8.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: Eclipse.org

 Bundle-Localization: plugin

-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

+Bundle-RequiredExecutionEnvironment: JavaSE-1.8

 Export-Package: org.eclipse.app4mc.sca2amalthea.ir.scair,

  org.eclipse.app4mc.sca2amalthea.ir.scair.impl,

  org.eclipse.app4mc.sca2amalthea.ir.scair.util

 Require-Bundle: org.eclipse.core.runtime,

  org.eclipse.emf.ecore;visibility:=reexport

 Bundle-ActivationPolicy: lazy

+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.ir

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/pom.xml
deleted file mode 100644
index d2776c7..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.ir</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/AccessTypeEnum.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/AccessTypeEnum.java
index de92dc6..7316c52 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/AccessTypeEnum.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/AccessTypeEnum.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/CallGraph.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/CallGraph.java
index 3f74539..fe6e5df 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/CallGraph.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/CallGraph.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Container.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Container.java
index f92cd2b..e04c246 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Container.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Container.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/EFunctionTypeEnum.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/EFunctionTypeEnum.java
index 25c72ec..fc0565d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/EFunctionTypeEnum.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/EFunctionTypeEnum.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/ETypeCategory.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/ETypeCategory.java
index 65b47d7..6c77b86 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/ETypeCategory.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/ETypeCategory.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Function.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Function.java
index 8f283ef..6f2f3f3 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Function.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Function.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/FunctionCall.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/FunctionCall.java
index 80b3d14..b26f6b7 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/FunctionCall.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/FunctionCall.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IIdentifiable.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IIdentifiable.java
index 2f192b0..f326dc8 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IIdentifiable.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IIdentifiable.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IdentifiableElement.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IdentifiableElement.java
index ca3804b..f49804e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IdentifiableElement.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/IdentifiableElement.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Label.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Label.java
index 96e505b..bfed500 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Label.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Label.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/LabelAccess.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/LabelAccess.java
index b1d0ab6..d810d6d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/LabelAccess.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/LabelAccess.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Project.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Project.java
index 28f7bc2..1601478 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Project.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/Project.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/StmtCall.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/StmtCall.java
index 6f8f6f5..ea66940 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/StmtCall.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/StmtCall.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDef.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDef.java
index e417ade..7c23f65 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDef.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDef.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDefMember.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDefMember.java
index f9ec5b0..cebc0f9 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDefMember.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/TypeDefMember.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/CallGraphImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/CallGraphImpl.java
index eee030f..eca05d9 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/CallGraphImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/CallGraphImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ContainerImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ContainerImpl.java
index 89f6629..c1f64ef 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ContainerImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ContainerImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionCallImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionCallImpl.java
index 89eb9c1..109eac9 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionCallImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionCallImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionImpl.java
index c2a9615..4d0a5f7 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/FunctionImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/IdentifiableElementImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/IdentifiableElementImpl.java
index 04bc9ea..83a2e5e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/IdentifiableElementImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/IdentifiableElementImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelAccessImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelAccessImpl.java
index 678b184..2a9fedd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelAccessImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelAccessImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelImpl.java
index cec363e..c97c79d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/LabelImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ProjectImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ProjectImpl.java
index 3d52210..e13e4c7 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ProjectImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/ProjectImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/StmtCallImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/StmtCallImpl.java
index 5b23d2a..66f4463 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/StmtCallImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/StmtCallImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefImpl.java
index 3dfc83b..b0790c1 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefMemberImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefMemberImpl.java
index 880de34..76ebcb3 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefMemberImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/TypeDefMemberImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairFactoryImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairFactoryImpl.java
index bb589fb..15419ff 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairFactoryImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairFactoryImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairPackageImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairPackageImpl.java
index 0bf5038..8c1db12 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairPackageImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/impl/scairPackageImpl.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairFactory.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairFactory.java
index ab1e777..827f835 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairFactory.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairFactory.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairPackage.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairPackage.java
index 39aa994..563ca7e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairPackage.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/scairPackage.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairAdapterFactory.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairAdapterFactory.java
index 6a9aad1..6e7e6b0 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairAdapterFactory.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairAdapterFactory.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairSwitch.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairSwitch.java
index 6cf8de8..0a23053 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairSwitch.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ir/src/org/eclipse/app4mc/sca2amalthea/ir/scair/util/scairSwitch.java
@@ -1,6 +1,6 @@
 /**

  * *******************************************************************************

- *  Copyright (c) 2017 Robert Bosch GmbH and others.

+ *  Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  *  This program and the accompanying materials are made

  *  available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
index ae41a64..b52d017 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: LLVM
 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.llvm
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Eclipse-BundleShape: dir
 Require-Bundle: org.eclipse.emf.ecore.xmi,
@@ -10,7 +10,6 @@
  org.eclipse.app4mc.sca2amalthea.serialization,
  org.eclipse.app4mc.sca2amalthea.ir,
  org.eclipse.app4mc.amalthea.model,
- org.eclipse.app4mc.amalthea.sphinx,
  org.eclipse.sphinx.emf,
  org.eclipse.xtext.xbase.lib,
  org.eclipse.app4mc.sca.amalthea.loader,
@@ -22,11 +21,13 @@
  org.eclipse.core.resources,
  org.eclipse.jface,
  org.eclipse.core.resources,
- org.eclipse.app4mc.sca.logging;bundle-version="1.0.0",
- org.eclipse.app4mc.sca.util;bundle-version="1.0.0",
- org.eclipse.app4mc.sca.scheduling.loader
+ org.eclipse.app4mc.sca.logging,
+ org.eclipse.app4mc.sca.util,
+ org.eclipse.app4mc.sca.scheduling.loader,
+ org.eclipse.app4mc.sca2amalthea.llvm
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.sca2amalthea.llvm.headless,
  org.eclipse.app4mc.sca2amalthea.llvm.srcfiles.support,
  org.eclipse.app4mc.sca2amalthea.llvm.starter
 Bundle-Activator: org.eclipse.app4mc.sca2amalthea.llvm.Activator
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.llvm
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/pom.xml
deleted file mode 100644
index c7d5df8..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.llvm</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/Activator.java
index d4eea45..532b505 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
index f965648..a3ae3a0 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
index a0869d7..656fcf4 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
@@ -1,25 +1,19 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

+ *

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

+ * which is available at https://www.eclipse.org/legal/epl-2.0

+ *

  * SPDX-License-Identifier: EPL-2.0

- * 

+ *

  * Contributors:

  *     Robert Bosch GmbH - initial API and implementation

  ********************************************************************************

  */

 package org.eclipse.app4mc.sca2amalthea.llvm.headless;

 

-import java.io.File;

-import java.io.IOException;

-import java.util.List;

-import java.util.Locale;

-import java.util.Map;

-

 import org.eclipse.app4mc.amalthea.model.Amalthea;

 import org.eclipse.app4mc.sca.amalthea.serializer.AMALTHEAResourceSerializer;

 import org.eclipse.app4mc.sca.logging.manager.LogFactory.Severity;

@@ -44,254 +38,270 @@
 import org.eclipse.app4mc.sca2amalthea.scairmodelenricher.SCAIRModelEnrichmentUtils;

 import org.eclipse.app4mc.sca2amalthea.serialization.SCAResource;

 import org.eclipse.app4mc.sca2amalthea.utils.UtilityForProcessHandling;

-import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;

+

+import org.eclipse.core.runtime.IStatus;

+import org.eclipse.core.runtime.Status;

+

 import org.eclipse.emf.common.util.URI;

 

+import java.io.File;

+import java.io.IOException;

+

+import java.util.List;

+import java.util.Locale;

 

 

 /**

  */

 public class GenerateAmaltheaModelFromLLVM {

+    private final SCA2AMALTHEAStarterProperties sca2amProperties;

 

-  private final SCA2AMALTHEAStarterProperties sca2amProperties;

-

-  /**

-   * Generates amalthea model from the given properties. The given properties are used to populate the ast model and

-   * from the ast model the intermediate representation. The intermdediate representation is inturn used to generate the

-   * amalthea model

-   *

-   * @param llvmProperties {@link LLVMStarterProperties}

-   */

-  public GenerateAmaltheaModelFromLLVM(final SCA2AMALTHEAStarterProperties llvmProperties) {

-    super();

-    this.sca2amProperties = llvmProperties;

-  }

-

-  /**

-   * @param llvmProperties LLVM properties

-   * @param fcbcInFo given FC BC infos

-   */

-  public GenerateAmaltheaModelFromLLVM(final SCA2AMALTHEAStarterProperties llvmProperties,

-      final Map<String, Map.Entry<String, String>> fcbcInFo) {

-    this(llvmProperties);

-  }

-

-

-  /**

-   * @param projectDir The project dir PVER

-   * @param outDir The output directory where the amalthea model representation is being generation

-   * @param astParser The ast parser location

-   * @param taskInfoFile Task info file

-   * @param hDirList H files directory

-   * @param buildLogFile Build log file

-   * @param lockinfoFile Lock Information

-   * @param isStructMemberEnabled boolean giving the information if the struct members should be present in the model or

-   *          not

-   * @param componentModelFcBc boolean value which tells whether the component model is fc/bc based or c/h file based.

-   */

-  public GenerateAmaltheaModelFromLLVM(final String projectDir, final String outDir, final String astParser,

-      final String taskInfoFile, final String hDirList, final String buildLogFile, final String lockinfoFile,final boolean isStructMemberEnabled) {

-    this.sca2amProperties = new SCA2AMALTHEAStarterProperties(astParser, outDir, taskInfoFile, 8, projectDir, hDirList,

-        buildLogFile, lockinfoFile, isStructMemberEnabled);

-  }

-

-  /**

-   * @throws IOException IOException

-   * @throws InterruptedException InterruptedException

-   * @return int status of the amalthea model generation

-   */

-  public int run() throws IOException, InterruptedException {

-    int returnCode = 0;

-    long startTime = 0;

-    try {

-      validateConsolidatedLLVMOptions();

-    }

-    catch (IllegalArgumentException e) {

-      Logmanager.getInstance().logException(getClass(), e, Activator.PLUGIN_ID);

-      LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.ERROR,

-          "Aborting the amalthea generation, see exception log: " + e.getMessage(), this.getClass(),

-          Activator.PLUGIN_ID);

-      returnCode = 1;

-      return returnCode;

+    /**

+     * Generates amalthea model from the given properties. The given properties are used to populate the ast model and

+     * from the ast model the intermediate representation. The intermdediate representation is inturn used to generate the

+     * amalthea model

+     *

+     * @param llvmProperties {@link LLVMStarterProperties}

+     */

+    public GenerateAmaltheaModelFromLLVM(

+        final SCA2AMALTHEAStarterProperties llvmProperties) {

+        super();

+        this.sca2amProperties = llvmProperties;

     }

 

-    try {

-      if (returnCode == 0) {

-        applyFallBackStrategy();

-        parseBlogAndHDirListOptions();

+    /**

+     * @throws IOException IOException

+     * @throws InterruptedException InterruptedException

+     * @return int status of the amalthea model generation

+     */

+    public IStatus run() throws IOException, InterruptedException {

+        IStatus status = Status.OK_STATUS;

+        long startTime = 0;

 

+        try {

+            validateConsolidatedLLVMOptions();

+        } catch (IllegalArgumentException e) {

+            Logmanager.getInstance()

+                      .logException(getClass(), e, Activator.PLUGIN_ID);

+            LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.ERROR,

+                "Aborting the amalthea generation, see exception log: " +

+                e.getMessage(), this.getClass(), Activator.PLUGIN_ID);

+            status = Status.CANCEL_STATUS;

+        }

 

+        try {

+            if (status == Status.OK_STATUS) {

+                applyFallBackStrategy();

+                parseBlogAndHDirListOptions();

 

-        startTime = System.currentTimeMillis();

-        LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

-            "Starting sca2amalthea export... [start time " + startTime + "]", this.getClass(), Activator.PLUGIN_ID);

+                startTime = System.currentTimeMillis();

+                LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

+                    "Starting sca2amalthea export... [start time " + startTime +

+                    "]", this.getClass(), Activator.PLUGIN_ID);

 

-        GenerateTraverseAstOutput llvmStarter =

-            new GenerateTraverseAstOutput(this.sca2amProperties.getLlvmStarterProperties());

+                GenerateTraverseAstOutput llvmStarter = new GenerateTraverseAstOutput(this.sca2amProperties.getLlvmStarterProperties());

 

-        llvmStarter.runTraverseAst();

-      }

-    }

-    catch (Exception possibleException) {

-      LogUtil.logException(LLVMLogUtil.LOG_MSG_ID, possibleException.getClass(), possibleException,

-          Activator.PLUGIN_ID);

-      possibleException.printStackTrace();

-      returnCode = 1;

+                llvmStarter.runTraverseAst();

+            }

+        } catch (Exception possibleException) {

+            LogUtil.logException(LLVMLogUtil.LOG_MSG_ID,

+                possibleException.getClass(), possibleException,

+                Activator.PLUGIN_ID);

+            possibleException.printStackTrace();

+            status = Status.CANCEL_STATUS;

+        }

+

+        if ((status == Status.OK_STATUS) &&

+                (UtilityForProcessHandling.getCurrentRunningProcess().exitValue() == 0)) {

+            LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

+                "Transforming the intermediate representation to amalthea model",

+                this.getClass(), Activator.PLUGIN_ID);

+

+            try {

+                convertXMLToAmaltheaModel();

+            } catch (Exception possibleException) {

+                LogUtil.logException(LLVMLogUtil.LOG_MSG_ID,

+                    possibleException.getClass(), possibleException,

+                    Activator.PLUGIN_ID);

+                status = Status.CANCEL_STATUS;

+            }

+

+            long duration = (System.currentTimeMillis() - startTime) / 1000; // in seconds

+            LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

+                "Export of AMALTHEA model completed. [duration=" + duration +

+                " seconds]", this.getClass(), Activator.PLUGIN_ID);

+

+            WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getProjectPath(),

+                "_bin/sca2amalthea");

+            WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getProjectPath(),

+                "_log/sca2amalthea");

+            WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getProjectPath(),

+                "_gen/sca2amalthea");

+        } else {

+            status = Status.CANCEL_STATUS;

+            LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

+                "AMALTHEA model generation aborted.", this.getClass(),

+                Activator.PLUGIN_ID);

+        }

+

+        return status;

     }

 

-    if ((returnCode == 0) && (UtilityForProcessHandling.getCurrentRunningProcess().exitValue() == 0)) {

-      LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

-          "Transforming the intermediate representation to amalthea model", this.getClass(), Activator.PLUGIN_ID);

-      try {

-        convertXMLToAmaltheaModel();

-      }

-      catch (Exception possibleException) {

-        LogUtil.logException(LLVMLogUtil.LOG_MSG_ID, possibleException.getClass(), possibleException,

-            Activator.PLUGIN_ID);

-        returnCode = 1;

-      }

-      long duration = (System.currentTimeMillis() - startTime) / 1000; // in seconds

-      LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO,

-          "Export of AMALTHEA model completed. [duration=" + duration + " seconds]", this.getClass(),

-          Activator.PLUGIN_ID);

+    /**

+     * @throws IllegalArgumentException if a given path of the properties does not exist

+     */

+    private void validateConsolidatedLLVMOptions()

+        throws IllegalArgumentException {

+        if (!new File(this.sca2amProperties.getProjectPath()).exists()) {

+            throw new IllegalArgumentException(

+                "The project path provided is not valid: " +

+                this.sca2amProperties.getProjectPath());

+        }

 

-      WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getcProjectPath(), "_bin/sca2amalthea");

-      WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getcProjectPath(), "_log/sca2amalthea");

-      WorkspaceOperations.refreshWorkspace(this.sca2amProperties.getcProjectPath(), "_gen/sca2amalthea");

-    }

-    else {

-      returnCode = 1;

-      LogUtil.log(LLVMLogUtil.LOG_MSG_ID, Severity.INFO, "AMALTHEA model generation aborted.", this.getClass(),

-          Activator.PLUGIN_ID);

-    }

-    return returnCode;

-  }

+        if ((this.sca2amProperties.getTraverseAstFile() != null) &&

+                !this.sca2amProperties.getTraverseAstFile().isEmpty() &&

+                !new File(this.sca2amProperties.getTraverseAstFile()).exists()) {

+            throw new IllegalArgumentException(

+                "The traverse ast path provided is not valid: " +

+                this.sca2amProperties.getTraverseAstFile());

+        }

 

-  /**

-   * @throws IllegalArgumentException if a given path of the properties does not exist

-   */

-  private void validateConsolidatedLLVMOptions() throws IllegalArgumentException {

-    if (!new File(this.sca2amProperties.getcProjectPath()).exists()) {

-      throw new IllegalArgumentException(

-          "The project path provided is not valid: " + this.sca2amProperties.getcProjectPath());

+        if ((this.sca2amProperties.getOutPutPath() != null) &&

+                !this.sca2amProperties.getOutPutPath().isEmpty()) {

+            checkFilePathExists(this.sca2amProperties.getOutPutPath(),

+                "output path");

+        }

+

+        checkFilePathExists(this.sca2amProperties.getTaskListFile(),

+            "tasklist file path");

+        checkFilePathExists(this.sca2amProperties.getBuildLogFile(),

+            "build log file path");

+

+        if ((this.sca2amProperties.gethDirFilePath() != null) &&

+                !this.sca2amProperties.gethDirFilePath().isEmpty()) {

+            String[] paths = this.sca2amProperties.gethDirFilePath().split(";");

+

+            for (String s : paths) {

+                checkFilePathExists(s, "h dir path");

+            }

+        }

+

+        checkFilePathExists(this.sca2amProperties.getLockinfoFile(),

+            "lock info file path");

     }

 

-    if ((this.sca2amProperties.getTraverseAstFile() != null) && !this.sca2amProperties.getTraverseAstFile().isEmpty() &&

-        !new File(this.sca2amProperties.getTraverseAstFile()).exists()) {

-      throw new IllegalArgumentException(

-          "The traverse ast path provided is not valid: " + this.sca2amProperties.getTraverseAstFile());

+    /**

+     * @param filePath to be checked

+     * @param filePathName description

+     */

+    private void checkFilePathExists(final String filePath,

+        final String filePathName) {

+        if ((filePath != null) && !filePath.isEmpty() &&

+                !new File(filePath).exists()) {

+            throw new IllegalArgumentException("The " + filePathName +

+                " provided is not valid: " + filePath);

+        }

     }

 

-    if ((this.sca2amProperties.getOutPutPath() != null) && !this.sca2amProperties.getOutPutPath().isEmpty() &&

-        !this.sca2amProperties.getOutPutPath()

-            .equals(SCA2AmaltheaConstants.getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.OUTPUT_PATH))) {

-      checkFilePathExists(this.sca2amProperties.getOutPutPath(), "output path");

+    private void convertXMLToAmaltheaModel() {

+        OSConfModel osConfModel = null;

+        URI createURI = URI.createFileURI(this.sca2amProperties.getLlvmStarterProperties()

+                                                               .getGenDirectory() +

+                "/XMLCalltree.xml");

+        SCAResource resource = new SCAIRLoader().load(createURI);

+

+        if ((this.sca2amProperties.getTaskListFile() != null) &&

+                !this.sca2amProperties.getTaskListFile().isEmpty()) {

+            SchedulingInformationLoader schedInfoLoader = new SchedulingInformationLoader();

+            osConfModel = schedInfoLoader.getTasksInformation(this.sca2amProperties.getTaskListFile());

+

+            if (osConfModel != null) {

+                SCAIRModelEnrichmentUtils.markTasksIsrsRunnablesInModel(resource,

+                    osConfModel.getTaskISRInfoAsMap());

+            }

+        }

+

+        LockDefinition lockDefinition = null;

+

+        if ((this.sca2amProperties.getLockinfoFile() != null) &&

+                !this.sca2amProperties.getLockinfoFile().isEmpty()) {

+            lockDefinition = new LockDefinition(this.sca2amProperties.getLockinfoFile());

+            lockDefinition.readLockDefinitionFromFile();

+        }

+

+        Amalthea amaltheaModel = new SCAToAmaltheaExporter().amaltheaTransformation(resource,

+                lockDefinition, osConfModel);

+

+        ManipulateAmalthea.markIniTasksInAmaltheaModel(amaltheaModel,

+            osConfModel);

+

+        ManipulateAmalthea manipulatorCaller = new ManipulateAmalthea();

+        manipulatorCaller.manipulates(this.sca2amProperties, amaltheaModel);

+

+        AMALTHEAResourceSerializer amResSerializer = new AMALTHEAResourceSerializer();

+        amResSerializer.saveAmaltheaModel(this.sca2amProperties.getBinDirectory() +

+            "/amaltheaModelFromLLVM", amaltheaModel);

     }

 

-    checkFilePathExists(this.sca2amProperties.getTaskListFile(), "tasklist file path");

-    checkFilePathExists(this.sca2amProperties.getBuildLogFile(), "build log file path");

-

-    if ((this.sca2amProperties.gethDirFilePath() != null) && !this.sca2amProperties.gethDirFilePath().isEmpty()) {

-      String[] paths = this.sca2amProperties.gethDirFilePath().split(";");

-      for (String s : paths) {

-        checkFilePathExists(s, "h dir path");

-      }

+    /**

+     * Method that provides the fall back strategy if the user has not provided the necessary parameters

+     */

+    private void applyFallBackStrategy() {

+        if ((this.sca2amProperties.getOutPutPath() == null) ||

+                this.sca2amProperties.getOutPutPath().isEmpty()) {

+            this.sca2amProperties.setBinDirectory(SCAUtils.getSCARootDirectory(

+                    this.sca2amProperties.getProjectPath(),

+                    SCAToolsDirectoryType.SCA_BIN,

+                    App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(

+                        Locale.getDefault())));

+            this.sca2amProperties.getLlvmStarterProperties()

+                                 .setGenDirectory(SCAUtils.getSCARootDirectory(

+                    this.sca2amProperties.getProjectPath(),

+                    SCAToolsDirectoryType.SCA_GEN,

+                    App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(

+                        Locale.getDefault())));

+            this.sca2amProperties.getLlvmStarterProperties()

+                                 .setLogDirecotry(SCAUtils.getSCARootDirectory(

+                    this.sca2amProperties.getProjectPath(),

+                    SCAToolsDirectoryType.SCA_LOG,

+                    App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(

+                        Locale.getDefault())));

+        } else {

+            this.sca2amProperties.setBinDirectory(this.sca2amProperties.getOutPutPath());

+            this.sca2amProperties.getLlvmStarterProperties()

+                                 .setGenDirectory(this.sca2amProperties.getOutPutPath());

+            this.sca2amProperties.getLlvmStarterProperties()

+                                 .setLogDirecotry(this.sca2amProperties.getOutPutPath());

+        }

     }

 

-    checkFilePathExists(this.sca2amProperties.getLockinfoFile(), "lock info file path");

-  }

+    /**

+     * This method checks if the user has provided the build_cmd.log file and the header directories. If so it reads them

+     * and generates the clist and hlist.

+     */

+    private void parseBlogAndHDirListOptions() {

+        List<String> hdList;

+        List<String> cList;

 

-  /**

-   * @param filePath to be checked

-   * @param filePathName description

-   */

-  private void checkFilePathExists(final String filePath, final String filePathName) {

-    if ((filePath != null) && !filePath.isEmpty() && !new File(filePath).exists()) {

-      throw new IllegalArgumentException("The " + filePathName + " provided is not valid: " + filePath);

+        if ((this.sca2amProperties.getBuildLogFile() != null) &&

+                !this.sca2amProperties.getBuildLogFile().isEmpty()) {

+            BuildCommandLogFileParser cListProvider = new BuildCommandLogFileParser(this.sca2amProperties.getBuildLogFile(),

+                    this.sca2amProperties.getProjectPath());

+            cList = cListProvider.generateSourceFileList();

+            hdList = cListProvider.generateHashDefineList();

+

+            this.sca2amProperties.setcFilesList(cList);

+            this.sca2amProperties.setHashDefineList(hdList);

+        }

+

+        List<String> hList;

+

+        if ((this.sca2amProperties.gethDirFilePath() != null) &&

+                !this.sca2amProperties.gethDirFilePath().isEmpty()) {

+            String hFilePathList = this.sca2amProperties.gethDirFilePath();

+            // create h file list

+            hList = new PathsToListConverter(hFilePathList, ".h").generateSourceFileList();

+            this.sca2amProperties.sethFilesList(hList);

+        }

     }

-  }

-

-  private void convertXMLToAmaltheaModel() {

-	  OSConfModel osConfModel = null;

-    URI createURI =

-        URI.createFileURI(this.sca2amProperties.getLlvmStarterProperties().getGenDirectory() + "/XMLCalltree.xml");

-    SCAResource resource = new SCAIRLoader().load(createURI);

-    if ((this.sca2amProperties.getTaskListFile() != null) && !this.sca2amProperties.getTaskListFile().isEmpty()) {

-     SchedulingInformationLoader schedInfoLoader = new SchedulingInformationLoader();

-      osConfModel = schedInfoLoader.getTasksInformation(this.sca2amProperties.getTaskListFile());

-      if (osConfModel != null) {

-          SCAIRModelEnrichmentUtils.markTasksIsrsRunnablesInModel(resource, osConfModel.getTaskISRInfoAsMap());

-      }

-  }

-

-    LockDefinition lockDefinition=null;

-    if ((this.sca2amProperties.getLockinfoFile() != null) && !this.sca2amProperties.getLockinfoFile().isEmpty()) {

-    lockDefinition = new LockDefinition(this.sca2amProperties.getLockinfoFile());

-    lockDefinition.readLockDefinitionFromFile();

-    }

- 

-    	Amalthea amaltheaModel = new SCAToAmaltheaExporter().amaltheaTransformation(resource, lockDefinition, osConfModel);

-

-    ManipulateAmalthea.markIniTasksInAmaltheaModel(amaltheaModel, osConfModel);

-

-    ManipulateAmalthea manipulatorCaller = new ManipulateAmalthea();

-    manipulatorCaller.manipulates(this.sca2amProperties, amaltheaModel);

-

-    AMALTHEAResourceSerializer amResSerializer = new AMALTHEAResourceSerializer();

-    amResSerializer.saveAmaltheaModel(this.sca2amProperties.getBinDirectory() + "/amaltheaModelFromLLVM",

-        amaltheaModel);

-  }

-

-  /**

-   * Method that provides the fall back strategy if the user has not provided the necessary parameters

-   */

-  private void applyFallBackStrategy() {

-      if ((this.sca2amProperties.getOutPutPath() == null) || this.sca2amProperties.getOutPutPath().isEmpty() ||

-          this.sca2amProperties.getOutPutPath()

-              .equals(SCA2AmaltheaConstants.getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.OUTPUT_PATH))) {

-        this.sca2amProperties.setBinDirectory(SCAUtils.getSCARootDirectory(

-            this.sca2amProperties.getcProjectPath(), SCAToolsDirectoryType.SCA_BIN,

-            App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(Locale.getDefault())));

-        this.sca2amProperties.getLlvmStarterProperties()

-            .setGenDirectory(SCAUtils.getSCARootDirectory(this.sca2amProperties.getcProjectPath(),

-                SCAToolsDirectoryType.SCA_GEN,

-                App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(Locale.getDefault())));

-        this.sca2amProperties.getLlvmStarterProperties()

-            .setLogDirecotry(SCAUtils.getSCARootDirectory(this.sca2amProperties.getcProjectPath(),

-                SCAToolsDirectoryType.SCA_LOG,

-                App4mcToolConstants.SCA2AMALTHEA_TOOL_ID.toLowerCase(Locale.getDefault())));

-      }

-      else {

-        this.sca2amProperties.setBinDirectory(this.sca2amProperties.getOutPutPath());

-        this.sca2amProperties.getLlvmStarterProperties().setGenDirectory(this.sca2amProperties.getOutPutPath());

-        this.sca2amProperties.getLlvmStarterProperties().setLogDirecotry(this.sca2amProperties.getOutPutPath());

-      }

-  }

-

-  /**

-   * This method checks if the user has provided the build_cmd.log file and the header directories. If so it reads them

-   * and generates the clist and hlist and if not it uses the MDF to get the clist and hlist.

-   */

-  private void parseBlogAndHDirListOptions() {

-    List<String> hdList;

-    List<String> cList;

-

-    if ((this.sca2amProperties.getBuildLogFile() != null) && !this.sca2amProperties.getBuildLogFile().isEmpty()) {

-      BuildCommandLogFileParser cListProvider = new BuildCommandLogFileParser(this.sca2amProperties.getBuildLogFile(),

-          this.sca2amProperties.getcProjectPath());

-      cList = cListProvider.generateSourceFileList();

-      hdList = cListProvider.generateHashDefineList();

-

-      this.sca2amProperties.setcFilesList(cList);

-      this.sca2amProperties.setHashDefineList(hdList);

-    }

-    List<String> hList;

-    if ((this.sca2amProperties.gethDirFilePath() != null) && !this.sca2amProperties.gethDirFilePath().isEmpty()) {

-      String hFilePathList = this.sca2amProperties.gethDirFilePath();

-      // create h file list

-      hList = new PathsToListConverter(hFilePathList, ".h").generateSourceFileList();

-      this.sca2amProperties.sethFilesList(hList);

-    }

-  }

-

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEACmdLauncher.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEACmdLauncher.java
index a6412f2..1a31fa1 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEACmdLauncher.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEACmdLauncher.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
index a3da8fe..0234839 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -14,56 +14,64 @@
  */

 package org.eclipse.app4mc.sca2amalthea.llvm.headless;

 

+import java.io.File;

 import java.util.ArrayList;

 import java.util.List;

 

 import org.eclipse.app4mc.sca2amalthea.llvm.starter.LLVMStarterProperties;

 

+import com.google.common.base.Joiner;

+

 

 /**

- * These class contains only the data of all aoptions needed for running the SCA2AMALTHEA tool

+ * These class contains only the data of all options needed for running the SCA2AMALTHEA tool

  */

 public class SCA2AMALTHEAStarterProperties {

 

+  private String projectPath;

   private String outPutPath;

   private String binDirectory;

-

-  private final String taskListFile;

-  private final String cProjectPath;

-  private final String hDirFilePath;

-

-  private final String buildLogFile;

+  private String taskListFile;

+  private String hDirFilePath;

+  private String buildLogFile;

   private String lockinfoFile;

-  private final boolean isStructMemberEnabled;

+  private boolean isStructMemberEnabled;

 

-  private final LLVMStarterProperties llvmStarterProperties;

+  private LLVMStarterProperties llvmStarterProperties = new LLVMStarterProperties();

 

   /**

    *

    */

   public static final String LOCK_DEFINITION_FILE = "default_bsw_lock_functions.csv";

 

+

+  public SCA2AMALTHEAStarterProperties() {

+    // no -arg constructor

+  }

+

   /**

    * @param traverseAstPath {@link String}

    * @param outPutPath {@link String}

    * @param taskListFile {@link String}

    * @param numberOfThreads {@link Integer}

-   * @param cProjectPath {@link String}

+   * @param projectPath {@link String}

    * @param hDirFilePath {@link String}

    * @param buildLogFile {@link String}

    * @param lockinfoFile {@link String}

    * @param isStructMemberEnabled {@link Boolean}

    */

+

+

   public SCA2AMALTHEAStarterProperties(final String traverseAstPath, final String outPutPath, final String taskListFile,

-      final int numberOfThreads, final String cProjectPath, final String hDirFilePath, final String buildLogFile,

+      final int numberOfThreads, final String projectPath, final String hDirFilePath, final String buildLogFile,

       final String lockinfoFile, final boolean isStructMemberEnabled) {

 

-    this.llvmStarterProperties = new LLVMStarterProperties(traverseAstPath, outPutPath, numberOfThreads, cProjectPath,

+    this.llvmStarterProperties = new LLVMStarterProperties(traverseAstPath, outPutPath, numberOfThreads, projectPath,

         null, null, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());

 

     this.taskListFile = taskListFile;

     this.outPutPath = outPutPath;

-    this.cProjectPath = cProjectPath;

+    this.projectPath = projectPath;

     this.hDirFilePath = hDirFilePath;

     this.buildLogFile = buildLogFile;

     this.lockinfoFile = lockinfoFile;

@@ -78,17 +86,39 @@
   }

 

 

-

-

+  /**

+   * @param projectPath the cProjectPath to set

+   */

+  public void setProjectPath(final String projectPath) {

+    this.projectPath = projectPath;

+    this.llvmStarterProperties.setProjectPath(projectPath);

+  }

 

   /**

    * @param outPutPath the outPutPath to set

    */

   public void setOutPutPath(final String outPutPath) {

-    this.outPutPath = outPutPath;

+    if ((outPutPath == null) || outPutPath.isEmpty() || new File(outPutPath).isAbsolute()) {

+      this.outPutPath = outPutPath;

+    }

+    else {

+      this.outPutPath = this.projectPath + outPutPath;

+    }

     this.llvmStarterProperties.setOutPutPath(outPutPath);

   }

 

+  /**

+   * @param buildLogFile the build command log file path

+   */

+  public void setBuildLogFile(final String buildLogFile) {

+    if ((buildLogFile == null) || buildLogFile.isEmpty() || new File(buildLogFile).isAbsolute()) {

+      this.buildLogFile = buildLogFile;

+    }

+    else {

+      this.buildLogFile = this.projectPath + buildLogFile;

+    }

+  }

+

 

   /**

    * @param cFilesList the cFilesList to set

@@ -105,6 +135,43 @@
     this.llvmStarterProperties.sethFilesList(hFilesList);

   }

 

+  /**

+   * @param hDirFilePath the header directories.

+   */

+  public void setHDirFilePath(final String hDirFilePath) {

+    List<String> hdirList = new ArrayList<>();

+    if ((hDirFilePath != null) && !hDirFilePath.isEmpty()) {

+      for (String s : hDirFilePath.split(File.pathSeparator)) {

+        if (new File(s).isAbsolute()) {

+          hdirList.add(s);

+        }

+        else {

+          hdirList.add(this.projectPath + s);

+        }

+      }

+    }

+    this.hDirFilePath = Joiner.on(File.pathSeparator).join(hdirList);

+  }

+

+  /**

+   * @param taskListFile the taskListFile to set

+   */

+  public void setTaskListFile(final String taskListFile) {

+    if ((taskListFile == null) || taskListFile.isEmpty() || new File(taskListFile).isAbsolute()) {

+      this.taskListFile = taskListFile;

+    }

+    else {

+      this.taskListFile = this.projectPath + taskListFile;

+    }

+  }

+

+  /**

+   * @param isStructMemberEnabled enable structure members option.

+   */

+  public void setIsStructMemberEnabled(final boolean isStructMemberEnabled) {

+    this.isStructMemberEnabled = isStructMemberEnabled;

+  }

+

 

   /**

    * @return the list of C files contained in the project or variant

@@ -138,8 +205,8 @@
   /**

    * @return the cProjectPath

    */

-  public String getcProjectPath() {

-    return this.cProjectPath;

+  public String getProjectPath() {

+    return this.projectPath;

   }

 

   /**

@@ -183,7 +250,12 @@
    * @param lockinfoFile the lockinfoFile to set

    */

   public void setLockinfoFile(final String lockinfoFile) {

-    this.lockinfoFile = lockinfoFile;

+    if ((lockinfoFile == null) || lockinfoFile.isEmpty() || new File(lockinfoFile).isAbsolute()) {

+      this.lockinfoFile = lockinfoFile;

+    }

+    else {

+      this.lockinfoFile = this.projectPath + lockinfoFile;

+    }

   }

 

 

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/BuildCommandLogFileParser.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/BuildCommandLogFileParser.java
index d2a97b9..4264c45 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/BuildCommandLogFileParser.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/BuildCommandLogFileParser.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/ISourceFileListProvider.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/ISourceFileListProvider.java
index 91a81ac..5ac4075 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/ISourceFileListProvider.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/ISourceFileListProvider.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/PathsToListConverter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/PathsToListConverter.java
index 5f787f8..be0de69 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/PathsToListConverter.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/srcfiles/support/PathsToListConverter.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/GenerateTraverseAstOutput.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/GenerateTraverseAstOutput.java
index 6639f07..769528a 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/GenerateTraverseAstOutput.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/GenerateTraverseAstOutput.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

@@ -74,8 +74,8 @@
       cmdList.add("-n=" + properties.getNumberOfThreads());

     }

 

-    if (properties.getcProjectPath() != null) {

-      cmdList.add("-pdir=" + properties.getcProjectPath());

+    if (properties.getProjectPath() != null) {

+      cmdList.add("-pdir=" + properties.getProjectPath());

     }

     if (properties.gethFilesPath() != null) {

       cmdList.add("-hdir=" + properties.gethFilesPath());

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/LLVMStarterProperties.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/LLVMStarterProperties.java
index dfc9751..2762fbd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/LLVMStarterProperties.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/LLVMStarterProperties.java
@@ -1,13 +1,13 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

+ *

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

+ * which is available at https://www.eclipse.org/legal/epl-2.0

+ *

  * SPDX-License-Identifier: EPL-2.0

- * 

+ *

  * Contributors:

  *     Robert Bosch GmbH - initial API and implementation

  ********************************************************************************

@@ -22,188 +22,202 @@
  * This class contains only the options needed for running the llvm part C-Code executable

  */

 public class LLVMStarterProperties {

+    /**

+     *

+     */

+    public static final String TRAVERSE_AST_FILE = "sca.exe";

 

-  private String traverseAstFile;

-  private String outPutPath;

-  private String genDirectory;

-  private String logDirectory;

-  private final int numberOfThreads;

-  private final String cProjectPath;

-  private final String cFilesPath;

-  private final String hFilesPath;

-  private List<String> cFilesList;

-  private List<String> hFilesList;

-  private List<String> hashDefineList;

+    /**

+    *

+    */

+    public static final String LIB_CLANG_DLL = "libclang.dll";

+    private String projectPath;

+    private String traverseAstFile;

+    private String outPutPath;

+    private String genDirectory;

+    private String logDirectory;

+    private int numberOfThreads;

+    private String cFilesPath;

+    private String hFilesPath;

+    private List<String> cFilesList;

+    private List<String> hFilesList;

+    private List<String> hashDefineList;

 

-  /**

-   *

-   */

-  public static final String TRAVERSE_AST_FILE = "sca.exe";

-  /**

-  *

-  */

-  public static final String LIB_CLANG_DLL = "libclang.dll";

-

-  /**

-   * @param traverseAstPath {@link String}

-   * @param outPutPath {@link String}

-   * @param numberOfThreads {@link Integer}

-   * @param cProjectPath {@link String}

-   * @param cFilePath {@link String}

-   * @param hFilePath {@link String}

-   * @param cFilesList {@link List}

-   * @param hFilesList {@link List}

-   * @param hashDefineList {@link List}

-   */

-  public LLVMStarterProperties(final String traverseAstPath, final String outPutPath, final int numberOfThreads,

-      final String cProjectPath, final String cFilePath, final String hFilePath, final List<String> cFilesList,

-      final List<String> hFilesList, final List<String> hashDefineList) {

-

-    this.traverseAstFile = traverseAstPath;

-    if ((this.traverseAstFile != null) && !this.traverseAstFile.isEmpty()) {

-      this.traverseAstFile = traverseAstPath + "/" + LLVMStarterProperties.TRAVERSE_AST_FILE;

+    /**

+     * No arg constructor

+     */

+    public LLVMStarterProperties() {

+        // no arg constructor

     }

 

-    this.outPutPath = outPutPath;

-    this.numberOfThreads = numberOfThreads;

-    this.cProjectPath = cProjectPath;

-    this.cFilesPath = cFilePath;

-    this.hFilesPath = hFilePath;

-    this.cFilesList = new ArrayList<String>(cFilesList);

-    this.hFilesList = new ArrayList<String>(hFilesList);

-    this.hashDefineList = new ArrayList<String>(hashDefineList);

-  }

+    /**

+     * @param traverseAstPath {@link String}

+     * @param outPutPath {@link String}

+     * @param numberOfThreads {@link Integer}

+     * @param projectPath {@link String}

+     * @param cFilePath {@link String}

+     * @param hFilePath {@link String}

+     * @param cFilesList {@link List}

+     * @param hFilesList {@link List}

+     * @param hashDefineList {@link List}

+     */

+    public LLVMStarterProperties(final String traverseAstPath,

+        final String outPutPath, final int numberOfThreads,

+        final String projectPath, final String cFilePath,

+        final String hFilePath, final List<String> cFilesList,

+        final List<String> hFilesList, final List<String> hashDefineList) {

+        this.traverseAstFile = traverseAstPath;

 

-  /**

-   * @param traverseAstFile the traverseAstFile to set

-   */

-  public void setTraverseAstFile(final String traverseAstFile) {

-    this.traverseAstFile = traverseAstFile;

-  }

+        if ((this.traverseAstFile != null) && !this.traverseAstFile.isEmpty()) {

+            this.traverseAstFile = traverseAstPath + "/" +

+                LLVMStarterProperties.TRAVERSE_AST_FILE;

+        }

 

+        this.outPutPath = outPutPath;

+        this.numberOfThreads = numberOfThreads;

+        this.projectPath = projectPath;

+        this.cFilesPath = cFilePath;

+        this.hFilesPath = hFilePath;

+        this.cFilesList = new ArrayList<String>(cFilesList);

+        this.hFilesList = new ArrayList<String>(hFilesList);

+        this.hashDefineList = new ArrayList<String>(hashDefineList);

+    }

 

-  /**

-   * @param outPutPath the outPutPath to set

-   */

-  public void setOutPutPath(final String outPutPath) {

-    this.outPutPath = outPutPath;

-  }

+    /**

+     * @param traverseAstFile the traverseAstFile to set

+     */

+    public void setTraverseAstFile(final String traverseAstFile) {

+        this.traverseAstFile = traverseAstFile;

 

+        if ((this.traverseAstFile != null) && !this.traverseAstFile.isEmpty()) {

+            this.traverseAstFile = this.traverseAstFile + "/" +

+                LLVMStarterProperties.TRAVERSE_AST_FILE;

+        }

+    }

 

-  /**

-   * @param cFilesList the cFilesList to set

-   */

-  public void setcFilesList(final List<String> cFilesList) {

-    this.cFilesList = new ArrayList<String>(cFilesList);

-  }

+    /**

+     * @param outPutPath the outPutPath to set

+     */

+    public void setOutPutPath(final String outPutPath) {

+        this.outPutPath = outPutPath;

+    }

 

+    /**

+     * @param cFilesList the cFilesList to set

+     */

+    public void setcFilesList(final List<String> cFilesList) {

+        this.cFilesList = new ArrayList<String>(cFilesList);

+    }

 

-  /**

-   * @param hFilesList the hFilesList to set

-   */

-  public void sethFilesList(final List<String> hFilesList) {

-    this.hFilesList = new ArrayList<String>(hFilesList);

-  }

+    /**

+     * @param hFilesList the hFilesList to set

+     */

+    public void sethFilesList(final List<String> hFilesList) {

+        this.hFilesList = new ArrayList<String>(hFilesList);

+    }

 

+    /**

+     * @param hashDefineList the hashDefineList to set

+     */

+    public void setHashDefineList(final List<String> hashDefineList) {

+        this.hashDefineList = new ArrayList<String>(hashDefineList);

+    }

 

-  /**

-   * @param hashDefineList the hashDefineList to set

-   */

-  public void setHashDefineList(final List<String> hashDefineList) {

-    this.hashDefineList = new ArrayList<String>(hashDefineList);

-  }

+    /**

+     * @param projectPath the projectPath to set

+     */

+    public void setProjectPath(final String projectPath) {

+        this.projectPath = projectPath;

+    }

 

-  /**

-   * @return the cProjectPath

-   */

-  public String getcProjectPath() {

-    return this.cProjectPath;

-  }

+    /**

+     * @return LLVMStarterProperties

+     */

+    public String getProjectPath() {

+        return this.projectPath;

+    }

 

-  /**

-   * @return the cFilesPath

-   */

-  public String getcFilesPath() {

-    return this.cFilesPath;

-  }

+    /**

+     * @return the cFilesPath

+     */

+    public String getcFilesPath() {

+        return this.cFilesPath;

+    }

 

-  /**

-   * @return the traverseAstFile

-   */

-  public String getTraverseAstFile() {

-    return this.traverseAstFile;

-  }

+    /**

+     * @return the traverseAstFile

+     */

+    public String getTraverseAstFile() {

+        return this.traverseAstFile;

+    }

 

-  /**

-   * @return the outPutPath

-   */

-  public String getOutPutPath() {

-    return this.outPutPath;

-  }

+    /**

+     * @return the outPutPath

+     */

+    public String getOutPutPath() {

+        return this.outPutPath;

+    }

 

-  /**

-   * @return the numberOfThreads

-   */

-  public int getNumberOfThreads() {

-    return this.numberOfThreads;

-  }

+    /**

+     * @return the numberOfThreads

+     */

+    public int getNumberOfThreads() {

+        return this.numberOfThreads;

+    }

 

-  /**

-   * @return the hFilesPath

-   */

-  public String gethFilesPath() {

-    return this.hFilesPath;

-  }

+    /**

+     * @return the hFilesPath

+     */

+    public String gethFilesPath() {

+        return this.hFilesPath;

+    }

 

-  /**

-   * @return the cFilesList

-   */

-  public List<String> getcFilesList() {

-    return this.cFilesList;

-  }

+    /**

+     * @return the cFilesList

+     */

+    public List<String> getcFilesList() {

+        return this.cFilesList;

+    }

 

-  /**

-   * @return the hFilesList

-   */

-  public List<String> gethFilesList() {

-    return this.hFilesList;

-  }

+    /**

+     * @return the hFilesList

+     */

+    public List<String> gethFilesList() {

+        return this.hFilesList;

+    }

 

-  /**

-   * @return the hashDefineList

-   */

-  public List<String> getHashDefineList() {

-    return this.hashDefineList;

-  }

+    /**

+     * @return the hashDefineList

+     */

+    public List<String> getHashDefineList() {

+        return this.hashDefineList;

+    }

 

-  /**

-   * @return the genDirectory

-   */

-  public String getGenDirectory() {

-    return this.genDirectory;

-  }

+    /**

+     * @return the genDirectory

+     */

+    public String getGenDirectory() {

+        return this.genDirectory;

+    }

 

+    /**

+     * @param genDirectory the genDirectory to set

+     */

+    public void setGenDirectory(final String genDirectory) {

+        this.genDirectory = genDirectory;

+    }

 

-  /**

-   * @param genDirectory the genDirectory to set

-   */

-  public void setGenDirectory(final String genDirectory) {

-    this.genDirectory = genDirectory;

-  }

+    /**

+     * @return the logDirecotry

+     */

+    public String getLogDirecotry() {

+        return this.logDirectory;

+    }

 

-

-  /**

-   * @return the logDirecotry

-   */

-  public String getLogDirecotry() {

-    return this.logDirectory;

-  }

-

-

-  /**

-   * @param logDirecotry the logDirecotry to set

-   */

-  public void setLogDirecotry(final String logDirecotry) {

-    this.logDirectory = logDirecotry;

-  }

+    /**

+     * @param logDirecotry the logDirecotry to set

+     */

+    public void setLogDirecotry(final String logDirecotry) {

+        this.logDirectory = logDirecotry;

+    }

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
index fb5d4e9..ddd5631 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/LLVMConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/LLVMConstants.java
index e9ca35f..0396931 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/LLVMConstants.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/LLVMConstants.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/ManipulateAmalthea.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/ManipulateAmalthea.java
index 22993ce..9279c0d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/ManipulateAmalthea.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/ManipulateAmalthea.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/META-INF/MANIFEST.MF
index 3c26d9f..ee84912 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Scairmodelenricher
 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.scairmodelenricher
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.app4mc.sca2amalthea.ir,
@@ -11,3 +11,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.app4mc.sca2amalthea.scairmodelenricher
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.scairmodelenricher
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/pom.xml
deleted file mode 100644
index c7e765b..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.scairmodelenricher</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/src/org/eclipse/app4mc/sca2amalthea/scairmodelenricher/SCAIRModelEnrichmentUtils.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/src/org/eclipse/app4mc/sca2amalthea/scairmodelenricher/SCAIRModelEnrichmentUtils.java
index 5e432e7..6cebbf2 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/src/org/eclipse/app4mc/sca2amalthea/scairmodelenricher/SCAIRModelEnrichmentUtils.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher/src/org/eclipse/app4mc/sca2amalthea/scairmodelenricher/SCAIRModelEnrichmentUtils.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/META-INF/MANIFEST.MF
index f64e2b8..dbe3d28 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/META-INF/MANIFEST.MF
@@ -2,8 +2,9 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: Serialization

 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.serialization

-Bundle-Version: 1.0.0.qualifier

+Bundle-Version: 0.9.8.qualifier

 Bundle-Vendor: Eclipse.org

 Bundle-RequiredExecutionEnvironment: JavaSE-1.8

 Require-Bundle: org.eclipse.emf.ecore.xmi;bundle-version="2.10.2"

 Export-Package: org.eclipse.app4mc.sca2amalthea.serialization

+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.serialization

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/pom.xml
deleted file mode 100644
index 84835b6..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.serialization</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResource.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResource.java
index 8f56de1..c08a6af 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResource.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResource.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResourceFactory.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResourceFactory.java
index 09d74a4..98e6c84 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResourceFactory.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAResourceFactory.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLHandler.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLHandler.java
index ed99b2e..e349b94 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLHandler.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLHandler.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLLoadImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLLoadImpl.java
index ab364bb..44bbabd 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLLoadImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLLoadImpl.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLSaveImpl.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLSaveImpl.java
index a4a7ff3..702ae67 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLSaveImpl.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.serialization/src/org/eclipse/app4mc/sca2amalthea/serialization/SCAXMLSaveImpl.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/META-INF/MANIFEST.MF
index a815f9c..4d05187 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Ui
+Bundle-Name: SCA"AMALTHEA Ui
 Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 0.9.8.qualifier
 Bundle-Activator: org.eclipse.app4mc.sca2amalthea.ui.Activator
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
@@ -18,8 +18,10 @@
  org.eclipse.app4mc.sca2amalthea.utils,
  org.eclipse.app4mc.sca.util,
  org.eclipse.app4mc.sca.ui,
- org.eclipse.app4mc.sca.logging;bundle-version="1.0.0"
+ org.eclipse.app4mc.sca.logging,
+ org.eclipse.core.jobs,
+ org.eclipse.equinox.preferences
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.app4mc.sca2amalthea.ui.handlers,
- org.eclipse.app4mc.sca2amalthea.ui.util
+Export-Package: org.eclipse.app4mc.sca2amalthea.ui.handlers
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.ui
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/plugin.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/plugin.xml
index d9e06ec..8a6a4cc 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/plugin.xml
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/plugin.xml
@@ -30,9 +30,6 @@
                      <instanceof

                            value="org.eclipse.core.resources.IProject">

                      </instanceof>

-                     <instanceof

-                           value="org.eclipse.core.resources.IFile">

-                     </instanceof>

                      </or>

                   </iterate>

                </or>

@@ -66,22 +63,5 @@
                </with>

          </activeWhen>

       </handler>

-       </extension>

-  <extension

-        point="org.eclipse.ui.preferencePages">

-     <page

-           class="org.eclipse.app4mc.sca2amalthea.ui.preferences.SCAToAmaltheaPreferencePage"

-           id="org.eclipse.app4mc.sca2amalthea.ui.preferencePage"

-           name="SCA2Amalthea"

-           category="SCA Tools">

-     </page>

-  </extension>

-  <extension

-        point="org.eclipse.app4mc.sca.ui.exportOptions">

-     <exporter

-           name="SCAToAmalthea"

-           preferences="org.eclipse.app4mc.sca2amalthea.ui.preferences.SCAToAmaltheaExportPreferenceList"

-           tool="SCA2Amalthea">

-     </exporter>

-  </extension>
+       </extension>
 </plugin>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/pom.xml
deleted file mode 100644
index 52246ca..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.ui</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-  

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/Activator.java
index fa84b27..ce4861d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/handlers/SCAToAmaltheaHandler.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/handlers/SCAToAmaltheaHandler.java
index d2ddc15..1a4d94d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/handlers/SCAToAmaltheaHandler.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/handlers/SCAToAmaltheaHandler.java
@@ -1,408 +1,95 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

+ *

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

+ * which is available at https://www.eclipse.org/legal/epl-2.0

+ *

  * SPDX-License-Identifier: EPL-2.0

- * 

+ *

  * Contributors:

  *     Robert Bosch GmbH - initial API and implementation

  ********************************************************************************

  */

 package org.eclipse.app4mc.sca2amalthea.ui.handlers;

 

-import java.util.Timer;

-import java.util.TimerTask;

+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;

+import org.eclipse.app4mc.sca.ui.util.SCAToolsUIUtil;

+import org.eclipse.app4mc.sca.ui.widget.builder.OutputDetailsWidgetBuilder;

+import org.eclipse.app4mc.sca.ui.widget.builder.SchedulingOsDataWidgetBuilder;

+import org.eclipse.app4mc.sca.ui.widget.builder.SwModelWidgetBuilder;

+import org.eclipse.app4mc.sca.ui.wizard.GenerateAmaltheaWizard;

+import org.eclipse.app4mc.sca.ui.wizard.GenerateAmaltheaWizardPage;

+import org.eclipse.app4mc.sca.util.App4mcToolConstants;

+import org.eclipse.app4mc.sca2amalthea.ui.wizard.SCA2AmaltheaExecutor;

+import org.eclipse.app4mc.sca2amalthea.ui.wizard.SCA2AmaltheaWidgetBuilder;

 

-import org.eclipse.app4mc.sca.logging.manager.Logmanager;

-import org.eclipse.app4mc.sca2amalthea.llvm.headless.GenerateAmaltheaModelFromLLVM;

-import org.eclipse.app4mc.sca2amalthea.ui.Activator;

-import org.eclipse.app4mc.sca2amalthea.utils.UtilityForProcessHandling;

-import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;

 import org.eclipse.core.commands.AbstractHandler;

 import org.eclipse.core.commands.ExecutionEvent;

 import org.eclipse.core.commands.ExecutionException;

-import org.eclipse.core.internal.resources.Resource;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.core.runtime.SubMonitor;

-import org.eclipse.core.runtime.jobs.Job;

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.jface.preference.IPreferenceStore;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.TreeSelection;

+import org.eclipse.core.resources.IProject;

+import org.eclipse.core.runtime.preferences.IEclipsePreferences;

+

+import org.eclipse.jface.wizard.WizardDialog;

+

 import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.ui.PlatformUI;

-import org.eclipse.ui.handlers.HandlerUtil;

+

+import java.util.Arrays;

+import java.util.Properties;

 

 

 /**

  */

-@SuppressWarnings("restriction")

 public class SCAToAmaltheaHandler extends AbstractHandler {

-

-  private String cFilePath = "";

-  private String traverseASTPath = "";

-  private String outPutPath = "";

-  private String taskListFile = "";

-  private String headerTextFilePath = "";

-  private String buildCmdLogFilePath = "";

-  private String lockfunctionFile = "";

-  private boolean isStructMemberEnabled = false;

-  private volatile Boolean isGenerationDone = Boolean.FALSE;

-  private final Object mutex = new Object();

-  private Job currentJob = null;

-  private boolean confirmation = true;

-  private Shell currentShell;

-  private static String infoMessage;

-  private static String confirmationMessage;

-  private static String title;

-  private static int timerDelay;

-  private static int timerPeriod;

-

-  /**

-   * Sets the timer delay for the timer

-   *

-   * @param timerDelay time delay in milliseconds.

-   */

-  public static void setTimerDelay(final int timerDelay) {

-    SCAToAmaltheaHandler.timerDelay = timerDelay;

-  }

-

-  /**

-   * Returns the timer delay that was set.

-   *

-   * @return timer delay.

-   */

-  public static int getTimerDelay() {

-    return SCAToAmaltheaHandler.timerDelay;

-  }

-

-  /**

-   * Sets the time period after which the timer task would be executed.

-   *

-   * @param timerPeriod time period in milliseonds.

-   */

-  public static void setTimerPeriod(final int timerPeriod) {

-    SCAToAmaltheaHandler.timerPeriod = timerPeriod;

-  }

-

-  /**

-   * Returns the time period that was set.

-   *

-   * @return timer period.

-   */

-  public static int getTimerPeriod() {

-    return SCAToAmaltheaHandler.timerPeriod;

-  }

-

-

-  @Override

-  public Object execute(final ExecutionEvent event) throws ExecutionException {

-

-    IPreferenceStore preferenceStore = org.eclipse.app4mc.sca2amalthea.utils.Activator.getDefault().getPreferenceStore();

-    this.currentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

-    if (event != null) {

-      ISelection selection = HandlerUtil.getCurrentSelection(event);

-      if (((TreeSelection) selection).getFirstElement() instanceof Resource) {

-        Resource resource = (Resource) ((TreeSelection) selection).getFirstElement();

-        this.cFilePath = resource.getLocation().toString();

-        this.isStructMemberEnabled = preferenceStore.getBoolean(SCA2AmaltheaConstants.ENABLE_STRUCT_MEMBER);

-      }

-    }

-

-    this.traverseASTPath = preferenceStore.getString(SCA2AmaltheaConstants.AST_PATH);

-    this.taskListFile = preferenceStore.getString(SCA2AmaltheaConstants.TASK_INFO);

-    this.headerTextFilePath = preferenceStore.getString(SCA2AmaltheaConstants.HDIR_LIST);

-    this.buildCmdLogFilePath = preferenceStore.getString(SCA2AmaltheaConstants.BLOG);

-    this.lockfunctionFile = preferenceStore.getString(SCA2AmaltheaConstants.LOCK_INFO);

-    if (preferenceStore.getBoolean(SCA2AmaltheaConstants.ENABLE_OPTIONAL_FIELDS)) {

-      this.outPutPath = preferenceStore.getString(SCA2AmaltheaConstants.OUTPUT_PATH);

-    }

-    else {

-      this.outPutPath = preferenceStore.getDefaultString(SCA2AmaltheaConstants.OUTPUT_PATH);

-

-    }

-

-    if(this.traverseASTPath.isEmpty()){

-    	MessageDialog.openError(this.currentShell, "Error Amalthea model generation", "Path to LLVM executable is not configured in sca2Amalthea preferences");

-    }

-    else{

-    if (UtilityForProcessHandling.getCurrentRunningProcess() == null) {

-      createAndExecuteJobForModelGeneration();

-    }

-    else {

-      String information = "The generation of 2 models at the same time is not allowed";

-      this.currentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

-      MessageDialog.openInformation(this.currentShell, "Operation not allowed", information);

-      Logmanager.getInstance().log(information);

-    }

-    }

-

-    return null;

-  }

-

-  /**

-   *

-   */

-  private void createAndExecuteJobForModelGeneration() {

-    Job job = new Job("AMALTHEA model generation") {

-

-      @Override

-      public IStatus run(final IProgressMonitor monitor) {

-        final SubMonitor subMonitor = SubMonitor.convert(monitor, 600);

-        Thread progressMonitorObserverThread = null;

-        boolean isPopupToBeDisplayed = false;

-        try {

-          progressMonitorObserverThread = createInfiniteProgressMonitor(subMonitor);

-          progressMonitorObserverThread.start();

-          GenerateAmaltheaModelFromLLVM generator = new GenerateAmaltheaModelFromLLVM(

-              SCAToAmaltheaHandler.this.cFilePath, SCAToAmaltheaHandler.this.outPutPath,

-              SCAToAmaltheaHandler.this.traverseASTPath, SCAToAmaltheaHandler.this.taskListFile,

-              SCAToAmaltheaHandler.this.headerTextFilePath, SCAToAmaltheaHandler.this.buildCmdLogFilePath,

-              SCAToAmaltheaHandler.this.lockfunctionFile,

-              SCAToAmaltheaHandler.this.isStructMemberEnabled);

-          setInfoMessage("The time required to generate the Amalthea model depends on the size of the PVER.");

-          setTitle("Information-Amalthea Model Generation");

-          Display.getDefault().syncExec(new InfoPopUp());

-          startTimer();

-          int returncode = generator.run();

-          synchronized (SCAToAmaltheaHandler.this.mutex) {

-            SCAToAmaltheaHandler.this.isGenerationDone = true;

-          }

-          // check the exit status of the process and show a information popup

-          if ((returncode != 0) || (UtilityForProcessHandling.getCurrentRunningProcess().exitValue() != 0)) {

-            if (SCAToAmaltheaHandler.this.confirmation) {

-              setInfoMessage("There was some error while parsing c files or when generating the AMALTHEA model.");

-              setTitle("Error");

-              Display.getDefault().syncExec(new InfoPopUp());

-            }

-            else {

-              SCAToAmaltheaHandler.this.confirmation = true;

-            }

-            UtilityForProcessHandling.setCurrentRunningProcess(null);

-          }

-          else {

-            isPopupToBeDisplayed = true;

-          }

-        }

-        catch (Exception e) {

-          Logmanager.getInstance().logException(this.getClass(), e, Activator.PLUGIN_ID);

-

-          if (progressMonitorObserverThread != null) {

-            waitForThread(progressMonitorObserverThread);

-          }

-

-          subMonitor.done();

-          return Status.CANCEL_STATUS;

-        }

-        waitForThread(progressMonitorObserverThread);

-        subMonitor.done();

-        if (isPopupToBeDisplayed) {

-          setInfoMessage("Amathea model generation completed");

-          setTitle("Amathea model generated");

-          Display.getDefault().syncExec(new InfoPopUp());

-        }

-        return new Status(IStatus.OK, Activator.PLUGIN_ID, "AMALTHEA model generation completed");

-      }

-

-

-      /**

-       * @param t

-       */

-      private void waitForThread(final Thread t) {

-        try {

-          if (t != null) {

-            t.join();

-          }

-        }

-        catch (InterruptedException e) {

-          Logmanager.getInstance().log(e.getMessage());

-        }

-      }

-    };

-    this.currentJob = job;

-    job.schedule();

-  }

-

-  /**

-   * @param subMonitor

-   */

-  private Thread createInfiniteProgressMonitor(final SubMonitor subMonitor) {

-    return new InfiniteProgressMonitorObserver(subMonitor);

-  }

-

-  class InfiniteProgressMonitorObserver extends Thread {

-

-    private String message = "Terminating AMALTHEA model generation job";

-    private final SubMonitor subMonitor;

-

-    /**

-     * @param subMonitor monitor which will be observed

-     */

-    public InfiniteProgressMonitorObserver(final SubMonitor subMonitor) {

-      super();

-      this.subMonitor = subMonitor;

-    }

-

     @Override

-    public void run() {

+    public Object execute(final ExecutionEvent event) throws ExecutionException {

+        Properties properties = getProperties();

+        SCA2AmaltheaWidgetBuilder sca2AmaltheaWidgetBuilder = new SCA2AmaltheaWidgetBuilder(properties);

+        SwModelWidgetBuilder swModelWidgetBuilder = new SwModelWidgetBuilder(sca2AmaltheaWidgetBuilder,

+                properties);

+        SchedulingOsDataWidgetBuilder schedulingOsDataWidgetBuilder = new SchedulingOsDataWidgetBuilder(properties);

+        OutputDetailsWidgetBuilder outputDetailsWidgetBuilder = new OutputDetailsWidgetBuilder(properties);

+        GenerateAmaltheaWizardPage scaAmaltheaWizardPage = new GenerateAmaltheaWizardPage("SCA2Amalthea Configuration page",

+                Arrays.asList(swModelWidgetBuilder,

+                    schedulingOsDataWidgetBuilder, outputDetailsWidgetBuilder));

+        GenerateAmaltheaWizard generateAmaltheaWizard = new GenerateAmaltheaWizard(Arrays.asList(

+                    scaAmaltheaWizardPage), properties,

+                new SCA2AmaltheaExecutor());

+        WizardDialog wizardDialog = new WizardDialog(Display.getCurrent()

+                                                            .getActiveShell(),

+                generateAmaltheaWizard);

+        wizardDialog.setMinimumPageSize(800, 600);

 

-      this.message = runLogarithmicWaitOnProgressMonitor();

-

-      terminateMonitorIn10Secondes();

-

-      UtilityForProcessHandling.setCurrentRunningProcess(null);

-      UtilityForProcessHandling.setModelGenerationcancelled(false);

-      SCAToAmaltheaHandler.this.isGenerationDone = false;

+        return wizardDialog.open();

     }

 

-    /**

-     * @param subMonitor

-     * @param message

-     * @return

-     */

-    private String runLogarithmicWaitOnProgressMonitor() {

-      String messageToRenameJob = "Terminating AMALTHEA model generation job";

-      boolean isProcessCompleted = false;

-      int advancementCounter = 0;

+    private Properties getProperties() {

+        Properties properties = new Properties();

+        IProject selectedProject = SCAToolsUIUtil.getCurrentProjectResource();

+        IEclipsePreferences projectpreferences = SCAToolsUIUtil.loadProjectScopePrefs(selectedProject,

+                App4mcToolConstants.SCA2AMALTHEA_TOOL_ID);

+        properties.setProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH,

+            SCAToolsUIUtil.getCurrentSelectionProjectPath());

+        properties.setProperty(AmaltheaWizardPreferenceConstants.ENABLE_STRUCT_MEMBER_KEY,

+            projectpreferences.get(

+                AmaltheaWizardPreferenceConstants.ENABLE_STRUCT_MEMBER_KEY,

+                Boolean.FALSE.toString()));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.AST_PATH_KEY,

+            projectpreferences.get(AmaltheaWizardPreferenceConstants.AST_PATH_KEY, ""));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY,

+            projectpreferences.get(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY, ""));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.BLOG_KEY,

+            projectpreferences.get(AmaltheaWizardPreferenceConstants.BLOG_KEY, ""));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.OS_LOCK_FILE,

+            projectpreferences.get(AmaltheaWizardPreferenceConstants.OS_LOCK_FILE, ""));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.TASK_SCHEDULING_FILE,

+            projectpreferences.get(

+                AmaltheaWizardPreferenceConstants.TASK_SCHEDULING_FILE, ""));

+        properties.setProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY,

+            projectpreferences.get(

+                AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY, ""));

 

-      while (!isProcessCompleted) {

-        if (this.subMonitor.isCanceled()) {

-          synchronized (SCAToAmaltheaHandler.this.mutex) {

-            SCAToAmaltheaHandler.this.isGenerationDone = true;

-          }

-          Process p = UtilityForProcessHandling.getCurrentRunningProcess();

-          p.destroyForcibly();

-

-          UtilityForProcessHandling.setCurrentRunningProcess(null);

-          UtilityForProcessHandling.setModelGenerationcancelled(true);

-

-          messageToRenameJob = "Cancelling the model generation job";

-        }

-        try {

-          this.subMonitor.worked(1);

-          advancementCounter++;

-          if ((advancementCounter % 300) == 0) {

-            advancementCounter = 1;

-            this.subMonitor.setWorkRemaining(600);

-          }

-          Thread.sleep(1000);

-        }

-        catch (InterruptedException e) {

-          Logmanager.getInstance().log(e.getMessage());

-        }

-        synchronized (SCAToAmaltheaHandler.this.mutex) {

-          isProcessCompleted = SCAToAmaltheaHandler.this.isGenerationDone;

-        }

-      }

-      return messageToRenameJob;

+        return properties;

     }

-

-    /**

-     * @param subMonitor

-     * @param message

-     */

-    private void terminateMonitorIn10Secondes() {

-      int numberOfSecondUntilEnd = 10;

-      this.subMonitor.setWorkRemaining(numberOfSecondUntilEnd);

-      this.subMonitor.setTaskName(this.message);

-      SCAToAmaltheaHandler.this.currentJob.setName(this.message);

-      while (numberOfSecondUntilEnd > 0) {

-        try {

-          this.subMonitor.worked(1);

-          Thread.sleep(1000);

-        }

-        catch (InterruptedException e) {

-          Logmanager.getInstance().log(e.getMessage());

-        }

-        --numberOfSecondUntilEnd;

-      }

-    }

-

-  }

-

-  /**

-   * Inner class to show a confirmation pop up.

-   *

-   */

-  class ConfirmationPopUp implements Runnable {

-

-    @Override

-    public void run() {

-      SCAToAmaltheaHandler.this.confirmation =

-          MessageDialog.openConfirm(SCAToAmaltheaHandler.this.currentShell, title, confirmationMessage);

-

-    }

-  }

-

-  /**

-   * Inner class to show a information pop up.

-   */

-  class InfoPopUp implements Runnable {

-

-    @Override

-    public void run() {

-      MessageDialog.openInformation(SCAToAmaltheaHandler.this.currentShell, title, infoMessage);

-

-    }

-  }

-

-  /**

-   * This method starts the timer.The timer is sceduled to run after every 15mins.Every time the timer runs it checks if

-   * the eclipse job is still alive. If so it pops up a confirmation dialog asking if the user wishes to continue. If

-   * the user wishes to continue the timer keeps running and keeps showing the popup after every 15 mins and if the user

-   * wishes to abort then it cancels the eclipse job, cancels the timer and kills the sca.exe process.If the eclipse job

-   * is not alive it cancels the timer.

-   */

-  private void startTimer() {

-    if (getTimerDelay() == 0) {

-      setTimerDelay(40 * 60 * 1000);

-    }

-    if (getTimerPeriod() == 0) {

-      setTimerPeriod(40 * 60 * 1000);

-    }

-    Job eclipseJob = Job.getJobManager().currentJob();

-    Timer t = new Timer();

-    t.scheduleAtFixedRate(new TimerTask() {

-

-      @Override

-      public void run() {

-        if ((eclipseJob.getThread() != null) && eclipseJob.getThread().isAlive()) {

-          setConfirmationMessage(

-              "The amalthea model generation job is still running.It might take some more time. Do you wish to continue? Press Ok to continue or cancel to abort");

-          setTitle("Amalthea Job status");

-          Display.getDefault().syncExec(new ConfirmationPopUp());

-          if (!SCAToAmaltheaHandler.this.confirmation) {

-            t.cancel();

-            eclipseJob.cancel();

-            Process p = UtilityForProcessHandling.getCurrentRunningProcess();

-            if (p != null) {

-              p.destroyForcibly();

-            }

-          }

-        }

-        else {

-          t.cancel();

-        }

-      }

-    }, getTimerDelay(), getTimerPeriod());

-  }

-

-  private static void setInfoMessage(final String message) {

-    SCAToAmaltheaHandler.infoMessage = message;

-  }

-

-  private static void setTitle(final String message) {

-    SCAToAmaltheaHandler.title = message;

-  }

-

-  private static void setConfirmationMessage(final String message) {

-    SCAToAmaltheaHandler.confirmationMessage = message;

-  }

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaExportPreferenceList.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaExportPreferenceList.java
deleted file mode 100644
index f7a81ae..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaExportPreferenceList.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca2amalthea.ui.preferences;

-

-import java.util.Arrays;

-import java.util.List;

-

-import org.eclipse.app4mc.sca.ui.preferences.interfaces.IExportPreferences;

-import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;

-import org.eclipse.jface.preference.IPreferenceStore;

-

-/**

- */

-public class SCAToAmaltheaExportPreferenceList implements IExportPreferences {

-

-

-  /**

-   * The private constructor

-   */

-  public SCAToAmaltheaExportPreferenceList() {

-    // empty private constructor

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public List<String> keysToExport() {

-    String[] prefToSave = { // NOSONAR not significant

-        SCA2AmaltheaConstants.ENABLE_STRUCT_MEMBER,

-        SCA2AmaltheaConstants.ENABLE_OPTIONAL_FIELDS,

-        SCA2AmaltheaConstants.AST_PATH,

-        SCA2AmaltheaConstants.OUTPUT_PATH,

-        SCA2AmaltheaConstants.TASK_INFO,

-        SCA2AmaltheaConstants.BLOG,

-        SCA2AmaltheaConstants.HDIR_LIST,

-        SCA2AmaltheaConstants.LOCK_INFO };

-    return Arrays.asList(prefToSave);

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public IPreferenceStore getPreferenceStore() {

-    return org.eclipse.app4mc.sca2amalthea.utils.Activator.getDefault().getPreferenceStore();

-  }

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaPreferencePage.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaPreferencePage.java
deleted file mode 100644
index ea57a5c..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/preferences/SCAToAmaltheaPreferencePage.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca2amalthea.ui.preferences;

-

-

-import java.io.File;

-

-import org.eclipse.app4mc.sca.ui.preferences.AbstractSCAToolsPreferencePage;

-import org.eclipse.app4mc.sca.util.App4mcToolConstants;

-import org.eclipse.app4mc.sca2amalthea.ui.util.SCAToAmaltheaPreferencePageConstants;

-import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.preference.BooleanFieldEditor;

-import org.eclipse.jface.preference.DirectoryFieldEditor;

-import org.eclipse.jface.preference.FieldEditor;

-import org.eclipse.jface.preference.FileFieldEditor;

-import org.eclipse.jface.preference.PathEditor;

-import org.eclipse.jface.preference.PreferenceDialog;

-import org.eclipse.jface.resource.JFaceResources;

-import org.eclipse.jface.util.PropertyChangeEvent;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.FocusEvent;

-import org.eclipse.swt.events.FocusListener;

-import org.eclipse.swt.events.KeyEvent;

-import org.eclipse.swt.events.KeyListener;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.IWorkbench;

-

-/**

- */

-public class SCAToAmaltheaPreferencePage extends AbstractSCAToolsPreferencePage {

-

-

-  private DirectoryFieldEditor llvmExecutableEditor;

-  private DirectoryFieldEditor outputPathEditor;

-  private FileFieldEditor taskInfoEditor;

-  private PathEditor headerTextFileEditor;

-  private FileFieldEditor buildCmdLogFileEditor;

-  private BooleanFieldEditor enable;

-  private BooleanFieldEditor structMemberRemover;

-  private Group optional;

-  private Group configure;

-  private Group mandatory;

-  private FileFieldEditor lockFunctionsEditor;

-

-  /**

-   * Using GRID layout

-   */

-  public SCAToAmaltheaPreferencePage() {

-    super(1);

-

-  }

-

-  /**

-   * creating UI controls for sca2Amalthea preference page

-   */

-

-  @Override

-  public void createFieldEditors() {

-

-	this.mandatory=new Group(getFieldEditorParent(), SWT.SHADOW_OUT);

-    this.configure = new Group(getFieldEditorParent(), SWT.SHADOW_OUT);

-    this.optional = new Group(getFieldEditorParent(), SWT.SHADOW_OUT);

-

-    this.mandatory.setText("MANDATORY CONFIGURATION");

-    this.optional.setText("OPTIONAL CONFIGURATION");

-    this.configure.setText("EDIT OPTIONAL CONFIGURATION");

-    GridLayout layout = new GridLayout(1, false);

-

-    this.mandatory.setLayout(layout);

-    this.configure.setLayout(layout);

-    this.optional.setLayout(layout);

-

-    GridDataFactory.defaultsFor(this.mandatory).grab(true, false).span(2, 1).applyTo(this.mandatory);

-    GridDataFactory.defaultsFor(this.configure).grab(true, false).span(2, 1).applyTo(this.configure);

-    GridDataFactory.defaultsFor(this.optional).grab(true, false).span(2, 1).applyTo(this.optional);

-

-

-    this.llvmExecutableEditor =

-        new DirectoryFieldEditor(SCA2AmaltheaConstants.AST_PATH, "&Path to the LLVM Executable", this.mandatory);

-    addField(this.llvmExecutableEditor);

-    this.llvmExecutableEditor.setFilterPath(new File(getProjectPath()));

-

-

-    this.outputPathEditor =

-        new DirectoryFieldEditor(SCA2AmaltheaConstants.OUTPUT_PATH, "&Output Directory Path:", this.optional);

-    this.outputPathEditor.getTextControl(this.optional)

-        .setToolTipText(SCAToAmaltheaPreferencePageConstants.OUTPUT_PATH_DEFAULT_MESSAGE);

-    addField(this.outputPathEditor);

-    this.outputPathEditor.setFilterPath(new File(getProjectPath()));

-

-

-    this.taskInfoEditor = new FileFieldEditor(SCA2AmaltheaConstants.TASK_INFO, "&Task Information file", this.optional);

-    this.taskInfoEditor.getTextControl(this.optional)

-        .setToolTipText(SCAToAmaltheaPreferencePageConstants.TASK_INFO_FILE_DEFAULT_MEAASGE);

-    addField(this.taskInfoEditor);

-    this.taskInfoEditor.setFilterPath(new File(getProjectPath()));

-

-

-    this.structMemberRemover =

-        new BooleanFieldEditor(SCA2AmaltheaConstants.ENABLE_STRUCT_MEMBER, "&Enable Structure member", this.configure);

-    addField(this.structMemberRemover);

-

-    this.enable = new BooleanFieldEditor(SCA2AmaltheaConstants.ENABLE_OPTIONAL_FIELDS, "&Configure optional fields",

-        this.configure);

-    addField(this.enable);

-

-    this.headerTextFileEditor = new PathEditor(SCA2AmaltheaConstants.HDIR_LIST, "&Header directories",

-        "Choose a header directory", this.optional);

-    this.headerTextFileEditor.getListControl(this.optional)

-        .setToolTipText(SCAToAmaltheaPreferencePageConstants.HEADER_TEXT_FILE_DEFAULT_MESSAGE);

-    addField(this.headerTextFileEditor);

-

-

-    this.buildCmdLogFileEditor =

-        new FileFieldEditor(SCA2AmaltheaConstants.BLOG, "&Build command log file", this.optional);

-    this.buildCmdLogFileEditor.getTextControl(this.optional)

-        .setToolTipText(SCAToAmaltheaPreferencePageConstants.BUILD_LOG_FILE_DEFAULT_MESSAGE);

-    addField(this.buildCmdLogFileEditor);

-    this.buildCmdLogFileEditor.setFilterPath(new File(getProjectPath()));

-

-    this.lockFunctionsEditor =

-        new FileFieldEditor(SCA2AmaltheaConstants.LOCK_INFO, "& Lock Function file", this.optional);

-    this.lockFunctionsEditor.getTextControl(this.optional)

-        .setToolTipText(SCAToAmaltheaPreferencePageConstants.LOCK_FUNCTIONS_DEFAULT_MESSAGE);

-    addField(this.lockFunctionsEditor);

-   addListeners();

-   validate();

-  }

-

-  /**

-   * Setting the preference store

-   *

-   * @param workbench the workBench

-   */

-

-  @Override

-  public void init(final IWorkbench workbench) {

-    setPreferenceStore(org.eclipse.app4mc.sca2amalthea.utils.Activator.getDefault().getPreferenceStore());

-    setDescription("Source Code to Amalthea Preference Settings");

-

-  }

-

-

-  /**

-   * Enable or disable the field editors based on "EDIT OPTIONAL CONFIGURATION" check box

-   */

-  @Override

-  protected void checkState() {

-    super.checkState();

-    setValid(true);

-

-    if (this.enable.getBooleanValue()) {

-      this.outputPathEditor.setEnabled(true, this.optional);

-      this.outputPathEditor.getTextControl(this.optional).setEditable(false);

-

-      this.buildCmdLogFileEditor.setEnabled(true, this.optional);

-      this.buildCmdLogFileEditor.getTextControl(this.optional).setEditable(false);

-      this.headerTextFileEditor.setEnabled(true, this.optional);

-

-

-      this.taskInfoEditor.setEnabled(true, this.optional);

-

-      this.taskInfoEditor.getTextControl(this.optional).setEditable(false);

-

-      this.lockFunctionsEditor.setEnabled(true, this.optional);

-      this.lockFunctionsEditor.getTextControl(this.optional).setEditable(false);

-      clearOptionalFields();

-    }

-    else {

-      this.outputPathEditor.setEnabled(false, this.optional);

-      this.outputPathEditor.setStringValue(getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.OUTPUT_PATH));

-            

-      this.buildCmdLogFileEditor.setEnabled(false, this.optional);

-      this.buildCmdLogFileEditor.setStringValue(getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.BLOG));

-      this.headerTextFileEditor.setEnabled(false, this.optional);

-

-      this.headerTextFileEditor.getListControl(this.optional).removeAll();

-      this.headerTextFileEditor.getListControl(this.optional)

-          .add(getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.HDIR_LIST), 0);

-

-      this.headerTextFileEditor.getListControl(this.optional).deselect(0);

-      this.taskInfoEditor.setEnabled(false, this.optional);

-      this.taskInfoEditor.setStringValue(getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.TASK_INFO));

-

-      this.lockFunctionsEditor.setEnabled(false, this.optional);

-      this.lockFunctionsEditor.setStringValue(getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.LOCK_INFO));

-      setErrorMessage(null);

-    }

-

-    Control[] control = this.headerTextFileEditor.getButtonBoxControl(this.optional).getChildren();

-    for (Control c : control) {

-      if (c instanceof Button) {

-        Button b = (Button) c;

-        if (b.getText().equals(JFaceResources.getString("ListEditor.up")) ||

-            b.getText().equals(JFaceResources.getString("ListEditor.down"))) {

-          b.setVisible(false);

-        }

-        else {

-          b.setVisible(true);

-        }

-      }

-    }

-

-    GridData gridData = (GridData) this.headerTextFileEditor.getLabelControl(this.optional).getLayoutData();

-    gridData.horizontalSpan = 1;

-    GridData gridDataText = (GridData) this.headerTextFileEditor.getListControl(this.optional).getLayoutData();

-    gridDataText.horizontalSpan = 1;

-    GridData gridDataButton = (GridData) this.headerTextFileEditor.getButtonBoxControl(this.optional).getLayoutData();

-    gridDataButton.horizontalSpan = 1;

-    validate();

-  }

-

-  /**

-   * Called when the property of any of the field editors changes

-   */

-  @Override

-  public void propertyChange(final PropertyChangeEvent event) {

-    super.propertyChange(event);

-    if (event.getProperty().equals(FieldEditor.VALUE)) {

-      checkState();     

-    }

-  }

-

-  /**

-   * Just return true when user press OK

-   */

-

-  @Override

-  public boolean performOk() {

-	  if(getErrorMessage()!=null){

-	    MessageDialog.openError(getShell(), "Error in Configuration", getErrorMessage());

-	    return false;

-	  }

-    super.performOk();

-    return true;

-

-  }

-  @Override 

-  protected void performApply() {

-      performOk();

-  }

-

-  /**

-   * clear the Optional fields

-   */

-

-  private void clearOptionalFields() {

-    if (this.outputPathEditor.getStringValue()

-        .equals(SCA2AmaltheaConstants.getPreferenceStore().getDefaultString(SCA2AmaltheaConstants.OUTPUT_PATH))) {

-      this.outputPathEditor.setStringValue("");

-    }

-  }

-

-  private String getProjectPath() {

-    IProject[] project = ResourcesPlugin.getWorkspace().getRoot().getProjects();

-    if ((project != null) && (project.length != 0)) {

-      return project[0].getLocation().toString();

-    }

-    return "";

-  }

-

-  /**

-   * {@inheritDoc}

-   */

-  @Override

-  public String getToolId() {

-    return App4mcToolConstants.SCA2AMALTHEA_TOOL_ID;

-  }

-

-  private void validate(){	  

-	  if(this.llvmExecutableEditor.getStringValue().isEmpty()){

-		  setErrorMessage("Path to the LLVM executable is mandatory and cannot be empty");

-	  }

-	  else if(!new File(this.llvmExecutableEditor.getStringValue()).exists()){

-		  setErrorMessage("Path to the LLVM executable does not exist");

-	  }

-	  else if (!this.taskInfoEditor.getStringValue().isEmpty() && !this.taskInfoEditor.getStringValue().endsWith(".csv")){

-			  setErrorMessage("Task Information file should have a .csv extension");

-		  }

-      else if(!this.taskInfoEditor.getStringValue().isEmpty() && !new File(this.taskInfoEditor.getStringValue()).exists()){

-			  setErrorMessage("Task Information file does not exist");

-		  }

-	  else{

-			setErrorMessage(null);

-		  }

-	  disableOrEnableOkAndApplyButton();

-	  }

-  

-  private void addListeners() {

-	     addFocusListenerToTextBox(this.outputPathEditor.getTextControl(this.optional));

-	     addKeyListenerToTextBox(this.outputPathEditor.getTextControl(this.optional));

-	     addFocusListenerToTextBox(this.llvmExecutableEditor.getTextControl(this.mandatory));

-	     addKeyListenerToTextBox(this.llvmExecutableEditor.getTextControl(this.mandatory));

-	     addFocusListenerToTextBox(this.taskInfoEditor.getTextControl(this.optional));

-	     addKeyListenerToTextBox(this.taskInfoEditor.getTextControl(this.optional));

-	     addFocusListenerToTextBox(this.buildCmdLogFileEditor.getTextControl(this.optional));

-	     addKeyListenerToTextBox(this.buildCmdLogFileEditor.getTextControl(this.optional));

-	     addFocusListenerToTextBox(this.lockFunctionsEditor.getTextControl(this.optional));

-	     addKeyListenerToTextBox(this.lockFunctionsEditor.getTextControl(this.optional));

-	  }

-  

-  private void addFocusListenerToTextBox(final Text t) {

-	    t.addFocusListener(new FocusListener() {

-	      @Override

-	      public void focusLost(final FocusEvent e) {

-	        validate();

-	      }

-	      @Override

-	      public void focusGained(final FocusEvent e) {

-	        validate();

-	      }

-	    });

-	  }

-

-	  private void addKeyListenerToTextBox(final Text t) {

-	    t.addKeyListener(new KeyListener() {

-	      @Override

-	      public void keyReleased(final KeyEvent e) {

-	        validate();

-	      }

-	      @Override

-	      public void keyPressed(final KeyEvent e) {

-	        validate();

-	      }

-	    });

-	  }

-	  

-	  private void disableOrEnableOkAndApplyButton() {

-		    Button okButton = null;

-		    PreferenceDialog iPreferencePageContainer = (PreferenceDialog) getContainer();

-

-		    Composite buttons = (Composite) iPreferencePageContainer.buttonBar;

-		    Control[] allbuttons = buttons.getChildren();

-		    Composite compositeForButtons = (Composite) allbuttons[1];

-		    for (Control b : compositeForButtons.getChildren()) {

-		      if (b instanceof Button) {

-		        Button presentButton = (Button) b;

-		        if ("OK".equals(presentButton.getText())) {

-		          okButton = presentButton;

-		        }

-		      }

-		    }

-		    Button applyButton = getApplyButton();

-		    if ((okButton != null) && (applyButton != null)) {

-		      if (getErrorMessage() != null) {

-		    	  setValid(false);

-		        okButton.setEnabled(false);

-		        applyButton.setEnabled(false);

-		      }

-		      else {

-		    	  setValid(true);

-		        okButton.setEnabled(true);

-		        applyButton.setEnabled(true);

-		      }

-		    }

-		  }

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/util/SCAToAmaltheaPreferencePageConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/util/SCAToAmaltheaPreferencePageConstants.java
deleted file mode 100644
index 758eda1..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/util/SCAToAmaltheaPreferencePageConstants.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**

- ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

- */

-package org.eclipse.app4mc.sca2amalthea.ui.util;

-

-

-/**

- * This class defines constants which are used in SCAToAmaltheaPreferencePage implementation.

- */

-public final class SCAToAmaltheaPreferencePageConstants {

-

-  /**

-   * Private Constructor

-   */

-  private SCAToAmaltheaPreferencePageConstants() {

-    // Private constructor

-  }

-

-

-  /**

-   * Tool Tip message for the Output Directory Path field.

-   */

-  public static final String OUTPUT_PATH_DEFAULT_MESSAGE =

-      "By Default all the output files will be present in sca2amalthea directory which is present inside the (Project directory)/_bin/sca2amlthea";

-

-

-  /**

-   * Tool Tip message for the Task Information File field.

-   */

-  public static final String TASK_INFO_FILE_DEFAULT_MEAASGE = "By default all functions are treated as runnables";

-

-  /**

-   * Tool Tip message for the Build Command Log File field.

-   */

-  public static final String BUILD_LOG_FILE_DEFAULT_MESSAGE = "By default the c files from project directory are used";

-

-

-  /**

-   * Tool Tip message for the Header Directories field.

-   */

-  public static final String HEADER_TEXT_FILE_DEFAULT_MESSAGE =

-      "By default the header files from the project directory are used";

-

-  /**

-   * Tool Tip message for the Lock Function File field.

-   */

-  public static final String LOCK_FUNCTIONS_DEFAULT_MESSAGE = "By default an internal  lock function file will be used";

-

-  /**

-   * Configure optional fields check box text

-   */

-  public static final String CONFIGURE = "Configure optional fields";

-

-  /**

-   * Browse button text.

-   */

-  public static final String BROWSE = "Browse...";

-

-}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaExecutor.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaExecutor.java
new file mode 100644
index 0000000..29b8fa5
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaExecutor.java
@@ -0,0 +1,123 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.logging.manager.Logmanager;
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.util.IAmaltheaGenerator;
+import org.eclipse.app4mc.sca.ui.util.SCAToolsUIUtil;
+import org.eclipse.app4mc.sca.util.App4mcToolConstants;
+import org.eclipse.app4mc.sca2amalthea.llvm.headless.GenerateAmaltheaModelFromLLVM;
+import org.eclipse.app4mc.sca2amalthea.llvm.headless.SCA2AMALTHEAStarterProperties;
+import org.eclipse.app4mc.sca2amalthea.ui.Activator;
+import org.eclipse.app4mc.sca2amalthea.utils.UtilityForProcessHandling;
+import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.osgi.service.prefs.BackingStoreException;
+
+/**
+ * The sca2Amalthea execution starts with this class.
+ */
+public class SCA2AmaltheaExecutor implements IAmaltheaGenerator {
+
+  private Properties properties;
+
+
+  @Override
+  public IStatus execute(final IProgressMonitor iProgressMonitor, final Properties properties) {
+    IStatus status = Status.OK_STATUS;
+    this.properties = properties;
+    storeUserSelectionToProjectPreferences();
+    SCAProgressMonitor scaProgressMonitor = new SCAProgressMonitor(Job.getJobManager().currentJob());
+    Thread progressMonitorObserverThread = scaProgressMonitor.createInfiniteProgressMonitor(iProgressMonitor);
+    try {
+      progressMonitorObserverThread.start();
+      Display.getDefault().syncExec(new SCAPopup(App4mcToolConstants.SCA2AMALTHEA_TOOL_ID,
+          SCA2AmaltheaConstants.AMALTHEA_GENERATION__PROJECT_SIZE_MESSAGE, MessageDialog.INFORMATION));
+      SCA2AMALTHEAStarterProperties sca2AmaltheaStarterProperties = new SCA2AMALTHEAStarterProperties();
+      sca2AmaltheaStarterProperties
+          .setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+      sca2AmaltheaStarterProperties
+          .setOutPutPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.OUTPUT_DIRECTORY));
+      sca2AmaltheaStarterProperties.getLlvmStarterProperties()
+          .setTraverseAstFile(this.properties.getProperty(AmaltheaWizardPreferenceConstants.AST_PATH_KEY));
+      sca2AmaltheaStarterProperties
+          .setTaskListFile(this.properties.getProperty(AmaltheaWizardPreferenceConstants.TASK_SCHEDULING_FILE));
+      sca2AmaltheaStarterProperties
+          .setHDirFilePath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY));
+      sca2AmaltheaStarterProperties
+          .setBuildLogFile(this.properties.getProperty(AmaltheaWizardPreferenceConstants.BUILD_CMDS_LOG_FILE));
+      sca2AmaltheaStarterProperties
+          .setLockinfoFile(this.properties.getProperty(AmaltheaWizardPreferenceConstants.OS_LOCK_FILE));
+      sca2AmaltheaStarterProperties.setIsStructMemberEnabled(
+          Boolean.parseBoolean(this.properties.getProperty(AmaltheaWizardPreferenceConstants.ENABLE_STRUCT_MEMBER_KEY)));
+
+      GenerateAmaltheaModelFromLLVM generator = new GenerateAmaltheaModelFromLLVM(sca2AmaltheaStarterProperties);
+      SCA2AmaltheaTimer scaTimer = new SCA2AmaltheaTimer();
+      scaTimer.startTimer();
+      status = generator.run();
+      scaProgressMonitor.setGenerationDone(true);
+
+      if ((UtilityForProcessHandling.getCurrentRunningProcess().exitValue() != 0) &&
+          !UtilityForProcessHandling.isModelGenerationcancelled()) {
+        Display.getDefault().syncExec(new SCAPopup(App4mcToolConstants.SCA2AMALTHEA_TOOL_ID,
+            SCA2AmaltheaConstants.PARSING_ERROR, MessageDialog.INFORMATION));
+        return Status.CANCEL_STATUS;
+      }
+    }
+    catch (Exception e) {
+      Logmanager.getInstance().logException(this.getClass(), e, Activator.PLUGIN_ID);
+      if (progressMonitorObserverThread != null) {
+        waitForThread(progressMonitorObserverThread);
+      }
+      scaProgressMonitor.getSubMonitor().done();
+      return Status.CANCEL_STATUS;
+    }
+
+    waitForThread(progressMonitorObserverThread);
+    scaProgressMonitor.getSubMonitor().done();
+    UtilityForProcessHandling.setCurrentRunningProcess(null);
+    return status;
+  }
+
+  private void storeUserSelectionToProjectPreferences() {
+    Display.getDefault().syncExec(() -> {
+      IEclipsePreferences projectPreferences = SCAToolsUIUtil
+          .loadProjectScopePrefs(SCAToolsUIUtil.getCurrentProjectResource(), App4mcToolConstants.SCA2AMALTHEA_TOOL_ID);
+      try {
+        projectPreferences.clear();
+        for (Map.Entry<Object, Object> e : this.properties.entrySet()) {
+          projectPreferences.put(e.getKey().toString(), e.getValue().toString());
+        }
+        projectPreferences.flush();
+      }
+      catch (BackingStoreException e) {
+        Logmanager.getInstance().logException(this.getClass(), e, Activator.PLUGIN_ID);
+      }
+    });
+  }
+
+  private void waitForThread(final Thread thread) {
+    try {
+      if (thread != null) {
+        thread.join();
+      }
+    }
+    catch (InterruptedException e) {
+      Logmanager.getInstance().log(e.getMessage());
+    }
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaTimer.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaTimer.java
new file mode 100644
index 0000000..3ac7341
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaTimer.java
@@ -0,0 +1,70 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.eclipse.app4mc.sca.util.App4mcToolConstants;
+import org.eclipse.app4mc.sca2amalthea.utils.UtilityForProcessHandling;
+import org.eclipse.app4mc.sca2amalthea.utils.constants.SCA2AmaltheaConstants;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ *
+ */
+public class SCA2AmaltheaTimer {
+
+  class SCA2AmaltheaTimerTask extends TimerTask {
+
+    private final Timer timer;
+    private final Job eclipseJob;
+
+    public SCA2AmaltheaTimerTask(final Timer timerInstance, final Job eclipseJob) {
+      this.timer = timerInstance;
+      this.eclipseJob = eclipseJob;
+    }
+
+    @Override
+    public void run() {
+      if ((this.eclipseJob.getThread() != null) && this.eclipseJob.getThread().isAlive()) {
+        SCAPopup scaPopup = new SCAPopup(App4mcToolConstants.SCA2AMALTHEA_TOOL_ID,
+            SCA2AmaltheaConstants.AMALTHEA_GENERATION_TOO_LONG, MessageDialog.CONFIRM);
+        Display.getDefault().syncExec(scaPopup);
+        int confirmationStatus = scaPopup.getDialogStatus() ? 0 : 1;
+        if (confirmationStatus == 1) {
+          this.timer.cancel();
+          Process p = UtilityForProcessHandling.getCurrentRunningProcess();
+          if (p != null) {
+            p.destroyForcibly();
+            UtilityForProcessHandling.setModelGenerationcancelled(true);
+          }
+        }
+      }
+      else {
+        this.timer.cancel();
+      }
+    }
+  }
+
+  /**
+   * This method starts the timer.The timer is sceduled to run after every 40mins.Every time the timer runs it checks if
+   * the eclipse job is still alive. If so it pops up a confirmation dialog asking if the user wishes to continue. If
+   * the user wishes to continue the timer keeps running and keeps showing the popup after every 40 mins and if the user
+   * wishes to abort then it cancels the timer and kills the sca.exe process.If the eclipse job is not alive it cancels
+   * the timer.
+   */
+  public void startTimer() {
+    int timerDelay = 40 * 60 * 1000;
+    int timerPeriod = 40 * 60 * 1000;
+    Job eclipseJob = Job.getJobManager().currentJob();
+    Timer t = new Timer();
+    t.scheduleAtFixedRate(new SCA2AmaltheaTimerTask(t, eclipseJob), timerDelay, timerPeriod);
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidget.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidget.java
new file mode 100644
index 0000000..52a6f2c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidget.java
@@ -0,0 +1,287 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.util.AmaltheaWizardPreferenceConstants;
+import org.eclipse.app4mc.sca.ui.util.ButtonInfo;
+import org.eclipse.app4mc.sca.ui.util.ButtonType;
+import org.eclipse.app4mc.sca.ui.util.LabelListButtonCreator;
+import org.eclipse.app4mc.sca.ui.util.LabelTextButtonCreator;
+import org.eclipse.app4mc.sca.ui.util.WizardConstants;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.app4mc.sca2amalthea.ui.Activator;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+
+import com.google.common.base.Joiner;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Lists;
+
+/**
+ * This class is responsible to create UI controls for SCA2Amalthea widget.
+ */
+public class SCA2AmaltheaWidget extends Widget {
+
+  private LabelTextButtonCreator astPath;
+  private LabelTextButtonCreator buildCmmandlogPath;
+  private final Properties properties;
+  private Button generateStructMember;
+  private LabelListButtonCreator headerList;
+
+  /**
+   * @param parent Composite instance
+   * @param properties Properties instance
+   */
+  public SCA2AmaltheaWidget(final Composite parent, final Properties properties) {
+    this.properties = properties;
+    createComponent(parent);
+  }
+
+  /**
+   * The methods creates the UI elements using the SWT Widgets. The UI consists of a)Check-box for enabling struct
+   * members b)Path to LLVM Executable text box c)Header Directories d)Build cmd log file text box.
+   *
+   * @param parent Composite instance.
+   */
+  private void createComponent(final Composite parent) {
+    Composite compositeForCheckBoxes = new Composite(parent, SWT.NONE);
+    compositeForCheckBoxes.setLayout(new GridLayout(1, true));
+
+    this.generateStructMember = new Button(compositeForCheckBoxes, SWT.CHECK);
+    this.generateStructMember.setText(WizardConstants.GENERATE_STRUCT_MEMBER);
+    this.generateStructMember.setLayoutData(new GridData(SWT.CENTER, SWT.NONE, true, false));
+
+    Composite composite = new Composite(parent, SWT.NONE);
+    GridDataFactory.defaultsFor(composite).grab(true, false).span(3, 1).applyTo(composite);
+    composite.setLayout(new GridLayout(3, false));
+
+    this.astPath = new LabelTextButtonCreator(composite, WizardConstants.LLVM_PATH_TEXT, "ast_path",
+        WizardConstants.BROWSE, "ast_path_browse");
+    this.astPath.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+
+    this.buildCmmandlogPath = new LabelTextButtonCreator(composite, WizardConstants.BUILD_CMD_FILE, "build_cmd_log",
+        WizardConstants.BROWSE, "build_cmd_log_browse");
+    this.buildCmmandlogPath.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+
+    java.util.Set<ButtonInfo> buttonInfoList = new HashSet<ButtonInfo>();
+    ButtonInfo newButton = new ButtonInfo(WizardConstants.NEW_BUTTON, "new", ButtonType.BROWSE_FOLDER);
+    ButtonInfo removeButton = new ButtonInfo(WizardConstants.REMOVE_BUTTON, "remove", ButtonType.REMOVE);
+    buttonInfoList.add(newButton);
+    buttonInfoList.add(removeButton);
+
+    this.headerList = new LabelListButtonCreator(composite, WizardConstants.HEADER_DIRECTORIES,
+        "header_directories_list", buttonInfoList);
+    this.headerList.setProjectPath(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH));
+
+    addListeners();
+    initialiseOptions();
+  }
+
+
+  /**
+   * This method returns the properties instance.
+   */
+  @Override
+  public Properties getOptions() {
+    return this.properties;
+  }
+
+
+  /**
+   * This method basically validates the values in the UI elements and set appropriate error message.
+   */
+  @Override
+  public IStatus validate() {
+    if (this.astPath.getTextField().getText().isEmpty()) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, WizardConstants.LLVM_PATH_EMPTY_ERROR_MESSAGE);
+    }
+    else if (!this.astPath.getTextField().getText().isEmpty() &&
+        !new File(this.astPath.getTextField().getText()).exists() &&
+        !new File(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH) +
+            this.astPath.getTextField().getText()).exists()) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, WizardConstants.LLVM_PATH_ERROR_MESSAGE);
+    }
+    else if(new File(this.astPath.getTextField().getText()).isFile()||new File(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH) +
+            this.astPath.getTextField().getText()).isFile()) {
+    	return new Status(IStatus.ERROR,Activator.PLUGIN_ID,WizardConstants.LLVM_PATH_DIR_MESSAGE);
+    }
+    else if (!this.buildCmmandlogPath.getTextField().getText().isEmpty() &&
+        !new File(this.buildCmmandlogPath.getTextField().getText()).exists() &&
+        !new File(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH) +
+            this.buildCmmandlogPath.getTextField().getText()).exists()) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, WizardConstants.BUILD_CMD_FILE_ERROR_MESSAGE);
+    }
+    else if (!this.buildCmmandlogPath.getTextField().getText().isEmpty() &&
+        (!(this.buildCmmandlogPath.getTextField().getText().endsWith(".log")))) {
+      return new Status(IStatus.ERROR, Activator.PLUGIN_ID, WizardConstants.BUILD_CMD_FILE_EXTENSION_ERROR_MESSAGE);
+    }
+    else if (this.headerList.getListBox().getItemCount() > 0) {
+      for (String hDir : this.headerList.getListBox().getItems()) {
+        if (!new File(hDir).exists() &&
+            !new File(this.properties.getProperty(AmaltheaWizardPreferenceConstants.PROJECT_PATH) + hDir).exists()) {
+          return new Status(IStatus.ERROR, Activator.PLUGIN_ID, WizardConstants.HEADER_LIST_ERROR_MESSAGE);
+        }
+      }
+    }
+    return Status.OK_STATUS;
+
+  }
+
+
+  /**
+   * This method adds the listeners to the UI elemets of this widget.
+   */
+  private void addListeners() {
+    this.generateStructMember.addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        SCA2AmaltheaWidget.this.properties.setProperty(AmaltheaWizardPreferenceConstants.ENABLE_STRUCT_MEMBER_KEY,
+            Boolean.toString(SCA2AmaltheaWidget.this.generateStructMember.getSelection()));
+      }
+    });
+
+    this.astPath.getButton().addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
+        dialog.setFilterPath(SCA2AmaltheaWidget.this.astPath.provideDialogLocation());
+        String ast_dir_Path = dialog.open();
+        if (ast_dir_Path != null) {
+          SCA2AmaltheaWidget.this.astPath.setFilePath(ast_dir_Path);
+        }
+      }
+    });
+
+    this.astPath.getTextField().addModifyListener(event -> {
+      this.properties.setProperty(AmaltheaWizardPreferenceConstants.AST_PATH_KEY,
+          this.astPath.getAbsoluteFilePath());
+      setChanged();
+      notifyObservers();
+
+    });
+
+    this.buildCmmandlogPath.getButton().addSelectionListener(new SelectionAdapter() {
+
+      @Override
+      public void widgetSelected(final SelectionEvent e) {
+        FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell());
+        dialog.setFilterPath(SCA2AmaltheaWidget.this.buildCmmandlogPath.provideDialogLocation());
+        String build_cmd_file_path = dialog.open();
+        if (build_cmd_file_path != null) {
+          SCA2AmaltheaWidget.this.buildCmmandlogPath.setFilePath(build_cmd_file_path);
+        }
+      }
+    });
+
+    this.buildCmmandlogPath.getTextField().addModifyListener(event -> {
+      this.properties.setProperty(AmaltheaWizardPreferenceConstants.BUILD_CMDS_LOG_FILE,
+          this.buildCmmandlogPath.getAbsoluteFilePath());
+      setChanged();
+      notifyObservers();
+
+    });
+
+    for (Button b : this.headerList.getButtonList()) {
+      ButtonInfo buttonInfo = this.headerList.getButtonInfoMap().get(b.getText());
+      if (buttonInfo.getButtonType().equals(ButtonType.BROWSE_FILE)) {
+        b.addSelectionListener(new SelectionAdapter() {
+
+          @Override
+          public void widgetSelected(final SelectionEvent e) {
+            FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell());
+            String filePath = dialog.open();
+            if (filePath != null) {
+              SCA2AmaltheaWidget.this.headerList.setFilePath(filePath);
+            }
+            setChanged();
+            notifyObservers();
+          }
+        });
+      }
+      else if (buttonInfo.getButtonType().equals(ButtonType.BROWSE_FOLDER)) {
+        b.addSelectionListener(new SelectionAdapter() {
+
+          @Override
+          public void widgetSelected(final SelectionEvent e) {
+            DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
+            String directoryPath = dialog.open();
+            if (directoryPath != null) {
+              SCA2AmaltheaWidget.this.headerList.setFilePath(directoryPath);
+            }
+            setChanged();
+            notifyObservers();
+            SCA2AmaltheaWidget.this.properties.setProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY,
+                Joiner.on(File.pathSeparator).join(getHeaderDirList()));
+          }
+        });
+      }
+      else if (buttonInfo.getButtonType().equals(ButtonType.REMOVE)) {
+        b.addSelectionListener(new SelectionAdapter() {
+
+          @Override
+          public void widgetSelected(final SelectionEvent e) {
+            SCA2AmaltheaWidget.this.headerList.getListBox()
+                .remove(SCA2AmaltheaWidget.this.headerList.getListBox().getSelectionIndices());
+            SCA2AmaltheaWidget.this.properties.setProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY,
+                Joiner.on(File.pathSeparator).join(getHeaderDirList()));
+          }
+        });
+      }
+    }
+  }
+
+  /**
+   * @return the headerDirList
+   */
+  public java.util.List<String> getHeaderDirList() {
+    java.util.List<String> list = Lists.newArrayList();
+    for (int i = 0; i < this.headerList.getListBox().getItemCount(); i++) {
+      list.add(this.headerList.getListBox().getItem(i));
+    }
+    return list;
+  }
+
+
+  /**
+   * This method initializes the UI elements to the values provided in the properties instance.
+   */
+  private void initialiseOptions() {
+    this.generateStructMember.setSelection(
+        Boolean.parseBoolean(this.properties.getProperty(AmaltheaWizardPreferenceConstants.ENABLE_STRUCT_MEMBER_KEY)));
+    if (this.properties.getProperty(AmaltheaWizardPreferenceConstants.AST_PATH_KEY) != null) {
+      this.astPath.getTextField()
+          .setText(this.properties.getProperty(AmaltheaWizardPreferenceConstants.AST_PATH_KEY));
+    }
+    if ((this.properties.getProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY) != null) &&
+        !this.properties.getProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY).isEmpty()) {
+      this.headerList.getListBox()
+          .setItems(Splitter.on(File.pathSeparator)
+              .splitToList(this.properties.getProperty(AmaltheaWizardPreferenceConstants.HDIR_LIST_KEY))
+              .toArray(new String[] {}));
+    }
+    if (this.properties.getProperty(AmaltheaWizardPreferenceConstants.BLOG_KEY) != null) {
+      this.buildCmmandlogPath.getTextField().setText(this.properties.getProperty(AmaltheaWizardPreferenceConstants.BLOG_KEY));
+    }
+
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidgetBuilder.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidgetBuilder.java
new file mode 100644
index 0000000..07a3a3a
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCA2AmaltheaWidgetBuilder.java
@@ -0,0 +1,38 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.sca.ui.widget.builder.WidgetBuilder;
+import org.eclipse.app4mc.sca.ui.widgets.Widget;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This is a Widget Builder class for @SCA2AmaltheaWidget. This class internally uses SCA2AmaltheaWiget to create the UI
+ * elements.
+ */
+public class SCA2AmaltheaWidgetBuilder implements WidgetBuilder {
+
+  private final Properties properties;
+
+  /**
+   * @param properties Properties instance.
+   */
+  public SCA2AmaltheaWidgetBuilder(final Properties properties) {
+    this.properties = properties;
+  }
+
+  /**
+   * Builds the SCA2Amalthea Widget.
+   */
+  @Override
+  public Widget buildWidget(final Composite parent) {
+    return new SCA2AmaltheaWidget(parent, this.properties);
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAPopup.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAPopup.java
new file mode 100644
index 0000000..5d4a0a5
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAPopup.java
@@ -0,0 +1,52 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import org.eclipse.app4mc.sca.ui.messagedialog.App4mcMessgeDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * This class to be used by SCA2Amalthea to show any kind of message dialog.
+ */
+public class SCAPopup implements Runnable {
+
+  private Shell currentShell;
+  private final String title;
+  private final String message;
+  private final int dialogType;
+  private boolean dialogStatus;
+
+  /**
+   * @param title the title to be displayed in the message dialog
+   * @param message the message to be displayed in the message dialog.
+   * @param dialogType the type of dailog Eg information,confirmation etc
+   */
+  public SCAPopup(final String title, final String message, final int dialogType) {
+    Display.getDefault().syncExec(() -> {
+      SCAPopup.this.currentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+    });
+    this.title = title;
+    this.message = message;
+    this.dialogType = dialogType;
+  }
+
+  @Override
+  public void run() {
+    App4mcMessgeDialog confirmationMessageDialog =
+        new App4mcMessgeDialog(this.dialogType, SCAPopup.this.currentShell, this.title, null, this.message);
+    this.dialogStatus = (confirmationMessageDialog.open() == 0);
+  }
+
+  /**
+   * @return the status returning if the dialog was open or not.
+   */
+  public boolean getDialogStatus() {
+    return this.dialogStatus;
+  }
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAProgressMonitor.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAProgressMonitor.java
new file mode 100644
index 0000000..adc23d7
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.ui/src/org/eclipse/app4mc/sca2amalthea/ui/wizard/SCAProgressMonitor.java
@@ -0,0 +1,145 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.ui.wizard;
+
+import org.eclipse.app4mc.sca.logging.manager.Logmanager;
+import org.eclipse.app4mc.sca2amalthea.utils.UtilityForProcessHandling;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.jobs.Job;
+
+/**
+ * This class is responsible for showing the progress monitor for sca2Amalthea.
+ */
+public class SCAProgressMonitor {
+
+  private SubMonitor subMonitor;
+
+  private boolean isGenerationDone = false;
+
+  private final Object mutex = new Object();
+
+  private final Job eclipseJob;
+
+  private static final int TOTAL_PROBABLE_EXECUTION_TIME = 600;
+
+  /**
+   * @param eclipseJob Eclipe job instance
+   */
+  public SCAProgressMonitor(final Job eclipseJob) {
+    this.eclipseJob = eclipseJob;
+  }
+
+
+  class InfiniteProgressMonitorObserver extends Thread {
+
+    /**
+     * @param subMonitor monitor which will be observed
+     */
+    public InfiniteProgressMonitorObserver(final SubMonitor subMonitor) {
+      super();
+      SCAProgressMonitor.this.subMonitor = subMonitor;
+    }
+
+    @Override
+    public void run() {
+      runLogarithmicWaitOnProgressMonitor();
+      terminateMonitor();
+    }
+
+    /**
+     * @param subMonitor
+     * @param jobName
+     */
+    private void runLogarithmicWaitOnProgressMonitor() {
+      boolean isProcessCompleted = false;
+      int advancementCounter = 0;
+
+      while (!isProcessCompleted) {
+        if (SCAProgressMonitor.this.subMonitor.isCanceled()) {
+          synchronized (SCAProgressMonitor.this.mutex) {
+            SCAProgressMonitor.this.isGenerationDone = true;
+          }
+          Process p = UtilityForProcessHandling.getCurrentRunningProcess();
+          p.destroyForcibly();
+          UtilityForProcessHandling.setModelGenerationcancelled(true);
+
+          SCAProgressMonitor.this.eclipseJob.setName("Cancelling the model generation job");
+        }
+        try {
+          SCAProgressMonitor.this.subMonitor.worked(1);
+          advancementCounter++;
+          if ((advancementCounter % (TOTAL_PROBABLE_EXECUTION_TIME / 2)) == 0) { // half time
+            advancementCounter = 1;
+            SCAProgressMonitor.this.subMonitor.setWorkRemaining(TOTAL_PROBABLE_EXECUTION_TIME);
+          }
+          Thread.sleep(1000);
+        }
+        catch (InterruptedException e) {
+          Logmanager.getInstance().log(e.getMessage());
+          Thread.currentThread().interrupt();
+        }
+        synchronized (SCAProgressMonitor.this.mutex) {
+          isProcessCompleted = SCAProgressMonitor.this.isGenerationDone;
+        }
+      }
+    }
+
+    /**
+     * @param subMonitor
+     * @param jobName
+     */
+    private void terminateMonitor() {
+      int numberOfSecondUntilEnd = 3;
+      SCAProgressMonitor.this.subMonitor.setWorkRemaining(numberOfSecondUntilEnd);
+      while (numberOfSecondUntilEnd > 0) {
+        try {
+          SCAProgressMonitor.this.subMonitor.worked(1);
+          Thread.sleep(1000);
+        }
+        catch (InterruptedException e) {
+          Logmanager.getInstance().log(e.getMessage());
+          Thread.currentThread().interrupt();
+        }
+        --numberOfSecondUntilEnd;
+      }
+      UtilityForProcessHandling.setModelGenerationcancelled(false);
+    }
+  }
+
+  /**
+   * @param monitor Iprogress monitor
+   * @return Thread instance
+   */
+  public Thread createInfiniteProgressMonitor(final IProgressMonitor monitor) {
+    this.subMonitor = SubMonitor.convert(monitor, TOTAL_PROBABLE_EXECUTION_TIME);
+    return new InfiniteProgressMonitorObserver(this.subMonitor);
+  }
+
+  /**
+   * @return SubMonitor instance
+   */
+  public SubMonitor getSubMonitor() {
+    return this.subMonitor;
+  }
+
+  /**
+   * @return the isGenerationDone
+   */
+  public boolean isGenerationDone() {
+    return this.isGenerationDone;
+  }
+
+
+  /**
+   * @param isGenerationDone the isGenerationDone to set
+   */
+  public void setGenerationDone(final boolean isGenerationDone) {
+    synchronized (SCAProgressMonitor.this.mutex) {
+      this.isGenerationDone = isGenerationDone;
+    }
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/.gitignore
deleted file mode 100644
index 24d6437..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/META-INF/MANIFEST.MF
index 7a85084..9a9359e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/META-INF/MANIFEST.MF
@@ -1,14 +1,14 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: Utils

-Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.utils

-Bundle-Version: 1.0.0.qualifier

-Bundle-Activator: org.eclipse.app4mc.sca2amalthea.utils.Activator

-Bundle-Vendor: Eclipse.org

+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SCA2AMALTHEA Utils
+Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.utils
+Bundle-Version: 0.9.8.qualifier
+Bundle-Activator: org.eclipse.app4mc.sca2amalthea.utils.Activator
+Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,

- org.eclipse.core.runtime

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

-Bundle-ActivationPolicy: lazy

-Export-Package: org.eclipse.app4mc.sca2amalthea.utils,

- org.eclipse.app4mc.sca2amalthea.utils.constants

-

+ org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.app4mc.sca2amalthea.utils,
+ org.eclipse.app4mc.sca2amalthea.utils.constants
+
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/bin/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/bin/.gitignore
deleted file mode 100644
index cf1db2e..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/pom.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/pom.xml
deleted file mode 100644
index 673b445..0000000
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

-  <modelVersion>4.0.0</modelVersion>

-  <parent>

-    <groupId>sca2amalthea</groupId>

-    <artifactId>org.eclipse.app4mc.sca2amalthea.build</artifactId>

-    <version>1.0.0.qualifier</version>

-    <relativePath>../../build/org.eclipse.app4mc.sca2amalthea.build</relativePath>

-  </parent>

-  <groupId>sca2amalthea</groupId>

-  <artifactId>org.eclipse.app4mc.sca2amalthea.utils</artifactId>

-  <packaging>eclipse-plugin</packaging>

-

-	<build>

-		<sourceDirectory>src</sourceDirectory>

-		<resources>

-			<resource>

-				<directory>xtend-gen</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-			<resource>

-				<directory>src</directory>

-				<excludes>

-					<exclude>**/*.java</exclude>

-				</excludes>

-			</resource>

-		</resources>

-		<plugins>

-			<plugin>

-				<artifactId>maven-clean-plugin</artifactId>

-				<version>2.4.1</version>

-				<configuration>

-					<filesets>

-						<fileset>

-							<directory>xtend-gen</directory>

-							<includes>

-								<include>**</include>

-							</includes>

-						</fileset>

-					</filesets>

-				</configuration>

-			</plugin>

-			<plugin>

-				<groupId>org.codehaus.mojo</groupId>

-				<artifactId>build-helper-maven-plugin</artifactId>

-				<version>1.7</version>

-				<executions>

-					<execution>

-						<id>add-source</id>

-						<phase>generate-sources</phase>

-						<goals>

-							<goal>add-source</goal>

-						</goals>

-						<configuration>

-							<sources>

-								<source>xtend-gen</source>

-							</sources>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-			<plugin>

-				<groupId>org.eclipse.xtend</groupId>

-				<artifactId>xtend-maven-plugin</artifactId>

-				<version>2.7.3</version>

-				<executions>

-					<execution>

-						<goals>

-							<goal>compile</goal>

-						</goals>

-						<configuration>

-							<outputDirectory>xtend-gen</outputDirectory>

-						</configuration>

-					</execution>

-				</executions>

-			</plugin>

-		</plugins>

-	</build>

-</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/Activator.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/Activator.java
index 70105fc..aad6c55 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/Activator.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/Activator.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/UtilityForProcessHandling.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/UtilityForProcessHandling.java
index 6436708..6ecbdc0 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/UtilityForProcessHandling.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/UtilityForProcessHandling.java
@@ -1,6 +1,6 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

  * 

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/constants/SCA2AmaltheaConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/constants/SCA2AmaltheaConstants.java
index c0ee754..0dcb47e 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/constants/SCA2AmaltheaConstants.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.utils/src/org/eclipse/app4mc/sca2amalthea/utils/constants/SCA2AmaltheaConstants.java
@@ -1,98 +1,48 @@
 /**

  ********************************************************************************

- * Copyright (c) 2017 Robert Bosch GmbH and others.

- * 

+ * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

+ *

  * This program and the accompanying materials are made

  * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

+ * which is available at https://www.eclipse.org/legal/epl-2.0

+ *

  * SPDX-License-Identifier: EPL-2.0

- * 

+ *

  * Contributors:

  *     Robert Bosch GmbH - initial API and implementation

  ********************************************************************************

  */

 package org.eclipse.app4mc.sca2amalthea.utils.constants;

 

-import org.eclipse.app4mc.sca2amalthea.utils.Activator;

-import org.eclipse.jface.preference.IPreferenceStore;

 

 /**

  * Constants for all the SCA2Amalthea operations

  */

 public final class SCA2AmaltheaConstants {

+    /**

+     * Ini Task cycle constant

+     */

+    public static final String INI_TASK_CYCLE = "ONCE";

 

-  /**

-   * Added private constructor to hide the implicit public one

-   */

-  private SCA2AmaltheaConstants() {

-    // empty constructor

-  }

+    /**

+     * Parsing Error constant

+     */

+    public static final String PARSING_ERROR = "There was some error while parsing c files or when generating the AMALTHEA model.";

 

-  /**

-  *

-  */

-  public static final String TASK_INFO = "taskInfo";

-  /**

-  *

-  */

-  public static final String OUTPUT_PATH = "outputPath";

-  /**

-  *

-  */

-  public static final String AST_PATH = "astPath";

-  /**

-  *

-  */

-  public static final String LOCK_INFO = "lockInfo";

-  /**

-  *

-  */

-  public static final String BLOG = "blog";

-  /**

-  *

-  */

-  public static final String HDIR_LIST = "hdirList";

+    /**

+     * Amalthea generation taking too long message.

+     */

+    public static final String AMALTHEA_GENERATION_TOO_LONG = "The amalthea model generation job is still running.It might take some more time. Do you wish to continue? Press Ok to continue or cancel to abort";

 

+    /**

+     * Amalthea generation time depends on the size of the Project error.

+     */

+    public static final String AMALTHEA_GENERATION__PROJECT_SIZE_MESSAGE = "The time required to generate the Amalthea model depends on the size of the Project.";

 

-  /**

-   *

-   */

-  public static final String DEBUG_MODE = "debugMode";

-

-  /**

-   * Preference name for the "Disable struct member" option

-   */

-  public static final String ENABLE_STRUCT_MEMBER = "enableStructMember";

-

-  /**

-   * Preference name for "Component model based on fc bc"

-   */

-  public static final String COMPONENT_MODEL_FC_BC = "componentModelFcBc";

-

-

-  /**

-   * Preference name for "Configure optional fields" option

-   */

-  public static final String ENABLE_OPTIONAL_FIELDS = "enableOptionalFields";

-

-  /**

-   *

-   */

-  public static final String OPT_FILE_PATH = "optFile";

-

-  /**

-   *

-   */

-  public static final String INI_TASK_CYCLE = "ONCE";

-

-  /**

-   * This method returns the preference store of the sca2Amalthea component.

-   *

-   * @return IPreferenceStore preference store

-   */

-  public static IPreferenceStore getPreferenceStore() {

-    return Activator.getDefault().getPreferenceStore();

-  }

-

+    /**

+     * Added private constructor to hide the implicit public one

+     */

+    private SCA2AmaltheaConstants() {

+        // empty constructor

+    }

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/pom.tycho b/eclipse-tools/sca2amalthea/plugins/pom.tycho
new file mode 100644
index 0000000..39f0a77
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/pom.tycho
@@ -0,0 +1,15 @@
+org.eclipse.app4mc.sca.amalthea.loader
+org.eclipse.app4mc.sca.amalthea.model.utils
+org.eclipse.app4mc.sca.logging
+org.eclipse.app4mc.sca.scheduling.loader
+org.eclipse.app4mc.sca.ui
+org.eclipse.app4mc.sca.util
+org.eclipse.app4mc.sca2amalthea.docu
+org.eclipse.app4mc.sca2amalthea.exporter
+org.eclipse.app4mc.sca2amalthea.ir
+org.eclipse.app4mc.sca2amalthea.ir.loader
+org.eclipse.app4mc.sca2amalthea.llvm
+org.eclipse.app4mc.sca2amalthea.scairmodelenricher
+org.eclipse.app4mc.sca2amalthea.serialization
+org.eclipse.app4mc.sca2amalthea.ui
+org.eclipse.app4mc.sca2amalthea.utils
diff --git a/eclipse-tools/sca2amalthea/pom.xml b/eclipse-tools/sca2amalthea/pom.xml
new file mode 100644
index 0000000..dc44aab
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/pom.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>sca2amalthea</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.9.8-SNAPSHOT</version>
+   
+  <packaging>pom</packaging>
+  
+  <name>SCA2AMALTHEA</name>
+ 
+  <properties>
+    <tycho.version>1.6.0</tycho.version>
+    
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+ 
+	<pluginRepositories>
+		<pluginRepository>
+			<id>cbi</id>
+			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</pluginRepository>
+	</pluginRepositories>
+
+  <modules>
+  		<module>plugins</module>
+		<module>features</module>
+		<module>releng</module>
+  </modules>
+  
+  	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<extensions>true</extensions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-compiler-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<verbose>true</verbose>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<environments>
+						<environment>
+							<os>linux</os>
+							<ws>gtk</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>win32</os>
+							<ws>win32</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>macosx</os>
+							<ws>cocoa</ws>
+							<arch>x86_64</arch>
+						</environment>
+					</environments>
+
+					<target>
+						<artifact>
+							<groupId>sca2amalthea</groupId>
+							<artifactId>org.eclipse.app4mc.sca2amalthea.target</artifactId>
+							<version>0.9.8-SNAPSHOT</version>
+						</artifact>
+					</target>
+					<targetDefinitionIncludeSource>honor</targetDefinitionIncludeSource>
+				</configuration>
+			</plugin>
+			
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<!-- argLine>${tycho.testArgLine}</argLine> -->
+					<forkMode>never</forkMode>
+					<includes>
+						<include>**/*Test.*</include>
+					</includes>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<version>${tycho.version}</version>
+
+				<executions>
+					<execution>
+						<id>plugin-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>sign</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>1.1.3</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<phase>package</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>  
+</project>
diff --git a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/.project
similarity index 76%
copy from eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
copy to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/.project
index e5155e4..74b6dfb 100644
--- a/eclipse-tools/model-transformation/build/org.eclipse.app4mc.transformation.build/.project
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.app4mc.transformation.build</name>
+	<name>org.eclipse.app4mc.sca2amalthea.target</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/about.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/about.html
similarity index 100%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/about.html
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/about.html
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/epl-2.0.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/epl-2.0.html
similarity index 100%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/epl-2.0.html
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/epl-2.0.html
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target
new file mode 100644
index 0000000..c5bc435
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="SCA2AMALTHEA Target" sequenceNumber="1589785674">
+  <locations>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
+      <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
+      <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
+      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.1.201812070911"/>
+      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
+      <unit id="org.eclipse.xtext.runtime.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.sdk.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.xbase.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
+      <unit id="org.eclipse.xtend.sdk.feature.group" version="2.20.0.v20191202-1256"/>
+      <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
+      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
+      <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
+      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
+      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
+      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
+      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
+      <unit id="javax.xml" version="1.3.4.v201005080400"/>
+      <unit id="org.jdom" version="1.1.1.v201101151400"/>
+      <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
+      <unit id="com.google.inject" version="3.0.0.v201605172100"/>
+      <repository location="http://download.eclipse.org/releases/2019-12"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="0.9.8.202004301410"/>
+      <repository location="http://download.eclipse.org/app4mc/updatesites/releases/0.9.8"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
+      <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sphinx.sdk.feature.group" version="0.11.2.201802230805"/>
+      <repository location="http://download.eclipse.org/sphinx/updates/0.11.x"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+      <repository location="http://download.eclipse.org/cbi/updates/license"/>
+    </location>
+  </locations>
+</target>
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd
new file mode 100644
index 0000000..d4ec409
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd
@@ -0,0 +1,46 @@
+target "SCA2AMALTHEA Target"
+
+with source allEnvironments
+
+location "http://download.eclipse.org/releases/2019-12" {
+	org.eclipse.sdk.ide
+	org.eclipse.emf.ecore.xcore.lib.feature.group
+	org.eclipse.emf.sdk.feature.group
+	org.eclipse.emf.transaction.feature.group
+	org.eclipse.emf.validation.feature.group
+	org.eclipse.emf.workspace.feature.group
+	org.eclipse.xtext.runtime.feature.group
+	org.eclipse.xtext.sdk.feature.group
+	org.eclipse.xtext.xbase.feature.group
+	org.eclipse.xtext.xbase.lib.feature.group
+	org.eclipse.xtend.sdk.feature.group
+	org.eclipse.xpand.sdk.feature.group
+	org.apache.commons.cli
+	org.apache.commons.lang
+	org.apache.log4j
+	org.apache.xerces
+	org.apache.xalan
+	org.apache.xml.resolver
+	org.apache.xml.serializer
+	javax.xml
+	org.jdom
+	com.google.guava
+	com.google.inject
+}
+
+location "http://download.eclipse.org/app4mc/updatesites/releases/0.9.8" {
+	org.eclipse.app4mc.platform.sdk.feature.group
+}
+
+location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" {
+	org.apache.commons.math
+	org.apache.commons.math3
+}
+
+location "http://download.eclipse.org/sphinx/updates/0.11.x" {
+	org.eclipse.sphinx.sdk.feature.group
+}
+
+location "http://download.eclipse.org/cbi/updates/license" {
+	org.eclipse.license.feature.group
+}
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/.project
similarity index 99%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/.project
index 7a354e4..71539b5 100644
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.app4mc.sca2amalthea.updatesite</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.UpdateSiteBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.UpdateSiteNature</nature>

-	</natures>

-</projectDescription>

+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.sca2amalthea.updatesite</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.UpdateSiteBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.UpdateSiteNature</nature>
+	</natures>
+</projectDescription>
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/about.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/about.html
similarity index 100%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/about.html
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/about.html
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml
new file mode 100644
index 0000000..5906998
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature id="org.eclipse.app4mc.sca2amalthea.feature">
+      <category name="SCA2AMALTHEA"/>
+   </feature>
+   <feature id="org.eclipse.app4mc.sca2amalthea.feature.sdk">
+      <category name="SCA2AMALTHEA"/>
+   </feature>
+   <category-def name="SCA2AMALTHEA" label="SCA2AMALTHEA"/>
+</site>
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/epl-2.0.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/epl-2.0.html
similarity index 100%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/epl-2.0.html
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/epl-2.0.html
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
similarity index 99%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
index 485c676..e96fd10 100644
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
@@ -1,60 +1,60 @@
-<html>

-<head>

-<title>org.eclipse.app4mc.sca2amalthea.updatesite</title>

-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

-<style>@import url("web/site.css");</style>

-<script type="text/javascript">

-	var returnval = 0;

-	var stylesheet, xmlFile, cache, doc;

-	function init(){

-		// NSCP 7.1+ / Mozilla 1.4.1+ / Safari

-		// Use the standard DOM Level 2 technique, if it is supported

-		if (document.implementation && document.implementation.createDocument) {

-			xmlFile = document.implementation.createDocument("", "", null);

-			stylesheet = document.implementation.createDocument("", "", null);

-			if (xmlFile.load){

-				xmlFile.load("site.xml");

-				stylesheet.load("web/site.xsl");

-			} else {

-				alert("Document could not be loaded by browser.");

-			}

-			xmlFile.addEventListener("load", transform, false);

-			stylesheet.addEventListener("load", transform, false);

-		}

-		//IE 6.0+ solution

-		else if (window.ActiveXObject) {

-			xmlFile = new ActiveXObject("msxml2.DOMDocument.3.0");

-			xmlFile.async = false;

-			xmlFile.load("site.xml");

-			stylesheet = new ActiveXObject("msxml2.FreeThreadedDOMDocument.3.0");

-			stylesheet.async = false;

-			stylesheet.load("web/site.xsl");

-			cache = new ActiveXObject("msxml2.XSLTemplate.3.0");

-			cache.stylesheet = stylesheet;

-			transformData();

-		}

-	}

-	// separate transformation function for IE 6.0+

-	function transformData(){

-		var processor = cache.createProcessor();

-		processor.input = xmlFile;

-		processor.transform();

-		data.innerHTML = processor.output;

-	}

-	// separate transformation function for NSCP 7.1+ and Mozilla 1.4.1+ 

-	function transform(){

-		returnval+=1;

-		if (returnval==2){

-			var processor = new XSLTProcessor();

-			processor.importStylesheet(stylesheet); 

-			doc = processor.transformToDocument(xmlFile);

-			document.getElementById("data").innerHTML = doc.documentElement.innerHTML;

-		}

-	}

-</script>

-</head>

-<body onload="init();">

-<!--[insert static HTML here]-->

-<div id="data"><!-- this is where the transformed data goes --></div>

-</body>

-</html>

+<html>
+<head>
+<title>org.eclipse.app4mc.sca2amalthea.updatesite</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<style>@import url("web/site.css");</style>
+<script type="text/javascript">
+	var returnval = 0;
+	var stylesheet, xmlFile, cache, doc;
+	function init(){
+		// NSCP 7.1+ / Mozilla 1.4.1+ / Safari
+		// Use the standard DOM Level 2 technique, if it is supported
+		if (document.implementation && document.implementation.createDocument) {
+			xmlFile = document.implementation.createDocument("", "", null);
+			stylesheet = document.implementation.createDocument("", "", null);
+			if (xmlFile.load){
+				xmlFile.load("site.xml");
+				stylesheet.load("web/site.xsl");
+			} else {
+				alert("Document could not be loaded by browser.");
+			}
+			xmlFile.addEventListener("load", transform, false);
+			stylesheet.addEventListener("load", transform, false);
+		}
+		//IE 6.0+ solution
+		else if (window.ActiveXObject) {
+			xmlFile = new ActiveXObject("msxml2.DOMDocument.3.0");
+			xmlFile.async = false;
+			xmlFile.load("site.xml");
+			stylesheet = new ActiveXObject("msxml2.FreeThreadedDOMDocument.3.0");
+			stylesheet.async = false;
+			stylesheet.load("web/site.xsl");
+			cache = new ActiveXObject("msxml2.XSLTemplate.3.0");
+			cache.stylesheet = stylesheet;
+			transformData();
+		}
+	}
+	// separate transformation function for IE 6.0+
+	function transformData(){
+		var processor = cache.createProcessor();
+		processor.input = xmlFile;
+		processor.transform();
+		data.innerHTML = processor.output;
+	}
+	// separate transformation function for NSCP 7.1+ and Mozilla 1.4.1+ 
+	function transform(){
+		returnval+=1;
+		if (returnval==2){
+			var processor = new XSLTProcessor();
+			processor.importStylesheet(stylesheet); 
+			doc = processor.transformToDocument(xmlFile);
+			document.getElementById("data").innerHTML = doc.documentElement.innerHTML;
+		}
+	}
+</script>
+</head>
+<body onload="init();">
+<!--[insert static HTML here]-->
+<div id="data"><!-- this is where the transformed data goes --></div>
+</body>
+</html>
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml
new file mode 100644
index 0000000..afa8fa1
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>org.eclipse.app4mc.sca2amalthea.updatesite</artifactId>
+
+  <packaging>eclipse-repository</packaging>
+
+  <parent>
+  	<groupId>sca2amalthea</groupId>
+  	<artifactId>parent</artifactId>
+	<version>0.9.8-SNAPSHOT</version>
+  	<relativePath>../../pom.xml</relativePath>
+  </parent>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/siteTemplate/index.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html
similarity index 100%
copy from eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/siteTemplate/index.html
copy to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
similarity index 99%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
index 425134e..62c6f9f 100644
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
@@ -1,12 +1,12 @@
-<STYLE type="text/css">

-td.spacer {padding-bottom: 10px; padding-top: 10px;}

-.title { font-family: sans-serif; color: #99AACC;}

-.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000;  }

-.sub-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white;}

-.log-text {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 8pt; color:black;}

-.big-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; border-top:10px solid white;}

-.light-row {background:#FFFFFF}

-.dark-row {background:#EEEEFF}

-.header {background:#99AADD}

-#indent {word-wrap : break-word;width :300px;text-indent:10px;}

-</STYLE>

+<STYLE type="text/css">
+td.spacer {padding-bottom: 10px; padding-top: 10px;}
+.title { font-family: sans-serif; color: #99AACC;}
+.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000;  }
+.sub-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white;}
+.log-text {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 8pt; color:black;}
+.big-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; border-top:10px solid white;}
+.light-row {background:#FFFFFF}
+.dark-row {background:#EEEEFF}
+.header {background:#99AADD}
+#indent {word-wrap : break-word;width :300px;text-indent:10px;}
+</STYLE>
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
similarity index 99%
rename from eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
rename to eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
index 4a2d095..5582b74 100644
--- a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
@@ -1,214 +1,214 @@
-<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">

-<xsl:output method="html" encoding="UTF-8"/>

-<xsl:key name="cat" match="category" use="@name"/>

-<xsl:template match="/">

-<xsl:for-each select="site">

-	<html>

-	<head>

-	<title>org.eclipse.app4mc.sca2amalthea.updatesite</title>

-	<style>@import url("web/site.css");</style>

-	</head>

-	<body>

-	<h1 class="title">org.eclipse.app4mc.sca2amalthea.updatesite</h1>

-	<p class="bodyText"><xsl:value-of select="description"/></p>

-	<table width="100%" border="0" cellspacing="1" cellpadding="2">

-	<xsl:for-each select="category-def">

-		<xsl:sort select="@label" order="ascending" case-order="upper-first"/>

-		<xsl:sort select="@name" order="ascending" case-order="upper-first"/>

-	<xsl:if test="count(key('cat',@name)) != 0">

-			<tr class="header">

-				<td class="sub-header" width="30%">

-					<xsl:value-of select="@name"/>

-				</td>

-				<td class="sub-header" width="70%">

-					<xsl:value-of select="@label"/>

-				</td>

-			</tr>

-			<xsl:for-each select="key('cat',@name)">

-			<xsl:sort select="ancestor::feature//@version" order="ascending"/>

-			<xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>

-			<tr>

-				<xsl:choose>

-				<xsl:when test="(position() mod 2 = 1)">

-					<xsl:attribute name="class">dark-row</xsl:attribute>

-				</xsl:when>

-				<xsl:otherwise>

-					<xsl:attribute name="class">light-row</xsl:attribute>

-				</xsl:otherwise>

-				</xsl:choose>

-				<td class="log-text" id="indent">

-						<xsl:choose>

-						<xsl:when test="ancestor::feature//@label">

-							<a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@label"/></a>

-							<br/>

-							<div id="indent">

-							(<xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/>)

-							</div>

-						</xsl:when>

-						<xsl:otherwise>

-						<a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/></a>

-						</xsl:otherwise>

-						</xsl:choose>

-						<br />

-				</td>

-				<td>

-					<table>

-						<xsl:if test="ancestor::feature//@os">

-							<tr><td class="log-text" id="indent">Operating Systems:</td>

-							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@os"/></td>

-							</tr>

-						</xsl:if>

-						<xsl:if test="ancestor::feature//@ws">

-							<tr><td class="log-text" id="indent">Windows Systems:</td>

-							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td>

-							</tr>

-						</xsl:if>

-						<xsl:if test="ancestor::feature//@nl">

-							<tr><td class="log-text" id="indent">Languages:</td>

-							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td>

-							</tr>

-						</xsl:if>

-						<xsl:if test="ancestor::feature//@arch">

-							<tr><td class="log-text" id="indent">Architecture:</td>

-							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td>

-							</tr>

-						</xsl:if>

-					</table>

-				</td>

-			</tr>

-			</xsl:for-each>

-			<tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr>

-		</xsl:if>

-	</xsl:for-each>

-	<xsl:if test="count(feature)  &gt; count(feature/category)">

-	<tr class="header">

-		<td class="sub-header" colspan="2">

-		Uncategorized

-		</td>

-	</tr>

-	</xsl:if>

-	<xsl:choose>

-	<xsl:when test="function-available('msxsl:node-set')">

-	   <xsl:variable name="rtf-nodes">

-		<xsl:for-each select="feature[not(category)]">

-			<xsl:sort select="@id" order="ascending" case-order="upper-first"/>

-			<xsl:sort select="@version" order="ascending" />

-			<xsl:value-of select="."/>

-			<xsl:copy-of select="." />

-		</xsl:for-each>

-	   </xsl:variable>

-	   <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>

-	<xsl:for-each select="$myNodeSet">

-	<tr>

-		<xsl:choose>

-		<xsl:when test="position() mod 2 = 1">

-		<xsl:attribute name="class">dark-row</xsl:attribute>

-		</xsl:when>

-		<xsl:otherwise>

-		<xsl:attribute name="class">light-row</xsl:attribute>

-		</xsl:otherwise>

-		</xsl:choose>

-		<td class="log-text" id="indent">

-			<xsl:choose>

-			<xsl:when test="@label">

-				<a href="{@url}"><xsl:value-of select="@label"/></a>

-				<br />

-				<div id="indent">

-				(<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)

-				</div>

-			</xsl:when>

-			<xsl:otherwise>

-				<a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>

-			</xsl:otherwise>

-			</xsl:choose>

-			<br /><br />

-		</td>

-		<td>

-			<table>

-				<xsl:if test="@os">

-					<tr><td class="log-text" id="indent">Operating Systems:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@os"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@ws">

-					<tr><td class="log-text" id="indent">Windows Systems:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@nl">

-					<tr><td class="log-text" id="indent">Languages:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@arch">

-					<tr><td class="log-text" id="indent">Architecture:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>

-					</tr>

-				</xsl:if>

-			</table>

-		</td>

-	</tr>

-	</xsl:for-each>

-	</xsl:when>

-	<xsl:otherwise>

-	<xsl:for-each select="feature[not(category)]">

-	<xsl:sort select="@id" order="ascending" case-order="upper-first"/>

-	<xsl:sort select="@version" order="ascending" />

-	<tr>

-		<xsl:choose>

-		<xsl:when test="count(preceding-sibling::feature[not(category)]) mod 2 = 1">

-		<xsl:attribute name="class">dark-row</xsl:attribute>

-		</xsl:when>

-		<xsl:otherwise>

-		<xsl:attribute name="class">light-row</xsl:attribute>

-		</xsl:otherwise>

-		</xsl:choose>

-		<td class="log-text" id="indent">

-			<xsl:choose>

-			<xsl:when test="@label">

-				<a href="{@url}"><xsl:value-of select="@label"/></a>

-				<br />

-				<div id="indent">

-				(<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)

-				</div>

-			</xsl:when>

-			<xsl:otherwise>

-				<a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>

-			</xsl:otherwise>

-			</xsl:choose>

-			<br /><br />

-		</td>

-		<td>

-			<table>

-				<xsl:if test="@os">

-					<tr><td class="log-text" id="indent">Operating Systems:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@os"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@ws">

-					<tr><td class="log-text" id="indent">Windows Systems:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@nl">

-					<tr><td class="log-text" id="indent">Languages:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>

-					</tr>

-				</xsl:if>

-				<xsl:if test="@arch">

-					<tr><td class="log-text" id="indent">Architecture:</td>

-					<td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>

-					</tr>

-				</xsl:if>

-			</table>

-		</td>

-	</tr>

-	</xsl:for-each>

-	</xsl:otherwise>

-	</xsl:choose>

-	</table>

-	</body>

-	</html>

-</xsl:for-each>

-</xsl:template>

-</xsl:stylesheet>

+<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+<xsl:output method="html" encoding="UTF-8"/>
+<xsl:key name="cat" match="category" use="@name"/>
+<xsl:template match="/">
+<xsl:for-each select="site">
+	<html>
+	<head>
+	<title>org.eclipse.app4mc.sca2amalthea.updatesite</title>
+	<style>@import url("web/site.css");</style>
+	</head>
+	<body>
+	<h1 class="title">org.eclipse.app4mc.sca2amalthea.updatesite</h1>
+	<p class="bodyText"><xsl:value-of select="description"/></p>
+	<table width="100%" border="0" cellspacing="1" cellpadding="2">
+	<xsl:for-each select="category-def">
+		<xsl:sort select="@label" order="ascending" case-order="upper-first"/>
+		<xsl:sort select="@name" order="ascending" case-order="upper-first"/>
+	<xsl:if test="count(key('cat',@name)) != 0">
+			<tr class="header">
+				<td class="sub-header" width="30%">
+					<xsl:value-of select="@name"/>
+				</td>
+				<td class="sub-header" width="70%">
+					<xsl:value-of select="@label"/>
+				</td>
+			</tr>
+			<xsl:for-each select="key('cat',@name)">
+			<xsl:sort select="ancestor::feature//@version" order="ascending"/>
+			<xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>
+			<tr>
+				<xsl:choose>
+				<xsl:when test="(position() mod 2 = 1)">
+					<xsl:attribute name="class">dark-row</xsl:attribute>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:attribute name="class">light-row</xsl:attribute>
+				</xsl:otherwise>
+				</xsl:choose>
+				<td class="log-text" id="indent">
+						<xsl:choose>
+						<xsl:when test="ancestor::feature//@label">
+							<a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@label"/></a>
+							<br/>
+							<div id="indent">
+							(<xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/>)
+							</div>
+						</xsl:when>
+						<xsl:otherwise>
+						<a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/></a>
+						</xsl:otherwise>
+						</xsl:choose>
+						<br />
+				</td>
+				<td>
+					<table>
+						<xsl:if test="ancestor::feature//@os">
+							<tr><td class="log-text" id="indent">Operating Systems:</td>
+							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@os"/></td>
+							</tr>
+						</xsl:if>
+						<xsl:if test="ancestor::feature//@ws">
+							<tr><td class="log-text" id="indent">Windows Systems:</td>
+							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td>
+							</tr>
+						</xsl:if>
+						<xsl:if test="ancestor::feature//@nl">
+							<tr><td class="log-text" id="indent">Languages:</td>
+							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td>
+							</tr>
+						</xsl:if>
+						<xsl:if test="ancestor::feature//@arch">
+							<tr><td class="log-text" id="indent">Architecture:</td>
+							<td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td>
+							</tr>
+						</xsl:if>
+					</table>
+				</td>
+			</tr>
+			</xsl:for-each>
+			<tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr>
+		</xsl:if>
+	</xsl:for-each>
+	<xsl:if test="count(feature)  &gt; count(feature/category)">
+	<tr class="header">
+		<td class="sub-header" colspan="2">
+		Uncategorized
+		</td>
+	</tr>
+	</xsl:if>
+	<xsl:choose>
+	<xsl:when test="function-available('msxsl:node-set')">
+	   <xsl:variable name="rtf-nodes">
+		<xsl:for-each select="feature[not(category)]">
+			<xsl:sort select="@id" order="ascending" case-order="upper-first"/>
+			<xsl:sort select="@version" order="ascending" />
+			<xsl:value-of select="."/>
+			<xsl:copy-of select="." />
+		</xsl:for-each>
+	   </xsl:variable>
+	   <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>
+	<xsl:for-each select="$myNodeSet">
+	<tr>
+		<xsl:choose>
+		<xsl:when test="position() mod 2 = 1">
+		<xsl:attribute name="class">dark-row</xsl:attribute>
+		</xsl:when>
+		<xsl:otherwise>
+		<xsl:attribute name="class">light-row</xsl:attribute>
+		</xsl:otherwise>
+		</xsl:choose>
+		<td class="log-text" id="indent">
+			<xsl:choose>
+			<xsl:when test="@label">
+				<a href="{@url}"><xsl:value-of select="@label"/></a>
+				<br />
+				<div id="indent">
+				(<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
+				</div>
+			</xsl:when>
+			<xsl:otherwise>
+				<a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
+			</xsl:otherwise>
+			</xsl:choose>
+			<br /><br />
+		</td>
+		<td>
+			<table>
+				<xsl:if test="@os">
+					<tr><td class="log-text" id="indent">Operating Systems:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@ws">
+					<tr><td class="log-text" id="indent">Windows Systems:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@nl">
+					<tr><td class="log-text" id="indent">Languages:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@arch">
+					<tr><td class="log-text" id="indent">Architecture:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
+					</tr>
+				</xsl:if>
+			</table>
+		</td>
+	</tr>
+	</xsl:for-each>
+	</xsl:when>
+	<xsl:otherwise>
+	<xsl:for-each select="feature[not(category)]">
+	<xsl:sort select="@id" order="ascending" case-order="upper-first"/>
+	<xsl:sort select="@version" order="ascending" />
+	<tr>
+		<xsl:choose>
+		<xsl:when test="count(preceding-sibling::feature[not(category)]) mod 2 = 1">
+		<xsl:attribute name="class">dark-row</xsl:attribute>
+		</xsl:when>
+		<xsl:otherwise>
+		<xsl:attribute name="class">light-row</xsl:attribute>
+		</xsl:otherwise>
+		</xsl:choose>
+		<td class="log-text" id="indent">
+			<xsl:choose>
+			<xsl:when test="@label">
+				<a href="{@url}"><xsl:value-of select="@label"/></a>
+				<br />
+				<div id="indent">
+				(<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
+				</div>
+			</xsl:when>
+			<xsl:otherwise>
+				<a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
+			</xsl:otherwise>
+			</xsl:choose>
+			<br /><br />
+		</td>
+		<td>
+			<table>
+				<xsl:if test="@os">
+					<tr><td class="log-text" id="indent">Operating Systems:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@ws">
+					<tr><td class="log-text" id="indent">Windows Systems:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@nl">
+					<tr><td class="log-text" id="indent">Languages:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:if test="@arch">
+					<tr><td class="log-text" id="indent">Architecture:</td>
+					<td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
+					</tr>
+				</xsl:if>
+			</table>
+		</td>
+	</tr>
+	</xsl:for-each>
+	</xsl:otherwise>
+	</xsl:choose>
+	</table>
+	</body>
+	</html>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>