Merge branch 'zmeer/feature/emfGraphicalViewer'
diff --git a/description.txt b/description.txt
index 49135f9..b8de5c8 100644
--- a/description.txt
+++ b/description.txt
@@ -1 +1,5 @@
 1.Application Platform Project for MultiCore (APP4MC) - Development tools.
+
+Development workflow:
+
+ - master: single branch for all activities
diff --git a/eclipse-tools/model-transformation/README.md b/eclipse-tools/model-transformation/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/eclipse-tools/model-transformation/README.md
diff --git a/eclipse-tools/model-transformation/build/.gitignore b/eclipse-tools/model-transformation/build/.gitignore
new file mode 100644
index 0000000..3197db3
--- /dev/null
+++ b/eclipse-tools/model-transformation/build/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/build/Target/.project b/eclipse-tools/model-transformation/build/Target/.project
new file mode 100644
index 0000000..b6b8305
--- /dev/null
+++ b/eclipse-tools/model-transformation/build/Target/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Target</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/eclipse-tools/model-transformation/build/Target/base.target b/eclipse-tools/model-transformation/build/Target/base.target
new file mode 100644
index 0000000..bfd7b62
--- /dev/null
+++ b/eclipse-tools/model-transformation/build/Target/base.target
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="Running Platform" sequenceNumber="20">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.3.0.v20150602-0808"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.11.2.v20160208-0841"/>
+<unit id="org.eclipse.sphinx.sdk.feature.group" version="0.9.2.201601200932"/>
+<repository location="http://download.eclipse.org/releases/mars/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.ecore.feature.group" version="2.11.2.v20160208-0816"/>
+<unit id="org.eclipse.platform.feature.group" version="4.5.2.v20160212-1500"/>
+<repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.app4mc.amalthea.models.feature.group" version="0.8.1.201707281435"/>
+<unit id="org.eclipse.app4mc.amalthea.models.sdk.feature.group" version="0.8.1.201707281435"/>
+<repository location="http://download.eclipse.org/app4mc/updatesites/releases/0.8.1/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.app4mc.emfutils.content.extractor.feature.feature.group" version="0.8.0.201710041454"/>
+<unit id="org.eclipse.app4mc.emfutils.metamodelviewer.feature.feature.group" version="0.8.0.201710041454"/>
+<repository location="https://ci.eclipse.org/app4mc/job/emf-graphical-viewer-develop/lastSuccessfulBuild/artifact/eclipse-tools/emf-graphical-viewer/build/org.eclipse.app4mc.emfutils.p2repo/target/repository/"/>
+</location>
+</locations>
+<environment>
+<os>win32</os>
+<ws>win32</ws>
+<arch>x86_64</arch>
+<nl>en_US</nl>
+</environment>
+</target>
diff --git a/eclipse-tools/model-transformation/doc/.gitignore b/eclipse-tools/model-transformation/doc/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/doc/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git "a/eclipse-tools/model-transformation/doc/AMALTHEA_Transformation_Engine \050ATE\051.pptx" "b/eclipse-tools/model-transformation/doc/AMALTHEA_Transformation_Engine \050ATE\051.pptx"
new file mode 100644
index 0000000..cade096
--- /dev/null
+++ "b/eclipse-tools/model-transformation/doc/AMALTHEA_Transformation_Engine \050ATE\051.pptx"
Binary files differ
diff --git a/eclipse-tools/model-transformation/doc/overview.bmp b/eclipse-tools/model-transformation/doc/overview.bmp
new file mode 100644
index 0000000..70542a5
--- /dev/null
+++ b/eclipse-tools/model-transformation/doc/overview.bmp
Binary files differ
diff --git a/eclipse-tools/model-transformation/features/.gitignore b/eclipse-tools/model-transformation/features/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/features/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.classpath b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.classpath
new file mode 100644
index 0000000..428337e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.classpath
@@ -0,0 +1,8 @@
+<?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="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.project b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.project
new file mode 100644
index 0000000..fa5bc04
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.m2m.transformation.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ae5e443
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Transformation
+Bundle-SymbolicName: com.bosch.m2m.app4mc.m2m.transformation.core;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: BOSCH
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: com.google.inject;bundle-version="3.0.0",
+ org.apache.log4j;bundle-version="1.2.15",
+ org.eclipse.emf;bundle-version="2.6.0",
+ org.eclipse.app4mc.amalthea.model;bundle-version="0.8.1";visibility:=reexport,
+ org.eclipse.app4mc.sample.simulation.model;bundle-version="0.1.0",
+ org.eclipse.app4mc.transformation.extensions;bundle-version="1.0.0"
+Export-Package: com.bosch.m2m.app4mc.m2m.transformation.core.configuration,
+ com.bosch.m2m.app4mc.m2m.transformation.core.module
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/build.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/build.properties
new file mode 100644
index 0000000..600d1b4
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+           xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml
new file mode 100644
index 0000000..1e44215
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.app4mc.transformation.extensions.m2m">
+      <m2m
+            class="com.bosch.m2m.app4mc.m2m.transformation.core.configuration.M2MTransformation"
+            enabled="true"
+            id="com.bosch.m2m.app4mc.simulation.generic.transformation.m2m">
+      </m2m>
+   </extension>
+   <extension
+         point="org.eclipse.app4mc.transformation.extensions.module">
+      <module
+            class="com.bosch.m2m.app4mc.m2m.transformation.core.module.DefaultM2MInjectorModule"
+            enabled="true"
+            id="com.bosch.m2m.app4mc.m2m.transformation.core.module1">
+      </module>
+   </extension>
+
+</plugin>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/pom.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/pom.xml
new file mode 100644
index 0000000..979c4ee
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/pom.xml
@@ -0,0 +1,83 @@
+<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>./com.bosch.m2m.simulation.build</relativePath>
+		<groupId>m2m</groupId>
+		<artifactId>com.bosch.m2m.simulation.build</artifactId>
+		<version>1.0.0.qualifier</version>
+	</parent>
+
+	<artifactId>org.eclipse.app4mc.transformation.extensions</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>
+	<groupId>m2m</groupId>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/configuration/M2MTransformation.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/configuration/M2MTransformation.java
new file mode 100644
index 0000000..1962b09
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/configuration/M2MTransformation.java
@@ -0,0 +1,70 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.configuration;
+
+import java.util.Properties;
+
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToModelTransformation;
+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.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+import com.bosch.m2m.app4mc.m2m.transformation.core.model.loaders.AmaltheaMultiFileLoader;
+
+public class M2MTransformation implements IModelToModelTransformation {
+
+	private Properties parameters;
+	
+	private Logger logger=LogManager.getLogger(M2MTransformation.class);
+	
+	public M2MTransformation() {
+		// TODO Auto-generated constructor stub
+	}
+
+	@Override
+	public ResourceSet getInputResourceSet() {
+
+		if(parameters !=null){
+			
+			String folderPath = parameters.getProperty("amalthea_models_folder");
+			
+			if(folderPath !=null){
+				
+				ResourceSet resourceSet = new AmaltheaMultiFileLoader().loadMultipleFiles(folderPath);
+				
+				return resourceSet;
+			}else{
+				logger.error("amalthea_models_folder parameter not set", new NullPointerException("amalthea_models_folder property not set"));
+			}
+			
+		}else{
+			logger.error("Parameters object not set ", new NullPointerException("Parameter object is null"));
+		}
+		return null;
+	}
+
+	@Override
+	public ResourceSet getOuputResourceSet() {
+
+		ResourceSet outputRurceSet=new ResourceSetImpl();
+		
+		outputRurceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
+		(Resource.Factory.Registry.DEFAULT_EXTENSION, 
+				new XMIResourceFactoryImpl());
+
+		outputRurceSet.getPackageRegistry().put
+		(SimulationPackage.eNS_URI, 
+				SimulationPackage.eINSTANCE);
+		
+		return outputRurceSet;
+	}
+
+	@Override
+	public void setProperties(Properties parameters) {
+
+		this.parameters=parameters;
+	}
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend
new file mode 100644
index 0000000..4426b07
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend
@@ -0,0 +1,74 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates
+
+import com.google.inject.Inject
+import java.io.File
+import org.eclipse.app4mc.amalthea.model.Amalthea
+import org.eclipse.app4mc.transformation.extensions.base.templates.RootTransformer
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory
+
+class AmaltheaTransformer extends RootTransformer{
+	
+	/*- Factory initiaization */
+	 val simulationRootFactory = SimulationFactory.eINSTANCE
+
+
+	/*- Transformer classes initiaization */
+	@Inject extension SWTransformer sw
+
+	@Inject extension HWTransformer hw
+
+	@Inject extension OSTransformer os
+
+	@Inject extension MappingTransformer mt
+	
+	
+
+		override m2mTransformation(ResourceSet inputResourceSet, ResourceSet outputResourceSet) {
+			
+			var int fileIndex=1
+			
+			for(resource : inputResourceSet.resources){
+				for(content : resource.contents){
+					
+					logger.info("Processing file : "+resource.URI)
+					
+					val simulationModelRoot=transform(content as Amalthea)
+				
+					val out_uri=URI.createFileURI(getProperty("simulation_models_folder")+File.separator+fileIndex+++".root")
+				
+					val out_resource=outputResourceSet.createResource(out_uri)
+					
+					out_resource.contents.add(simulationModelRoot)
+					
+					out_resource.save(null)
+					
+					logger.info("Transformed model file generated at : "+ out_uri)
+						 
+				}
+			}
+	}
+
+	
+	
+	   def create simulationRootFactory.createModel transform(Amalthea amalthea){
+
+	 	customObjsStore.injectMembers(SWTransformer , sw)
+
+	 	customObjsStore.injectMembers(HWTransformer , hw)
+
+	 	customObjsStore.injectMembers(OSTransformer , os)
+
+	 	customObjsStore.injectMembers(MappingTransformer , mt) 
+
+	 	
+	 	hw.transfromHWModel(amalthea.hwModel,it)
+
+		os.transfromOSModel(amalthea.osModel,it)
+
+		mt.transfromMappingModel(amalthea.mappingModel,it)	
+	 	
+	 }
+ 		
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/HWTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/HWTransformer.xtend
new file mode 100644
index 0000000..4f941d6
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/HWTransformer.xtend
@@ -0,0 +1,46 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates
+
+import org.eclipse.app4mc.SampleSimulation.Model
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory
+import org.eclipse.app4mc.amalthea.model.HWModel
+import org.eclipse.app4mc.amalthea.model.Memory
+import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
+
+public class HWTransformer extends AbstractTransformer{
+	
+	def OSTransformer getOS(){
+		return customObjsStore.getInstance(OSTransformer)  
+	}
+		
+	/*- Factory initiaization */
+	 val simulationFactory = SimulationFactory.eINSTANCE
+
+
+	val amaltheaFactory = AmaltheaFactory.eINSTANCE
+	
+
+	 public def transfromHWModel(HWModel amaltheaModel, Model simulationModel){
+	 	
+	 	for(amaltheaEcu:amaltheaModel?.system?.ecus){
+	 		
+	 		for(amaltheaMicroController: amaltheaEcu?.microcontrollers){
+	 			
+	 			for(memory: amaltheaMicroController?.memories){
+	 				
+	 			val simulationModelMemory =	createMemory(memory);
+	 			
+	 			simulationModel.memories.add(simulationModelMemory)
+	 				
+	 			} 
+	 			
+	 		}
+	 	}
+	 }
+	 
+	 
+	 public def create simulationFactory.createMemory createMemory(Memory amltMemory){ 
+	 	name=amltMemory.name
+	 }
+ 
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/LabelTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/LabelTransformer.xtend
new file mode 100644
index 0000000..d5f4595
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/LabelTransformer.xtend
@@ -0,0 +1,5 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates
+
+class LabelTransformer {
+	
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/MappingTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/MappingTransformer.xtend
new file mode 100644
index 0000000..9563510
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/MappingTransformer.xtend
@@ -0,0 +1,47 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates;
+
+import org.eclipse.app4mc.SampleSimulation.Model
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory
+import org.eclipse.app4mc.amalthea.model.MappingModel
+import org.eclipse.app4mc.amalthea.model.TaskScheduler
+import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
+
+public class MappingTransformer extends AbstractTransformer{
+	
+
+	
+	def HWTransformer getHW(){
+		return customObjsStore.getInstance(HWTransformer) 
+	}
+	
+	def OSTransformer getOS(){
+		return customObjsStore.getInstance(OSTransformer)  
+	}
+	 
+	
+
+	/*- Factory initiaization */
+	 val simulationFactory = SimulationFactory.eINSTANCE
+
+
+	val amaltheaFactory = AmaltheaFactory.eINSTANCE
+	
+	public def transfromMappingModel(MappingModel amltMappingModel, Model simulationModel){
+		
+	 amltMappingModel?.schedulerAllocation?.forEach[amltSA|
+	 	
+	 	if(amltSA.scheduler instanceof TaskScheduler){
+	 		val simulationModelScheduler= getOS.createScheduler(amltSA.scheduler as TaskScheduler)
+	 		
+	 		if(simulationModelScheduler.eContainer == null){
+	 			simulationModel.schedulers.add(simulationModelScheduler)
+	 		}
+	  
+	 	}
+	 	
+	 ]
+		
+	}
+	 
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/OSTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/OSTransformer.xtend
new file mode 100644
index 0000000..2276867
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/OSTransformer.xtend
@@ -0,0 +1,38 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates;
+
+import org.eclipse.app4mc.SampleSimulation.Model
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory
+import org.eclipse.app4mc.amalthea.model.OSModel
+import org.eclipse.app4mc.amalthea.model.TaskScheduler
+import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
+
+public class OSTransformer extends AbstractTransformer{
+
+ 
+	/*- Factory initiaization */
+	 val simulationFactory = SimulationFactory.eINSTANCE
+
+	
+	public def transfromOSModel(OSModel amaltheaOSModel, Model simulationModel){
+		
+		amaltheaOSModel.operatingSystems.forEach[amltOs|
+
+			amltOs.taskSchedulers.forEach[var simulationScheduler=createScheduler(it)
+				
+				if(simulationScheduler.eContainer==null){
+					simulationModel.schedulers.add(simulationScheduler)
+				}
+			]
+			
+		]
+		
+	}
+	
+	def create simulationFactory.createScheduler createScheduler(TaskScheduler amltTs){
+		
+		 name=amltTs.name
+	}
+	
+		
+ 
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/SWTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/SWTransformer.xtend
new file mode 100644
index 0000000..53b1504
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/SWTransformer.xtend
@@ -0,0 +1,18 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates
+
+import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
+
+public class SWTransformer extends AbstractTransformer {
+
+ 
+	String name
+
+	public def String getName() {
+		return name;
+	}
+
+	public def void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/model/loaders/AmaltheaMultiFileLoader.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/model/loaders/AmaltheaMultiFileLoader.java
new file mode 100644
index 0000000..01ee2a5
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/model/loaders/AmaltheaMultiFileLoader.java
@@ -0,0 +1,80 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.model.loaders;
+
+import java.io.File;
+import java.io.FilenameFilter;
+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.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.sphinx.AmaltheaResourceFactory;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+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.resource.ExtendedResourceSet;
+import org.eclipse.sphinx.emf.resource.ExtendedResourceSetImpl;
+
+public class AmaltheaMultiFileLoader  {
+
+	public ResourceSet loadMultipleFiles(String directoryPath){
+
+		File folder = new File(directoryPath);
+
+		if(folder.isDirectory()){
+			File[] listFiles = folder.listFiles( new FilenameFilter() {
+
+				@Override
+				public boolean accept(File file, String name) {
+
+					if(name.endsWith(".amxmi")){
+						return true;
+					}
+
+					return false;
+				}
+			});
+
+			ResourceSet resourceSet = initializeResourceSet();
+
+			loadMultipleFiles(resourceSet, listFiles);
+			
+			return resourceSet;
+		}
+
+		return new ResourceSetImpl();
+
+	}
+
+	private List<Amalthea>   loadMultipleFiles(ResourceSet resourceSet, File[] listFiles) {
+
+		List<Amalthea> models =new ArrayList<Amalthea>();
+
+		for (File amxmiFile : listFiles) {
+
+			final Resource res = resourceSet.createResource(URI.createURI("file:////"+amxmiFile.getAbsolutePath()));
+			try {
+				res.load(null);
+				for (final EObject content : res.getContents()) {
+					if (content instanceof Amalthea) {
+						models.add((Amalthea) content);
+					}
+				}
+			} catch (IOException e) {
+				// ignore
+			}
+		}
+		return models;
+	}
+
+	private static ResourceSet initializeResourceSet() {
+		final ExtendedResourceSet resSet = new ExtendedResourceSetImpl();
+		resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+		AmaltheaPackage.eINSTANCE.eClass(); // register the package
+
+		return resSet;
+	}
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/module/DefaultM2MInjectorModule.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/module/DefaultM2MInjectorModule.java
new file mode 100644
index 0000000..3e35b1d
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/module/DefaultM2MInjectorModule.java
@@ -0,0 +1,26 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.module;
+
+import org.eclipse.app4mc.transformation.extensions.AbstractM2MInjectorModule;
+import org.eclipse.app4mc.transformation.extensions.base.templates.RootTransformer;
+
+import com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates.AmaltheaTransformer;
+
+public class DefaultM2MInjectorModule extends AbstractM2MInjectorModule {
+
+	public DefaultM2MInjectorModule() {
+	}
+
+	@Override
+	protected void configure() {
+		
+		initializeBaseConfiguration();
+		
+	}
+	
+	@Override
+	protected void initializeBaseConfiguration() {
+		super.initializeBaseConfiguration();
+		bind(RootTransformer.class).to(AmaltheaTransformer.class);
+	}
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.classpath b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.classpath
@@ -0,0 +1,7 @@
+<?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="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.project b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.project
new file mode 100644
index 0000000..a907690
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.sample.simulation.model</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/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6ec4c3b
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.app4mc.sample.simulation.model;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.app4mc.SampleSimulation,
+ org.eclipse.app4mc.SampleSimulation.impl,
+ org.eclipse.app4mc.SampleSimulation.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/bin/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/bin/.gitignore
new file mode 100644
index 0000000..cf1db2e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/bin/.gitignore
@@ -0,0 +1 @@
+/org/
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/build.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/build.properties
new file mode 100644
index 0000000..547d4df
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/build.properties
@@ -0,0 +1,19 @@
+# /*******************************************************************************
+#  * Copyright (c) 2017 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
+#  *******************************************************************************/
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.ecore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.ecore
new file mode 100644
index 0000000..af217e7
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.ecore
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="SampleSimulation" nsURI="http://sample.simulation/1.0" nsPrefix="SampleSimulation">
+  <eClassifiers xsi:type="ecore:EClass" name="Model">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
+        eType="#//Runnable" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+        eType="#//Label" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memories" upperBound="-1"
+        eType="#//Memory" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="schedulers" upperBound="-1"
+        eType="#//Scheduler" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Runnable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="labels" eType="#//Label"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Label">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Memory">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Scheduler">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.genmodel b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.genmodel
new file mode 100644
index 0000000..dc9edcd
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/model/Sample.genmodel
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="*******************************************************************************&#xD;&#xA; * Copyright (c) 2017 Robert Bosch GmbH.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; *    Robert Bosch GmbH - initial API and implementation&#xD;&#xA; *******************************************************************************"
+    modelDirectory="/org.eclipse.app4mc.sample.simulation.model/src" modelPluginID="org.eclipse.app4mc.sample.simulation.model"
+    modelName="Sample" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+    operationReflection="true" importOrganizing="true">
+  <foreignModel>Sample.ecore</foreignModel>
+  <genPackages prefix="Simulation" basePackage="org.eclipse.app4mc" disposableProviderFactory="true"
+      ecorePackage="Sample.ecore#/">
+    <genClasses ecoreClass="Sample.ecore#//Model">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Sample.ecore#//Model/runnables"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Sample.ecore#//Model/labels"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Sample.ecore#//Model/memories"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Sample.ecore#//Model/schedulers"/>
+    </genClasses>
+    <genClasses ecoreClass="Sample.ecore#//Runnable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Sample.ecore#//Runnable/labels"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Sample.ecore#//Runnable/name"/>
+    </genClasses>
+    <genClasses ecoreClass="Sample.ecore#//Label">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Sample.ecore#//Label/name"/>
+    </genClasses>
+    <genClasses ecoreClass="Sample.ecore#//Memory">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Sample.ecore#//Memory/name"/>
+    </genClasses>
+    <genClasses ecoreClass="Sample.ecore#//Scheduler">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Sample.ecore#//Scheduler/name"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.properties
new file mode 100644
index 0000000..ae758cf
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.properties
@@ -0,0 +1,13 @@
+# /*******************************************************************************
+#  * Copyright (c) 2017 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
+#  *******************************************************************************/
+
+pluginName = Sample Model
+providerName = www.example.org
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.xml
new file mode 100644
index 0000000..0b77a3f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/plugin.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ /*******************************************************************************
+  * Copyright (c) 2017 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
+  *******************************************************************************/
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated Sample -->
+      <package
+            uri="http://sample.simulation/1.0"
+            class="org.eclipse.app4mc.SampleSimulation.SimulationPackage"
+            genModel="model/Sample.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Label.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Label.java
new file mode 100644
index 0000000..d36768f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Label.java
@@ -0,0 +1,60 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Label#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getLabel()
+ * @model
+ * @generated
+ */
+public interface Label extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getLabel_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.SampleSimulation.Label#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // Label
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Memory.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Memory.java
new file mode 100644
index 0000000..e50a04f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Memory.java
@@ -0,0 +1,60 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Memory</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Memory#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getMemory()
+ * @model
+ * @generated
+ */
+public interface Memory extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getMemory_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.SampleSimulation.Memory#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // Memory
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Model.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Model.java
new file mode 100644
index 0000000..82230ab
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Model.java
@@ -0,0 +1,103 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Model#getRunnables <em>Runnables</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Model#getLabels <em>Labels</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Model#getMemories <em>Memories</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Model#getSchedulers <em>Schedulers</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Runnables</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.SampleSimulation.Runnable}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Runnables</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Runnables</em>' containment reference list.
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getModel_Runnables()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<org.eclipse.app4mc.SampleSimulation.Runnable> getRunnables();
+
+	/**
+	 * Returns the value of the '<em><b>Labels</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.SampleSimulation.Label}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Labels</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Labels</em>' containment reference list.
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getModel_Labels()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Label> getLabels();
+
+	/**
+	 * Returns the value of the '<em><b>Memories</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.SampleSimulation.Memory}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Memories</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Memories</em>' containment reference list.
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getModel_Memories()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Memory> getMemories();
+
+	/**
+	 * Returns the value of the '<em><b>Schedulers</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.SampleSimulation.Scheduler}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schedulers</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schedulers</em>' containment reference list.
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getModel_Schedulers()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Scheduler> getSchedulers();
+
+} // Model
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Runnable.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Runnable.java
new file mode 100644
index 0000000..45cdf81
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Runnable.java
@@ -0,0 +1,87 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Runnable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Runnable#getLabels <em>Labels</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Runnable#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getRunnable()
+ * @model
+ * @generated
+ */
+public interface Runnable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Labels</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Labels</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Labels</em>' reference.
+	 * @see #setLabels(Label)
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getRunnable_Labels()
+	 * @model
+	 * @generated
+	 */
+	Label getLabels();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.SampleSimulation.Runnable#getLabels <em>Labels</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Labels</em>' reference.
+	 * @see #getLabels()
+	 * @generated
+	 */
+	void setLabels(Label value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getRunnable_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.SampleSimulation.Runnable#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // Runnable
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Scheduler.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Scheduler.java
new file mode 100644
index 0000000..18bbcaf
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/Scheduler.java
@@ -0,0 +1,60 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Scheduler</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.Scheduler#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getScheduler()
+ * @model
+ * @generated
+ */
+public interface Scheduler extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#getScheduler_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.SampleSimulation.Scheduler#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // Scheduler
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationFactory.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationFactory.java
new file mode 100644
index 0000000..6cb9951
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationFactory.java
@@ -0,0 +1,88 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage
+ * @generated
+ */
+public interface SimulationFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SimulationFactory eINSTANCE = org.eclipse.app4mc.SampleSimulation.impl.SimulationFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Model</em>'.
+	 * @generated
+	 */
+	Model createModel();
+
+	/**
+	 * Returns a new object of class '<em>Runnable</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Runnable</em>'.
+	 * @generated
+	 */
+	Runnable createRunnable();
+
+	/**
+	 * Returns a new object of class '<em>Label</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Label</em>'.
+	 * @generated
+	 */
+	Label createLabel();
+
+	/**
+	 * Returns a new object of class '<em>Memory</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Memory</em>'.
+	 * @generated
+	 */
+	Memory createMemory();
+
+	/**
+	 * Returns a new object of class '<em>Scheduler</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Scheduler</em>'.
+	 * @generated
+	 */
+	Scheduler createScheduler();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SimulationPackage getSimulationPackage();
+
+} //SimulationFactory
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationPackage.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationPackage.java
new file mode 100644
index 0000000..9e9c80c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/SimulationPackage.java
@@ -0,0 +1,588 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SimulationPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "SampleSimulation";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://sample.simulation/1.0";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SampleSimulation";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SimulationPackage eINSTANCE = org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl <em>Model</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.ModelImpl
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getModel()
+	 * @generated
+	 */
+	int MODEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Runnables</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL__RUNNABLES = 0;
+
+	/**
+	 * The feature id for the '<em><b>Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL__LABELS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Memories</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL__MEMORIES = 2;
+
+	/**
+	 * The feature id for the '<em><b>Schedulers</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL__SCHEDULERS = 3;
+
+	/**
+	 * The number of structural features of the '<em>Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl <em>Runnable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getRunnable()
+	 * @generated
+	 */
+	int RUNNABLE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Labels</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE__LABELS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE__NAME = 1;
+
+	/**
+	 * The number of structural features of the '<em>Runnable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Runnable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.SampleSimulation.impl.LabelImpl <em>Label</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.LabelImpl
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getLabel()
+	 * @generated
+	 */
+	int LABEL = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL__NAME = 0;
+
+	/**
+	 * The number of structural features of the '<em>Label</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Label</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_OPERATION_COUNT = 0;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.SampleSimulation.impl.MemoryImpl <em>Memory</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.MemoryImpl
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getMemory()
+	 * @generated
+	 */
+	int MEMORY = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY__NAME = 0;
+
+	/**
+	 * The number of structural features of the '<em>Memory</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Memory</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.SampleSimulation.impl.SchedulerImpl <em>Scheduler</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SchedulerImpl
+	 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getScheduler()
+	 * @generated
+	 */
+	int SCHEDULER = 4;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER__NAME = 0;
+
+	/**
+	 * The number of structural features of the '<em>Scheduler</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Scheduler</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER_OPERATION_COUNT = 0;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.SampleSimulation.Model <em>Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Model</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model
+	 * @generated
+	 */
+	EClass getModel();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.SampleSimulation.Model#getRunnables <em>Runnables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Runnables</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model#getRunnables()
+	 * @see #getModel()
+	 * @generated
+	 */
+	EReference getModel_Runnables();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.SampleSimulation.Model#getLabels <em>Labels</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Labels</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model#getLabels()
+	 * @see #getModel()
+	 * @generated
+	 */
+	EReference getModel_Labels();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.SampleSimulation.Model#getMemories <em>Memories</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Memories</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model#getMemories()
+	 * @see #getModel()
+	 * @generated
+	 */
+	EReference getModel_Memories();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.SampleSimulation.Model#getSchedulers <em>Schedulers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Schedulers</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model#getSchedulers()
+	 * @see #getModel()
+	 * @generated
+	 */
+	EReference getModel_Schedulers();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.SampleSimulation.Runnable <em>Runnable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Runnable</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Runnable
+	 * @generated
+	 */
+	EClass getRunnable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.SampleSimulation.Runnable#getLabels <em>Labels</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Labels</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Runnable#getLabels()
+	 * @see #getRunnable()
+	 * @generated
+	 */
+	EReference getRunnable_Labels();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.SampleSimulation.Runnable#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Runnable#getName()
+	 * @see #getRunnable()
+	 * @generated
+	 */
+	EAttribute getRunnable_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.SampleSimulation.Label <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Label</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Label
+	 * @generated
+	 */
+	EClass getLabel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.SampleSimulation.Label#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Label#getName()
+	 * @see #getLabel()
+	 * @generated
+	 */
+	EAttribute getLabel_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.SampleSimulation.Memory <em>Memory</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Memory</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Memory
+	 * @generated
+	 */
+	EClass getMemory();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.SampleSimulation.Memory#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Memory#getName()
+	 * @see #getMemory()
+	 * @generated
+	 */
+	EAttribute getMemory_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.SampleSimulation.Scheduler <em>Scheduler</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Scheduler</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Scheduler
+	 * @generated
+	 */
+	EClass getScheduler();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.SampleSimulation.Scheduler#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.app4mc.SampleSimulation.Scheduler#getName()
+	 * @see #getScheduler()
+	 * @generated
+	 */
+	EAttribute getScheduler_Name();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SimulationFactory getSimulationFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl <em>Model</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.ModelImpl
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getModel()
+		 * @generated
+		 */
+		EClass MODEL = eINSTANCE.getModel();
+
+		/**
+		 * The meta object literal for the '<em><b>Runnables</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MODEL__RUNNABLES = eINSTANCE.getModel_Runnables();
+
+		/**
+		 * The meta object literal for the '<em><b>Labels</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MODEL__LABELS = eINSTANCE.getModel_Labels();
+
+		/**
+		 * The meta object literal for the '<em><b>Memories</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MODEL__MEMORIES = eINSTANCE.getModel_Memories();
+
+		/**
+		 * The meta object literal for the '<em><b>Schedulers</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MODEL__SCHEDULERS = eINSTANCE.getModel_Schedulers();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl <em>Runnable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getRunnable()
+		 * @generated
+		 */
+		EClass RUNNABLE = eINSTANCE.getRunnable();
+
+		/**
+		 * The meta object literal for the '<em><b>Labels</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference RUNNABLE__LABELS = eINSTANCE.getRunnable_Labels();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RUNNABLE__NAME = eINSTANCE.getRunnable_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.app4mc.SampleSimulation.impl.LabelImpl <em>Label</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.LabelImpl
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getLabel()
+		 * @generated
+		 */
+		EClass LABEL = eINSTANCE.getLabel();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LABEL__NAME = eINSTANCE.getLabel_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.app4mc.SampleSimulation.impl.MemoryImpl <em>Memory</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.MemoryImpl
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getMemory()
+		 * @generated
+		 */
+		EClass MEMORY = eINSTANCE.getMemory();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MEMORY__NAME = eINSTANCE.getMemory_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.app4mc.SampleSimulation.impl.SchedulerImpl <em>Scheduler</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SchedulerImpl
+		 * @see org.eclipse.app4mc.SampleSimulation.impl.SimulationPackageImpl#getScheduler()
+		 * @generated
+		 */
+		EClass SCHEDULER = eINSTANCE.getScheduler();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SCHEDULER__NAME = eINSTANCE.getScheduler_Name();
+
+	}
+
+} //SimulationPackage
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/LabelImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/LabelImpl.java
new file mode 100644
index 0000000..e2e5fe9
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/LabelImpl.java
@@ -0,0 +1,173 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.LabelImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LabelImpl extends MinimalEObjectImpl.Container implements Label {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LabelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SimulationPackage.Literals.LABEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SimulationPackage.LABEL__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SimulationPackage.LABEL__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SimulationPackage.LABEL__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.LABEL__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.LABEL__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //LabelImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/MemoryImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/MemoryImpl.java
new file mode 100644
index 0000000..75bb6d5
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/MemoryImpl.java
@@ -0,0 +1,173 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Memory</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.MemoryImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MemoryImpl extends MinimalEObjectImpl.Container implements Memory {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MemoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SimulationPackage.Literals.MEMORY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SimulationPackage.MEMORY__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SimulationPackage.MEMORY__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SimulationPackage.MEMORY__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.MEMORY__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.MEMORY__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MemoryImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/ModelImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/ModelImpl.java
new file mode 100644
index 0000000..1f34212
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/ModelImpl.java
@@ -0,0 +1,272 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.Model;
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl#getRunnables <em>Runnables</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl#getLabels <em>Labels</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl#getMemories <em>Memories</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.ModelImpl#getSchedulers <em>Schedulers</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model {
+	/**
+	 * The cached value of the '{@link #getRunnables() <em>Runnables</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRunnables()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<org.eclipse.app4mc.SampleSimulation.Runnable> runnables;
+
+	/**
+	 * The cached value of the '{@link #getLabels() <em>Labels</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabels()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Label> labels;
+
+	/**
+	 * The cached value of the '{@link #getMemories() <em>Memories</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMemories()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Memory> memories;
+
+	/**
+	 * The cached value of the '{@link #getSchedulers() <em>Schedulers</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchedulers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Scheduler> schedulers;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ModelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SimulationPackage.Literals.MODEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<org.eclipse.app4mc.SampleSimulation.Runnable> getRunnables() {
+		if (runnables == null) {
+			runnables = new EObjectContainmentEList<org.eclipse.app4mc.SampleSimulation.Runnable>(org.eclipse.app4mc.SampleSimulation.Runnable.class, this, SimulationPackage.MODEL__RUNNABLES);
+		}
+		return runnables;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Label> getLabels() {
+		if (labels == null) {
+			labels = new EObjectContainmentEList<Label>(Label.class, this, SimulationPackage.MODEL__LABELS);
+		}
+		return labels;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Memory> getMemories() {
+		if (memories == null) {
+			memories = new EObjectContainmentEList<Memory>(Memory.class, this, SimulationPackage.MODEL__MEMORIES);
+		}
+		return memories;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Scheduler> getSchedulers() {
+		if (schedulers == null) {
+			schedulers = new EObjectContainmentEList<Scheduler>(Scheduler.class, this, SimulationPackage.MODEL__SCHEDULERS);
+		}
+		return schedulers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SimulationPackage.MODEL__RUNNABLES:
+				return ((InternalEList<?>)getRunnables()).basicRemove(otherEnd, msgs);
+			case SimulationPackage.MODEL__LABELS:
+				return ((InternalEList<?>)getLabels()).basicRemove(otherEnd, msgs);
+			case SimulationPackage.MODEL__MEMORIES:
+				return ((InternalEList<?>)getMemories()).basicRemove(otherEnd, msgs);
+			case SimulationPackage.MODEL__SCHEDULERS:
+				return ((InternalEList<?>)getSchedulers()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SimulationPackage.MODEL__RUNNABLES:
+				return getRunnables();
+			case SimulationPackage.MODEL__LABELS:
+				return getLabels();
+			case SimulationPackage.MODEL__MEMORIES:
+				return getMemories();
+			case SimulationPackage.MODEL__SCHEDULERS:
+				return getSchedulers();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SimulationPackage.MODEL__RUNNABLES:
+				getRunnables().clear();
+				getRunnables().addAll((Collection<? extends org.eclipse.app4mc.SampleSimulation.Runnable>)newValue);
+				return;
+			case SimulationPackage.MODEL__LABELS:
+				getLabels().clear();
+				getLabels().addAll((Collection<? extends Label>)newValue);
+				return;
+			case SimulationPackage.MODEL__MEMORIES:
+				getMemories().clear();
+				getMemories().addAll((Collection<? extends Memory>)newValue);
+				return;
+			case SimulationPackage.MODEL__SCHEDULERS:
+				getSchedulers().clear();
+				getSchedulers().addAll((Collection<? extends Scheduler>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.MODEL__RUNNABLES:
+				getRunnables().clear();
+				return;
+			case SimulationPackage.MODEL__LABELS:
+				getLabels().clear();
+				return;
+			case SimulationPackage.MODEL__MEMORIES:
+				getMemories().clear();
+				return;
+			case SimulationPackage.MODEL__SCHEDULERS:
+				getSchedulers().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.MODEL__RUNNABLES:
+				return runnables != null && !runnables.isEmpty();
+			case SimulationPackage.MODEL__LABELS:
+				return labels != null && !labels.isEmpty();
+			case SimulationPackage.MODEL__MEMORIES:
+				return memories != null && !memories.isEmpty();
+			case SimulationPackage.MODEL__SCHEDULERS:
+				return schedulers != null && !schedulers.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ModelImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/RunnableImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/RunnableImpl.java
new file mode 100644
index 0000000..bf6f305
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/RunnableImpl.java
@@ -0,0 +1,234 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Runnable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl#getLabels <em>Labels</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.RunnableImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RunnableImpl extends MinimalEObjectImpl.Container implements org.eclipse.app4mc.SampleSimulation.Runnable {
+	/**
+	 * The cached value of the '{@link #getLabels() <em>Labels</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabels()
+	 * @generated
+	 * @ordered
+	 */
+	protected Label labels;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RunnableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SimulationPackage.Literals.RUNNABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Label getLabels() {
+		if (labels != null && labels.eIsProxy()) {
+			InternalEObject oldLabels = (InternalEObject)labels;
+			labels = (Label)eResolveProxy(oldLabels);
+			if (labels != oldLabels) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SimulationPackage.RUNNABLE__LABELS, oldLabels, labels));
+			}
+		}
+		return labels;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Label basicGetLabels() {
+		return labels;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabels(Label newLabels) {
+		Label oldLabels = labels;
+		labels = newLabels;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SimulationPackage.RUNNABLE__LABELS, oldLabels, labels));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SimulationPackage.RUNNABLE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SimulationPackage.RUNNABLE__LABELS:
+				if (resolve) return getLabels();
+				return basicGetLabels();
+			case SimulationPackage.RUNNABLE__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SimulationPackage.RUNNABLE__LABELS:
+				setLabels((Label)newValue);
+				return;
+			case SimulationPackage.RUNNABLE__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.RUNNABLE__LABELS:
+				setLabels((Label)null);
+				return;
+			case SimulationPackage.RUNNABLE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.RUNNABLE__LABELS:
+				return labels != null;
+			case SimulationPackage.RUNNABLE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //RunnableImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SchedulerImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SchedulerImpl.java
new file mode 100644
index 0000000..aa22fda
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SchedulerImpl.java
@@ -0,0 +1,173 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Scheduler</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.SampleSimulation.impl.SchedulerImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SchedulerImpl extends MinimalEObjectImpl.Container implements Scheduler {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SchedulerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SimulationPackage.Literals.SCHEDULER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SimulationPackage.SCHEDULER__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SimulationPackage.SCHEDULER__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SimulationPackage.SCHEDULER__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.SCHEDULER__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SimulationPackage.SCHEDULER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SchedulerImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationFactoryImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationFactoryImpl.java
new file mode 100644
index 0000000..cb65d7e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationFactoryImpl.java
@@ -0,0 +1,154 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.Model;
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SimulationFactoryImpl extends EFactoryImpl implements SimulationFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SimulationFactory init() {
+		try {
+			SimulationFactory theSimulationFactory = (SimulationFactory)EPackage.Registry.INSTANCE.getEFactory(SimulationPackage.eNS_URI);
+			if (theSimulationFactory != null) {
+				return theSimulationFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SimulationFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SimulationFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SimulationPackage.MODEL: return createModel();
+			case SimulationPackage.RUNNABLE: return createRunnable();
+			case SimulationPackage.LABEL: return createLabel();
+			case SimulationPackage.MEMORY: return createMemory();
+			case SimulationPackage.SCHEDULER: return createScheduler();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Model createModel() {
+		ModelImpl model = new ModelImpl();
+		return model;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.app4mc.SampleSimulation.Runnable createRunnable() {
+		RunnableImpl runnable = new RunnableImpl();
+		return runnable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Label createLabel() {
+		LabelImpl label = new LabelImpl();
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Memory createMemory() {
+		MemoryImpl memory = new MemoryImpl();
+		return memory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Scheduler createScheduler() {
+		SchedulerImpl scheduler = new SchedulerImpl();
+		return scheduler;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SimulationPackage getSimulationPackage() {
+		return (SimulationPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static SimulationPackage getPackage() {
+		return SimulationPackage.eINSTANCE;
+	}
+
+} //SimulationFactoryImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationPackageImpl.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationPackageImpl.java
new file mode 100644
index 0000000..d63507f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/impl/SimulationPackageImpl.java
@@ -0,0 +1,359 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.impl;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.Model;
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SimulationPackageImpl extends EPackageImpl implements SimulationPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass modelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass runnableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass labelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass memoryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass schedulerEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SimulationPackageImpl() {
+		super(eNS_URI, SimulationFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link SimulationPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SimulationPackage init() {
+		if (isInited) return (SimulationPackage)EPackage.Registry.INSTANCE.getEPackage(SimulationPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SimulationPackageImpl theSimulationPackage = (SimulationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SimulationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SimulationPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theSimulationPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSimulationPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSimulationPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(SimulationPackage.eNS_URI, theSimulationPackage);
+		return theSimulationPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getModel() {
+		return modelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getModel_Runnables() {
+		return (EReference)modelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getModel_Labels() {
+		return (EReference)modelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getModel_Memories() {
+		return (EReference)modelEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getModel_Schedulers() {
+		return (EReference)modelEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRunnable() {
+		return runnableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRunnable_Labels() {
+		return (EReference)runnableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRunnable_Name() {
+		return (EAttribute)runnableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLabel() {
+		return labelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getLabel_Name() {
+		return (EAttribute)labelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMemory() {
+		return memoryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMemory_Name() {
+		return (EAttribute)memoryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getScheduler() {
+		return schedulerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getScheduler_Name() {
+		return (EAttribute)schedulerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SimulationFactory getSimulationFactory() {
+		return (SimulationFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		modelEClass = createEClass(MODEL);
+		createEReference(modelEClass, MODEL__RUNNABLES);
+		createEReference(modelEClass, MODEL__LABELS);
+		createEReference(modelEClass, MODEL__MEMORIES);
+		createEReference(modelEClass, MODEL__SCHEDULERS);
+
+		runnableEClass = createEClass(RUNNABLE);
+		createEReference(runnableEClass, RUNNABLE__LABELS);
+		createEAttribute(runnableEClass, RUNNABLE__NAME);
+
+		labelEClass = createEClass(LABEL);
+		createEAttribute(labelEClass, LABEL__NAME);
+
+		memoryEClass = createEClass(MEMORY);
+		createEAttribute(memoryEClass, MEMORY__NAME);
+
+		schedulerEClass = createEClass(SCHEDULER);
+		createEAttribute(schedulerEClass, SCHEDULER__NAME);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getModel_Runnables(), this.getRunnable(), null, "runnables", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getModel_Labels(), this.getLabel(), null, "labels", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getModel_Memories(), this.getMemory(), null, "memories", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getModel_Schedulers(), this.getScheduler(), null, "schedulers", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(runnableEClass, org.eclipse.app4mc.SampleSimulation.Runnable.class, "Runnable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getRunnable_Labels(), this.getLabel(), null, "labels", null, 0, 1, org.eclipse.app4mc.SampleSimulation.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRunnable_Name(), ecorePackage.getEString(), "name", null, 0, 1, org.eclipse.app4mc.SampleSimulation.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(labelEClass, Label.class, "Label", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getLabel_Name(), ecorePackage.getEString(), "name", null, 0, 1, Label.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(memoryEClass, Memory.class, "Memory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMemory_Name(), ecorePackage.getEString(), "name", null, 0, 1, Memory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(schedulerEClass, Scheduler.class, "Scheduler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getScheduler_Name(), ecorePackage.getEString(), "name", null, 0, 1, Scheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SimulationPackageImpl
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationAdapterFactory.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationAdapterFactory.java
new file mode 100644
index 0000000..db6b30f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationAdapterFactory.java
@@ -0,0 +1,206 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.util;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.Model;
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage
+ * @generated
+ */
+public class SimulationAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SimulationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SimulationAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SimulationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SimulationSwitch<Adapter> modelSwitch =
+		new SimulationSwitch<Adapter>() {
+			@Override
+			public Adapter caseModel(Model object) {
+				return createModelAdapter();
+			}
+			@Override
+			public Adapter caseRunnable(org.eclipse.app4mc.SampleSimulation.Runnable object) {
+				return createRunnableAdapter();
+			}
+			@Override
+			public Adapter caseLabel(Label object) {
+				return createLabelAdapter();
+			}
+			@Override
+			public Adapter caseMemory(Memory object) {
+				return createMemoryAdapter();
+			}
+			@Override
+			public Adapter caseScheduler(Scheduler object) {
+				return createSchedulerAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.SampleSimulation.Model <em>Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.SampleSimulation.Model
+	 * @generated
+	 */
+	public Adapter createModelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.SampleSimulation.Runnable <em>Runnable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.SampleSimulation.Runnable
+	 * @generated
+	 */
+	public Adapter createRunnableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.SampleSimulation.Label <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.SampleSimulation.Label
+	 * @generated
+	 */
+	public Adapter createLabelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.SampleSimulation.Memory <em>Memory</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.SampleSimulation.Memory
+	 * @generated
+	 */
+	public Adapter createMemoryAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.SampleSimulation.Scheduler <em>Scheduler</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.SampleSimulation.Scheduler
+	 * @generated
+	 */
+	public Adapter createSchedulerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SimulationAdapterFactory
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationSwitch.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationSwitch.java
new file mode 100644
index 0000000..9250550
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/src/org/eclipse/app4mc/SampleSimulation/util/SimulationSwitch.java
@@ -0,0 +1,208 @@
+/**
+ * *******************************************************************************
+ *  * Copyright (c) 2017 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.SampleSimulation.util;
+
+import org.eclipse.app4mc.SampleSimulation.Label;
+import org.eclipse.app4mc.SampleSimulation.Memory;
+import org.eclipse.app4mc.SampleSimulation.Model;
+import org.eclipse.app4mc.SampleSimulation.Scheduler;
+import org.eclipse.app4mc.SampleSimulation.SimulationPackage;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.app4mc.SampleSimulation.SimulationPackage
+ * @generated
+ */
+public class SimulationSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SimulationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SimulationSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SimulationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SimulationPackage.MODEL: {
+				Model model = (Model)theEObject;
+				T result = caseModel(model);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SimulationPackage.RUNNABLE: {
+				org.eclipse.app4mc.SampleSimulation.Runnable runnable = (org.eclipse.app4mc.SampleSimulation.Runnable)theEObject;
+				T result = caseRunnable(runnable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SimulationPackage.LABEL: {
+				Label label = (Label)theEObject;
+				T result = caseLabel(label);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SimulationPackage.MEMORY: {
+				Memory memory = (Memory)theEObject;
+				T result = caseMemory(memory);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SimulationPackage.SCHEDULER: {
+				Scheduler scheduler = (Scheduler)theEObject;
+				T result = caseScheduler(scheduler);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseModel(Model object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Runnable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Runnable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRunnable(org.eclipse.app4mc.SampleSimulation.Runnable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Label</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Label</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLabel(Label object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Memory</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Memory</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMemory(Memory object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Scheduler</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Scheduler</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseScheduler(Scheduler object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //SimulationSwitch
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.classpath b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.classpath
@@ -0,0 +1,7 @@
+<?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/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.project b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.project
new file mode 100644
index 0000000..f216226
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.transformation.3rdparty.libs</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/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..67be3e3
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: 3rdparty
+Bundle-SymbolicName: org.eclipse.app4mc.transformation.3rdparty.libs
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: BOSCH
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ClassPath: .
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/build.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/build.properties
new file mode 100644
index 0000000..5113c5f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/build.properties
@@ -0,0 +1,3 @@
+bin.includes = META-INF/,\
+               .
+source.. = src/
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/lib/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/lib/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/lib/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/pom.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/pom.xml
new file mode 100644
index 0000000..d31ca87
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/pom.xml
@@ -0,0 +1,83 @@
+<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>./com.bosch.m2m.simulation.build</relativePath>
+		<groupId>m2m</groupId>
+		<artifactId>com.bosch.m2m.simulation.build</artifactId>
+		<version>1.0.0.qualifier</version>
+	</parent>
+
+	<artifactId>com.bosch.m2m.app4mc.simulation.3rdparty</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>
+	<groupId>m2m</groupId>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/src/.gitignore b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/src/.gitignore
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/src/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.classpath b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.classpath
new file mode 100644
index 0000000..428337e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.classpath
@@ -0,0 +1,8 @@
+<?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="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
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
new file mode 100644
index 0000000..944a1c7
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.gitignore
@@ -0,0 +1,4 @@
+/bin/
+/target/
+/xtend-gen/
+/output
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.project b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.project
new file mode 100644
index 0000000..3615b5a
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.transformation.application</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product
new file mode 100644
index 0000000..a0bb177
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="APP4MCTransformation" id="org.eclipse.app4mc.transformation.application.product" application="org.eclipse.app4mc.transformation.application.application" useFeatures="false" includeLaunchers="true">
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <programArgs>--input.props ./input.properties
+      </programArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
+   </launcherArgs>
+
+   <windowImages/>
+
+
+   <launcher>
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
+   <plugins>
+      <plugin id="com.bosch.m2m.app4mc.m2m.transformation.core"/>
+      <plugin id="com.google.guava"/>
+      <plugin id="com.google.inject"/>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="javax.xml"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.batik.util.gui"/>
+      <plugin id="org.apache.commons.cli"/>
+      <plugin id="org.apache.commons.jxpath"/>
+      <plugin id="org.apache.commons.lang"/>
+      <plugin id="org.apache.commons.logging"/>
+      <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.eclipse.app4mc.amalthea.model"/>
+      <plugin id="org.eclipse.app4mc.amalthea.sphinx"/>
+      <plugin id="org.eclipse.app4mc.sample.simulation.model"/>
+      <plugin id="org.eclipse.app4mc.transformation.3rdparty.libs"/>
+      <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.java7" fragment="true"/>
+      <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.runtime.compatibility.registry" fragment="true"/>
+      <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.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.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.cdo.ecore.retrofit" fragment="true"/>
+      <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.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.registry"/>
+      <plugin id="org.eclipse.equinox.security"/>
+      <plugin id="org.eclipse.equinox.security.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.equinox.util"/>
+      <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.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.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>
+
+
+   <preferencesInfo>
+      <targetfile overwrite="false"/>
+   </preferencesInfo>
+
+   <cssInfo>
+   </cssInfo>
+
+</product>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product.launch b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product.launch
new file mode 100644
index 0000000..2d44030
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/APP4MC_Transformation.product.launch
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.app4mc.transformation.application.application"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="true"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/APP4MC_Transformation.product"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-APP4MC_Transformation.product"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog --input.props ./input.properties"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:org.eclipse.app4mc.transformation.application}"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.app4mc.transformation.application.product"/>
+<stringAttribute key="productFile" value="\org.eclipse.app4mc.transformation.application\APP4MC_Transformation.product"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.app@default:default,org.eclipse.xtend.lib.macro@default:default,javax.xml@default:default,org.eclipse.equinox.common@default:default,com.ibm.icu@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.osgi.compatibility.state@default:default,org.eclipse.sphinx.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.tukaani.xz@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.emf.ecore.change@default:default,org.w3c.dom.svg@default:default,org.eclipse.equinox.bidi@default:default,com.google.inject@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.ui.forms@default:default,org.eclipse.e4.core.di@default:default,org.apache.commons.logging@default:default,org.apache.xml.serializer@default:default,org.eclipse.app4mc.amalthea.sphinx@default:default,org.eclipse.core.variables@default:default,org.eclipse.sphinx.platform.ui@default:default,org.eclipse.sphinx.emf.workspace@default:default,org.apache.commons.cli@default:default,org.eclipse.equinox.security@default:default,org.eclipse.compare.core@default:default,org.apache.batik.css@default:default,javax.annotation@default:default,org.apache.commons.jxpath@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.util@default:default,org.eclipse.core.runtime@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.core.jobs@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.core.expressions@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.xtend.lib@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.jface.text@default:default,org.eclipse.equinox.ds@default:default,org.eclipse.sphinx.emf.editors.forms@default:default,org.eclipse.emf@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.equinox.security.win32.x86_64@default:default,org.eclipse.equinox.registry@default:default,org.w3c.css.sac@default:default,org.eclipse.core.runtime.compatibility.registry@default:default,org.apache.commons.lang@default:default,org.w3c.dom.smil@default:default,org.eclipse.osgi@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.ui.win32@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.core.databinding@default:default,org.w3c.dom.events@default:default,org.apache.xml.resolver@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.ui.views@default:default,com.google.guava@default:default,org.eclipse.emf.common@default:default,org.eclipse.core.filesystem.java7@default:default,org.eclipse.e4.ui.services@default:default,org.apache.batik.util@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.help@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.ui.ide@default:default,javax.inject@default:default,org.apache.xerces@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.text@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.app4mc.amalthea.model@default:default,org.jdom@default:default,org.eclipse.sphinx.emf.ui@default:default,org.eclipse.osgi.services@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.filesystem.win32.x86_64@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.swt.win32.win32.x86_64@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.swt@default:default,org.eclipse.emf.ecore.xcore.lib@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.resources@default:default,org.eclipse.jface@default:default,org.eclipse.sphinx.emf.editors@default:default,org.apache.log4j@default:default,org.apache.batik.util.gui@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.sphinx.emf@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.emf.validation@default:default,org.eclipse.ui.console@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.ui@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.core.resources.win32.x86_64@default:default,org.eclipse.sphinx.platform@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,"/>
+<stringAttribute key="selected_workspace_plugins" value="com.bosch.m2m.app4mc.m2m.transformation.core@default:default,org.eclipse.app4mc.sample.simulation.model@default:default,org.eclipse.app4mc.transformation.3rdparty.libs@default:default,org.eclipse.app4mc.transformation.application@default:default,org.eclipse.app4mc.transformation.extensions@default:default,"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
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
new file mode 100644
index 0000000..85e38e6
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: simulation
+Bundle-SymbolicName: org.eclipse.app4mc.transformation.application;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: BOSCH
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.sphinx.emf,
+ org.eclipse.sphinx.emf.editors,
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro,
+ org.eclipse.sphinx.emf.editors.forms,
+ com.google.inject;bundle-version="3.0.0",
+ org.apache.log4j;bundle-version="1.2.15",
+ org.eclipse.app4mc.transformation.extensions;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: com.bosch.m2m.app4mc.transformation.application
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/build.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/build.properties
new file mode 100644
index 0000000..80ea72e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+           xtend-gen/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties
new file mode 100644
index 0000000..b9be80f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties
@@ -0,0 +1,4 @@
+amalthea_models_folder=./input/amalthea_models
+simulation_models_folder=./output/simulation_models
+simulation_c_code_folder=./output/simulation_models/c_code
+log_file=./output/m2m_transformation.txt
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input/amalthea_models/AMALTHEA_Democar.amxmi b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input/amalthea_models/AMALTHEA_Democar.amxmi
new file mode 100644
index 0000000..f8f5ba7
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input/amalthea_models/AMALTHEA_Democar.amxmi
@@ -0,0 +1,1054 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.8.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <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>
+      <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>
+    </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>
+    </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>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </runnables>
+    <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <runnableItems xsi:type="am:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </runnables>
+    <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <runnableItems xsi:type="am:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </runnables>
+    <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <runnableItems xsi:type="am:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </runnables>
+    <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
+      <runnableItems xsi:type="am:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
+    </runnables>
+    <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
+      <runnableItems xsi:type="am:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </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"/>
+    </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:RunnableInstructions">
+        <default xsi:type="am:InstructionsDeviation">
+          <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>
+        </default>
+      </runnableItems>
+      <runnableItems xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
+    </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>
+    <coreTypes name="Default" bitWidth="0" instructionsPerCycle="1.0"/>
+    <system name="Democar">
+      <ecus name="ECU_1">
+        <microcontrollers name="Processor_1">
+          <memories name="Mem_1">
+            <ports xsi:type="am:ComplexPort" name="Mem_1_port" master="false" bitWidth="16" baseAddress="0" addressRange="0" direction="R" writeCycles="10" readCycles="10" schedValue="0"/>
+          </memories>
+          <cores name="Core_1" coreType="Default?type=CoreType" lockstepGroup="0">
+            <prescaler name="Core_1_prescaler" clockRatio="0.0" quartz="QuartzOscillator_1?type=Quartz"/>
+          </cores>
+        </microcontrollers>
+      </ecus>
+      <quartzes name="QuartzOscillator_1" type="STATIC">
+        <frequency unit="MHz" value="200.0"/>
+      </quartzes>
+    </system>
+  </hwModel>
+  <osModel>
+    <operatingSystems name="OperatingSystem">
+      <taskSchedulers name="Task_Scheduler_Core_1">
+        <schedulingAlgorithm xsi:type="am:OSEK"/>
+      </taskSchedulers>
+      <osDataConsistency/>
+    </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>
+  <mappingModel>
+    <schedulerAllocation scheduler="Task_Scheduler_Core_1?type=TaskScheduler" responsibility="Core_1?type=Core" executingCore="Core_1?type=Core"/>
+    <taskAllocation task="Task_10MS?type=Task" scheduler="Task_Scheduler_Core_1?type=TaskScheduler"/>
+  </mappingModel>
+</am:Amalthea>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/plugin.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/plugin.xml
new file mode 100644
index 0000000..df854ed
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         id="application"
+         point="org.eclipse.core.runtime.applications">
+      <application
+            visible="true">
+         <run
+               class="com.bosch.m2m.app4mc.transformation.application.Application">
+         </run>
+      </application>
+   </extension>
+ 
+   <extension
+         id="product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            application="org.eclipse.app4mc.transformation.application.application"
+            name="APP4MCTransformation">
+         <property
+               name="appName"
+               value="APP4MCTransformation">
+         </property>
+      </product>
+   </extension>
+
+</plugin>
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
new file mode 100644
index 0000000..a47033c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/pom.xml
@@ -0,0 +1,83 @@
+<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>./com.bosch.m2m.simulation.build</relativePath>
+		<groupId>m2m</groupId>
+		<artifactId>com.bosch.m2m.simulation.build</artifactId>
+		<version>1.0.0.qualifier</version>
+	</parent>
+
+	<artifactId>com.bosch.m2m.app4mc.simulation</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>
+	<groupId>m2m</groupId>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/Application.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/Application.java
new file mode 100644
index 0000000..ae98be3
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/Application.java
@@ -0,0 +1,95 @@
+
+
+package com.bosch.m2m.app4mc.transformation.application;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.apache.log4j.FileAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+
+/**
+ * This class controls all aspects of the application's execution
+ */
+public class Application implements IApplication {
+
+	@Override
+	public Object start(IApplicationContext context) throws Exception {
+		
+		Properties inputParameters = getInputParameters(context);
+		
+		if(inputParameters!=null){
+			
+			Logger logger = getLogger(inputParameters);
+			
+			logger.info("Starting Model transformation ...");
+			
+			ExecuteTransformation.start( logger, inputParameters);
+			
+			logger.removeAllAppenders();
+		}else{
+			System.out.println("ERROR !! Unable to start model to model transformation as required parameters are not set in input properties file");
+			
+			return new Integer(-1);
+		}
+		
+		return IApplication.EXIT_OK;
+	}
+
+	private Logger getLogger(Properties inputParameters) {
+
+		String logFilePath = inputParameters.getProperty("log_file");
+		
+		org.apache.log4j.Logger logger =LogManager.getLogger("com.bosch.m2m.app4mc.simulation");
+		
+		logger.setLevel(Level.INFO);
+		try {
+			logger.removeAllAppenders();
+			/*- If required use the following options in pattern layout %d %-5p %t %c (%F:%L) %m" */
+			logger.addAppender(new FileAppender(new PatternLayout("%d{yyyy-MM-dd_HH_mm_ss} - %-5p:  %m%n"), logFilePath,false));
+			
+		} catch (IOException e) {
+			
+			System.out.println("invalid log file path "+logFilePath+" specified in the input.properties file ");
+			e.printStackTrace();
+		}
+		
+		return logger;
+	}
+
+	private Properties getInputParameters(IApplicationContext context) throws IOException, FileNotFoundException {
+		
+		String property = System.getProperty("user.dir");
+		
+		System.out.println(property);
+		String[] args = (String[]) context.getArguments().get("application.args");
+		    
+		if(args !=null && args.length>0){
+			
+		String inputPropsFile=	args[1];
+		
+		File file = new File(inputPropsFile);
+		
+		Properties properties = new Properties();
+		
+		properties.load(new FileInputStream(file));
+		
+		return properties;
+		}
+		
+		return null;
+	}
+
+	@Override
+	public void stop() {
+		// nothing to do
+	}
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExecuteTransformation.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExecuteTransformation.xtend
new file mode 100644
index 0000000..458f97f
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExecuteTransformation.xtend
@@ -0,0 +1,77 @@
+package com.bosch.m2m.app4mc.transformation.application
+
+import com.google.inject.Guice
+import com.google.inject.Injector
+import java.util.Properties
+import org.apache.log4j.Logger
+import org.eclipse.app4mc.transformation.extensions.CustomObjectsStore
+import org.eclipse.app4mc.transformation.extensions.base.templates.RootTransformer
+
+class ExecuteTransformation {
+	
+	def static void start(Logger logger, Properties properties) {
+		
+		
+		
+		var module= ExtensionExecution.getInjectionModuleFromExtension(logger);
+
+
+		if(module == null){
+			
+			var msg= "org.eclipse.app4mc.transformation.extensions.module extension is not defined by any plugin.\n Without this extension M2M or M2T can't be proceeded"
+			
+			logger.error(msg, new NullPointerException(msg))
+			
+		}
+		
+			
+		val injector=Guice::createInjector(module)
+		
+ 
+		
+		/*-- Injection of created objects into Google Guice --  */
+		
+			injectPreCreatedObjects(injector, properties)
+		
+		/*------------------------------------------------------- */
+
+		val mainGenerator=injector.getInstance(typeof(RootTransformer));
+			
+
+		/*- M2M transformation */		
+		var m2mConfig= ExtensionExecution.getM2MExtension(logger);
+		
+		if(m2mConfig !=null){
+
+			m2mConfig.properties = properties			
+			
+			mainGenerator.m2mTransformation(m2mConfig.inputResourceSet,m2mConfig.ouputResourceSet)
+		}
+		
+
+		/*- M2T transformation */		
+		var m2tConfig= ExtensionExecution.getM2TFromExtension(logger);
+		
+		
+		if(m2tConfig!=null){
+			
+			m2tConfig.properties =  properties
+
+			mainGenerator.m2tTransformation(m2tConfig.inputResourceSet)
+		}
+		
+		
+	}
+	
+	protected def static void injectPreCreatedObjects(Injector injector, Object... inputObjs) {
+		
+		val customObjectsStore = injector.getInstance(CustomObjectsStore)
+		
+		for (element : inputObjs) {
+			customObjectsStore.injectMembers(element.class,element)
+		}
+	}
+	
+	
+	
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExtensionExecution.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExtensionExecution.java
new file mode 100644
index 0000000..a40dca6
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/src/com/bosch/m2m/app4mc/transformation/application/ExtensionExecution.java
@@ -0,0 +1,195 @@
+package com.bosch.m2m.app4mc.transformation.application;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.log4j.Logger;
+import org.eclipse.app4mc.transformation.extensions.AbstractM2MInjectorModule;
+import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToModelTransformation;
+import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToTextTransformation;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+public class ExtensionExecution {
+
+	
+	
+	public static IModelToTextTransformation getM2TFromExtension(Logger logger) throws CoreException {
+
+		final IExtensionRegistry registry = Platform.getExtensionRegistry();
+
+		final IExtensionPoint extensionPoint = registry
+				.getExtensionPoint("org.eclipse.app4mc.transformation.extensions.m2t");
+
+		final IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();
+
+		Map<String, IModelToTextTransformation> id_obj_Map = new LinkedHashMap<String, IModelToTextTransformation>();
+
+		for (final IConfigurationElement iConfigurationElement : extensions) {
+
+			final String id = iConfigurationElement.getAttribute("id");
+
+			final String isEnabled = iConfigurationElement.getAttribute("enabled");
+
+			if (Boolean.parseBoolean(isEnabled)) {
+
+				final Object module = iConfigurationElement.createExecutableExtension("class");
+
+				id_obj_Map.put(id, (IModelToTextTransformation) module);
+
+			}
+
+		}
+
+		if (id_obj_Map.size() > 1) {
+
+			String enabledIds = "--- "+id_obj_Map.keySet().stream().filter(s->(s!=null && !s.isEmpty())).collect(Collectors.joining(","+System.getProperty("line.separator")+"--- "));
+			
+			logger.error(
+					"Multiple M2T configurations are enabled. Based on the standard - only one configuration for M2T transofrmation -  should be enabled for a specific product"
+							+ System.getProperty("line.separator")+"Below are the M2T configuration ids which are enabled : "+ System.getProperty("line.separator")+enabledIds);
+		
+			String firstM2T_Id = id_obj_Map.keySet().iterator().next();
+			
+			logger.warn("** M2T configuration id : \"" + firstM2T_Id + "\" is enabled");
+			
+			return id_obj_Map.get(firstM2T_Id);
+
+		} else if (id_obj_Map.size() == 1) {
+
+			String id = id_obj_Map.keySet().iterator().next();
+
+			logger.info("** M2T Configuration id : \"" + id + "\" is enabled");
+			
+			return id_obj_Map.get(id);
+		} 
+		
+		
+		/*- default case */
+		return null;
+
+	}
+	
+	
+	
+	public static IModelToModelTransformation getM2MExtension(Logger logger) throws CoreException {
+
+		final IExtensionRegistry registry = Platform.getExtensionRegistry();
+
+		final IExtensionPoint extensionPoint = registry
+				.getExtensionPoint("org.eclipse.app4mc.transformation.extensions.m2m");
+
+		final IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();
+
+		Map<String, IModelToModelTransformation> id_Obj_Map = new LinkedHashMap<String, IModelToModelTransformation>();
+
+		for (final IConfigurationElement iConfigurationElement : extensions) {
+
+			final String id = iConfigurationElement.getAttribute("id");
+
+			final String isEnabled = iConfigurationElement.getAttribute("enabled");
+
+			if (Boolean.parseBoolean(isEnabled)) {
+
+				final Object module = iConfigurationElement.createExecutableExtension("class");
+
+				id_Obj_Map.put(id, (IModelToModelTransformation) module);
+
+			}
+
+		}
+
+		if (id_Obj_Map.size() > 1) {
+
+			String enabledIds = "--- "+id_Obj_Map.keySet().stream().filter(s->(s!=null && !s.isEmpty())).collect(Collectors.joining(","+System.getProperty("line.separator")+"--- "));
+			
+			logger.error(
+					"Multiple M2M configurations are enabled. Based on the standard only one M2M configurations should be enabled for a specific product"
+							+ System.getProperty("line.separator")+"Below are the M2M module ids which are enabled : "+ System.getProperty("line.separator")+enabledIds);
+		
+			String firstM2M_moduleId = id_Obj_Map.keySet().iterator().next();
+			
+			logger.warn("** M2M configuration id : \"" + firstM2M_moduleId + "\" is enabled");
+			
+			return id_Obj_Map.get(firstM2M_moduleId);
+
+		} else if (id_Obj_Map.size() == 1) {
+
+			String id = id_Obj_Map.keySet().iterator().next();
+
+			logger.info("** M2M configuration id : \"" + id + "\" is enabled");
+			
+			return id_Obj_Map.get(id);
+		} 
+		
+		
+		/*- default case */
+		return null;
+
+	}
+	
+	
+	public static AbstractM2MInjectorModule getInjectionModuleFromExtension(Logger logger) throws CoreException {
+
+		final IExtensionRegistry registry = Platform.getExtensionRegistry();
+
+		final IExtensionPoint extensionPoint = registry
+				.getExtensionPoint("org.eclipse.app4mc.transformation.extensions.module");
+
+		final IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();
+
+		Map<String, AbstractM2MInjectorModule> id_Module_Map = new LinkedHashMap<String, AbstractM2MInjectorModule>();
+
+		for (final IConfigurationElement iConfigurationElement : extensions) {
+
+			final String id = iConfigurationElement.getAttribute("id");
+
+			final String isEnabled = iConfigurationElement.getAttribute("enabled");
+
+			if (Boolean.parseBoolean(isEnabled)) {
+
+				final Object module = iConfigurationElement.createExecutableExtension("class");
+
+				id_Module_Map.put(id, (AbstractM2MInjectorModule) module);
+
+			}
+
+		}
+
+		if (id_Module_Map.size() > 1) {
+
+			String enabledIds = "--- "+id_Module_Map.keySet().stream().filter(s->(s!=null && !s.isEmpty())).collect(Collectors.joining(","+System.getProperty("line.separator")+"--- "));
+			
+			logger.error(
+					"Multiple M2M injector modules are enabled. Based on the standard configuration for M2M transofrmation - only one module should be enabled for a specific product"
+							+ System.getProperty("line.separator")+"Below are the M2M module ids which are enabled : "+ System.getProperty("line.separator")+enabledIds);
+		
+			String firstM2M_moduleId = id_Module_Map.keySet().iterator().next();
+			
+			logger.warn("** M2M injector module of id : \"" + firstM2M_moduleId + "\" is enabled");
+			
+			return id_Module_Map.get(firstM2M_moduleId);
+
+		} else if (id_Module_Map.size() == 1) {
+
+			String id = id_Module_Map.keySet().iterator().next();
+
+			logger.info("** M2M injector module of id : \"" + id + "\" is enabled");
+			
+			return id_Module_Map.get(id);
+			
+			
+		}else{
+			logger.info("** Default M2M injector module is enabled");
+		}
+		
+		
+		/*- default case */
+		return null;
+
+	}
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.classpath b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.classpath
new file mode 100644
index 0000000..428337e
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.classpath
@@ -0,0 +1,8 @@
+<?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="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
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
new file mode 100644
index 0000000..d3fb94c
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/target/
+/xtend-gen/
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.project b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.project
new file mode 100644
index 0000000..d8f4d34
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.transformation.extensions</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/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
new file mode 100644
index 0000000..ee615b0
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Extensions
+Bundle-SymbolicName: org.eclipse.app4mc.transformation.extensions;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: BOSCH
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: com.google.inject;bundle-version="3.0.0";visibility:=reexport,
+ org.apache.log4j;bundle-version="1.2.15",
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.xtext.xbase.lib;visibility:=reexport
+Export-Package: org.eclipse.app4mc.transformation.extensions,
+ org.eclipse.app4mc.transformation.extensions.base.templates,
+ org.eclipse.app4mc.transformation.extensions.executiontype
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/build.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/plugin.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/plugin.xml
new file mode 100644
index 0000000..7ae7ea6
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/plugin.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension-point id="org.eclipse.app4mc.transformation.extensions.module" name="extensions.module" schema="schema/org.eclipse.app4mc.transformation.extensions.module.exsd"/>
+   <extension-point id="org.eclipse.app4mc.transformation.extensions.m2t" name="extensions.m2t" schema="schema/org.eclipse.app4mc.transformation.extensions.m2t.exsd"/>
+   <extension-point id="org.eclipse.app4mc.transformation.extensions.m2m" name="extensions.m2m" schema="schema/org.eclipse.app4mc.transformation.extensions.m2m.exsd"/>
+
+</plugin>
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
new file mode 100644
index 0000000..979c4ee
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/pom.xml
@@ -0,0 +1,83 @@
+<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>./com.bosch.m2m.simulation.build</relativePath>
+		<groupId>m2m</groupId>
+		<artifactId>com.bosch.m2m.simulation.build</artifactId>
+		<version>1.0.0.qualifier</version>
+	</parent>
+
+	<artifactId>org.eclipse.app4mc.transformation.extensions</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>
+	<groupId>m2m</groupId>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2m.exsd b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2m.exsd
new file mode 100644
index 0000000..22bae05
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2m.exsd
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="com.bosch.m2m.app4mc.simulation.extensions" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="com.bosch.m2m.app4mc.simulation.extensions" id="com.bosch.m2m.app4mc.simulation.extensions.m2m" name="extensions.m2m"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="m2m"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="m2m">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="identifier"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":com.bosch.m2m.app4mc.simulation.extensions.executiontype.IModelToModelTransformation"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="enabled" type="boolean">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2t.exsd b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2t.exsd
new file mode 100644
index 0000000..b28d170
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.m2t.exsd
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="com.bosch.m2m.app4mc.simulation.extensions" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="com.bosch.m2m.app4mc.simulation.extensions" id="com.bosch.m2m.app4mc.simulation.extensions.m2t" name="extensions.m2t"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="m2t"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="m2t">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="identifier"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":com.bosch.m2m.app4mc.simulation.extensions.executiontype.IModelToTextTransformation"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="enabled" type="boolean" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.module.exsd b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.module.exsd
new file mode 100644
index 0000000..4860fa3
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/schema/org.eclipse.app4mc.transformation.extensions.module.exsd
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="com.bosch.m2m.app4mc.simulation.extensions" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="com.bosch.m2m.app4mc.simulation.extensions" id="com.bosch.m2m.app4mc.simulation.extensions.module" name="extensions.module"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="module"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="module">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="identifier"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="com.bosch.m2m.app4mc.simulation.extensions.AbstractM2MInjectorModule:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="enabled" type="boolean" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/AbstractM2MInjectorModule.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/AbstractM2MInjectorModule.java
new file mode 100644
index 0000000..ad3df4b
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/AbstractM2MInjectorModule.java
@@ -0,0 +1,21 @@
+package org.eclipse.app4mc.transformation.extensions;
+
+import com.google.inject.AbstractModule;
+
+public  abstract class  AbstractM2MInjectorModule  extends AbstractModule  {
+ 
+	
+	protected void initializeBaseConfiguration(){
+		bind(CustomObjectsStore.class).toInstance(new CustomObjectsStore ());
+	}
+	
+	
+	@Override
+	protected   void configure() {
+		initializeBaseConfiguration();
+	}
+ 
+	
+	
+	
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/CustomObjectsStore.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/CustomObjectsStore.xtend
new file mode 100644
index 0000000..fbff5b5
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/CustomObjectsStore.xtend
@@ -0,0 +1,22 @@
+package org.eclipse.app4mc.transformation.extensions
+
+import java.util.HashMap
+
+class CustomObjectsStore {
+	
+	private   var map=    new HashMap ();
+ 
+	
+	public   def <T> T getInstance(Object cls) {
+
+		val value = map.get(cls);
+
+		return value as T
+	}
+	
+	public    def <T> void injectMembers(Object  cls, T instance) {
+		map.put(cls, instance);
+
+	}
+	 
+}
\ 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
new file mode 100644
index 0000000..ec6dd0d
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/AbstractTransformer.xtend
@@ -0,0 +1,69 @@
+package org.eclipse.app4mc.transformation.extensions.base.templates
+
+import com.google.inject.Inject
+import java.util.Properties
+import org.apache.log4j.LogManager
+import org.apache.log4j.Logger
+import org.eclipse.app4mc.transformation.extensions.CustomObjectsStore
+
+public abstract  class AbstractTransformer {
+
+
+	@Inject public CustomObjectsStore customObjsStore
+	
+	
+	private Logger logger
+
+	private Properties properties
+	
+	/**
+	 * Provides Log4J logger which can be used by the corresponding Transformer classes.
+	 * Note: Root Logger is initialized during the startup and the corresponding Appenders are hooked to it accordingly.
+	 * In case, if user specific appenders are to be attached to the logger, this method should be overridden and new Appenders should be attached to the logger 
+	 * 
+	 */
+	protected def Logger getLogger() {
+		if (logger == null) {
+			logger = LogManager.getLogger("com.bosch.m2m.app4mc.simulation");
+		}
+		return logger
+	}
+
+	
+	protected def String getProperty(String propKey){
+	
+		if(properties==null){
+			
+			if(customObjsStore !=null){
+		 	 properties = customObjsStore.getInstance(Properties)
+				if(properties == null){
+				throw new NullPointerException("Properties object not set in CustomObjectsStore : Verify the custom Google Guice Module configuration ")
+				}
+				
+			}else{
+				throw new NullPointerException("CustomObjectsStore object not binded: Verify the custom Google Guice Module configuration ")
+			}
+		}	
+		
+		val value = properties.get(propKey)
+		
+		if(value == null){
+			throw new NullPointerException("Request input key : \""+ propKey + "\" not supplied in the input properties file")
+		}
+		
+		return value.toString
+		
+	}
+	
+	 
+
+/* 	public def doGenerate() '''
+	 
+		«  val instance = customObjsStore.getInstance(Properties)»
+		«instance.get("log_file")»
+		«getLogger.warn("logging info about transformation of :"+this.class.name)	»
+	 ----------> «this.class.name»
+	 ===============> «properties.get("log_file")»
+	'''
+*/
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/RootTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/RootTransformer.xtend
new file mode 100644
index 0000000..b779e11
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/base/templates/RootTransformer.xtend
@@ -0,0 +1,16 @@
+package org.eclipse.app4mc.transformation.extensions.base.templates
+
+import org.eclipse.emf.ecore.resource.ResourceSet
+
+public   class RootTransformer  extends AbstractTransformer{
+	
+	
+	
+	public def   void m2mTransformation(ResourceSet inputResourceSet, ResourceSet outputResourceSet){
+		
+	}
+
+	public def   void m2tTransformation(ResourceSet inputResourceSet){
+		
+	}
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToModelTransformation.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToModelTransformation.java
new file mode 100644
index 0000000..5d9b43d
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToModelTransformation.java
@@ -0,0 +1,16 @@
+package org.eclipse.app4mc.transformation.extensions.executiontype;
+
+import java.util.Properties;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+public interface IModelToModelTransformation {
+
+
+	public ResourceSet getInputResourceSet();
+	
+	public ResourceSet getOuputResourceSet();
+	
+	public void setProperties(Properties parameters);
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToTextTransformation.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToTextTransformation.java
new file mode 100644
index 0000000..74db5cf
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/src/org/eclipse/app4mc/transformation/extensions/executiontype/IModelToTextTransformation.java
@@ -0,0 +1,13 @@
+package org.eclipse.app4mc.transformation.extensions.executiontype;
+
+import java.util.Properties;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+public interface IModelToTextTransformation {
+
+	public ResourceSet getInputResourceSet();
+	
+	
+	public void setProperties(Properties parameters);
+}
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore
new file mode 100644
index 0000000..24d6437
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.gitignore
@@ -0,0 +1 @@
+/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
new file mode 100644
index 0000000..bbe6f6b
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/.project
@@ -0,0 +1,22 @@
+<?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
new file mode 100644
index 0000000..d4b56df
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+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
new file mode 100644
index 0000000..6172014
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/build.properties
@@ -0,0 +1,3 @@
+bin.includes = META-INF/,\

+               epl-v10.html

+src.includes = epl-v10.html

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/epl-v10.html b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</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
new file mode 100644
index 0000000..b25d2cc
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.build/pom.xml
@@ -0,0 +1,202 @@
+<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
new file mode 100644
index 0000000..24d6437
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.gitignore
@@ -0,0 +1 @@
+/target/

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project
new file mode 100644
index 0000000..7a354e4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/.project
@@ -0,0 +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>

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
new file mode 100644
index 0000000..f5e92c9
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/artifacts.jar
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
new file mode 100644
index 0000000..04780f3
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/category.xml
@@ -0,0 +1,10 @@
+<?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
new file mode 100644
index 0000000..c45a41d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/content.jar
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/epl-v10.html b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

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
new file mode 100644
index 0000000..2e9ed7c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature.sdk_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..65d1d95
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/features/org.eclipse.app4mc.sca2amalthea.feature_1.0.0.201708181120.jar
Binary files differ
diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
new file mode 100644
index 0000000..485c676
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/index.html
@@ -0,0 +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>

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
new file mode 100644
index 0000000..430489c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.exporter_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..a20f8f4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir.loader_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..9dc3fff
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ir_0.1.0.201708181120.jar
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
new file mode 100644
index 0000000..20b1e80
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.llvm_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..468843c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.scairmodelenricher_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..9e4edd1
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.serialization_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..3cb4bf4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.ui_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..79e2b0c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/plugins/org.eclipse.app4mc.sca2amalthea.utils_1.0.0.201708181120.jar
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
new file mode 100644
index 0000000..56d78cd
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/pom.xml
@@ -0,0 +1,91 @@
+<?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
new file mode 100644
index 0000000..a3feb82
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/site.xml
@@ -0,0 +1,11 @@
+<?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
new file mode 100644
index 0000000..bb3363d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/siteTemplate/index.html
@@ -0,0 +1,25 @@
+<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/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
new file mode 100644
index 0000000..425134e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.css
@@ -0,0 +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>

diff --git a/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
new file mode 100644
index 0000000..4a2d095
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/org.eclipse.app4mc.sca2amalthea.updatesite/web/site.xsl
@@ -0,0 +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>

diff --git a/eclipse-tools/sca2amalthea/build/readme.txt b/eclipse-tools/sca2amalthea/build/readme.txt
new file mode 100644
index 0000000..c7b9f56
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/build/readme.txt
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.project b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.project
new file mode 100644
index 0000000..84ec890
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.app4mc.sca2amalthea.feature.sdk</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

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

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

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

+	</natures>

+</projectDescription>

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/build.properties b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/build.properties
new file mode 100644
index 0000000..375ab7e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/build.properties
@@ -0,0 +1,3 @@
+bin.includes = feature.xml,\

+               epl-v10.html

+src.includes = epl-v10.html

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/epl-v10.html b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

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
new file mode 100644
index 0000000..9f82127
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/feature.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="org.eclipse.app4mc.sca2amalthea.feature.sdk"

+      label="SCA2AMALTHEA SDK"

+      version="1.0.0.qualifier"

+      provider-name="Eclipse.org">

+

+   <description url="http://www.example.com/description">

+      [Enter Feature Description here.]

+   </description>

+

+   <copyright url="http://www.example.com/copyright">

+      [Enter Copyright Description here.]

+   </copyright>

+

+   <license url="http://www.example.com/license">

+      [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>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.exporter"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ir"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ir.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.llvm"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.scairmodelenricher"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.serialization"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.utils"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.amalthea.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.amalthea.model.utils"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.logging"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.scheduling.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.util"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.docu"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+</feature>

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
new file mode 100644
index 0000000..a7c65f0
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature.sdk/pom.xml
@@ -0,0 +1,14 @@
+<?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
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.project b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.project
new file mode 100644
index 0000000..ffa1a98
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.app4mc.sca2amalthea.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

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

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

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

+	</natures>

+</projectDescription>

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/build.properties b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/build.properties
new file mode 100644
index 0000000..375ab7e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/build.properties
@@ -0,0 +1,3 @@
+bin.includes = feature.xml,\

+               epl-v10.html

+src.includes = epl-v10.html

diff --git a/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/epl-v10.html b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

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
new file mode 100644
index 0000000..3cb5967
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/feature.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="org.eclipse.app4mc.sca2amalthea.feature"

+      label="SCA2AMALTHEA Runtime"

+      version="1.0.0.qualifier"

+      provider-name="Eclipse.org">

+

+   <description url="http://www.example.com/description">

+      [Enter Feature Description here.]

+   </description>

+

+   <copyright url="http://www.example.com/copyright">

+      [Enter Copyright Description here.]

+   </copyright>

+

+   <license url="http://www.example.com/license">

+      [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>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.exporter"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ir"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ir.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.llvm"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.scairmodelenricher"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.serialization"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.utils"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.amalthea.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.amalthea.model.utils"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.logging"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.scheduling.loader"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca.util"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.app4mc.sca2amalthea.docu"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+</feature>

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
new file mode 100644
index 0000000..afcce51
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/org.eclipse.app4mc.sca2amalthea.feature/pom.xml
@@ -0,0 +1,14 @@
+<?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/features/readme.txt b/eclipse-tools/sca2amalthea/features/readme.txt
new file mode 100644
index 0000000..a7aa295
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/features/readme.txt
@@ -0,0 +1,5 @@
+Please name feature projects (i.e. their directory) after their feature id:
+
+org.eclipse.app4mc.<featurename>
+
+Place plugins under the sources folder.
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.classpath b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.classpath
@@ -0,0 +1,7 @@
+<?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/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore
new file mode 100644
index 0000000..24d6437
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.gitignore
@@ -0,0 +1 @@
+/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.project b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.project
new file mode 100644
index 0000000..1e006fd
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.app4mc.sca.amalthea.loader</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>

+		<buildCommand>

+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</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/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/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
new file mode 100644
index 0000000..e86fa6c
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Amalthea Loader
+Bundle-SymbolicName: org.eclipse.app4mc.sca.amalthea.loader
+Bundle-Version: 1.0.0.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
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
new file mode 100644
index 0000000..cf1db2e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/bin/.gitignore
@@ -0,0 +1 @@
+/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/build.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/build.properties
new file mode 100644
index 0000000..4fd3534
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/build.properties
@@ -0,0 +1,6 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               epl-v10.html

+src.includes = epl-v10.html

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/epl-v10.html b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

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
new file mode 100644
index 0000000..0de10d5
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/pom.xml
@@ -0,0 +1,82 @@
+<?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
new file mode 100644
index 0000000..98278ee
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/loader/AMALTHEAResourceLoader.java
@@ -0,0 +1,90 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.loader;

+

+import java.io.IOException;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;

+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;

+import org.eclipse.app4mc.amalthea.model.SWModel;

+import org.eclipse.app4mc.amalthea.sphinx.AmaltheaResourceFactory;

+import org.eclipse.app4mc.sca.logging.manager.Logmanager;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;

+

+

+/**

+ *  Extension when loading moel from resource

+ */

+public class AMALTHEAResourceLoader {

+

+  /**

+   * @param filePath URI of the amalthea file

+   * @return object of type Resource which contains the parsed information of the provided amalthea file

+   */

+  public Resource loadAmaltheaResource(final URI filePath) {

+    final ResourceSet resourceSet = new ResourceSetImpl();

+

+

+    resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());

+    resourceSet.getPackageRegistry().put(AmaltheaPackage.eNS_URI, AmaltheaPackage.eINSTANCE);

+    final Resource res = resourceSet.createResource(filePath);

+    try {

+      res.load(null);

+    }

+    catch (IOException e) {

+      Logmanager.getInstance().logException(this.getClass(), e, "org.eclipse.app4mc.amalthea.loader");

+    }

+    return res;

+

+  }

+

+  /**

+   * @param filePath URI of the amalthea file

+   * @return AMALTHEA intermediate model

+   */

+  public Amalthea getAmaltheaModelFromResource(final URI filePath) {

+

+    final Resource r = loadAmaltheaResource(filePath);

+    EList<EObject> contents = r.getContents();

+    if (contents != null) {

+      for (EObject content : contents) {

+        if (content instanceof Amalthea) {

+          return (Amalthea) content;

+        }

+      }

+

+      /*

+       * Extension to support resources without AMALTHEA central model element in resource. - Situation: The Amalthea

+       * central model element could not been found. - Approach: Search for SwModel instead. It can be assumed, that the

+       * AMALTHEA model builder has created with the SwModel as root element. - Solution: Return baked Amaltha Model

+       * with parsed SwModel else null

+       */

+      for (EObject content : contents) {

+        if (content instanceof SWModel) {

+          Amalthea amaltheaModel = AmaltheaFactory.eINSTANCE.createAmalthea();

+          amaltheaModel.setSwModel((SWModel) content);

+          return amaltheaModel;

+        }

+      }

+    }

+    return null;

+  }

+}

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
new file mode 100644
index 0000000..a0d2dd7
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.loader/src/org/eclipse/app4mc/sca/amalthea/serializer/AMALTHEAResourceSerializer.java
@@ -0,0 +1,79 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.serializer;

+

+import java.io.IOException;

+import java.util.List;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;

+import org.eclipse.app4mc.amalthea.sphinx.AmaltheaResourceFactory;

+import org.eclipse.app4mc.sca.logging.manager.Logmanager;

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;

+

+/**

+ * Class that serializes the amalthea model to the given file

+ */

+public class AMALTHEAResourceSerializer {

+

+  private static final String EXT = "amxmi";

+

+  /**

+   * @param filename filepath without extension

+   * @param amaltheaModel {@link AMALTHEA}

+   */

+  public void saveAmaltheaModel(final String filename, final Amalthea amaltheaModel) {

+    if ((null != amaltheaModel) && !amaltheaModel.eContents().isEmpty()) {

+        saveModelFile(filename, amaltheaModel);

+    }

+  }

+

+  private void saveModelFile(final String filename, final EObject content) {

+    saveModelFile(filename, new BasicEList<EObject>() {

+

+      /**

+		 * 

+		 */

+		private static final long serialVersionUID = 1L;

+

+	{

+        add(content);

+      }

+    });

+  }

+

+  /**

+   * @param filename

+   * @param amaltheaModel

+   */

+  private void saveModelFile(final String filename, final List<EObject> content) {

+    final String fileNamewithExt = filename.concat(".").concat(EXT);

+    final URI tmpUri = URI.createFileURI(fileNamewithExt);

+    final ResourceSet resourceSet = new ResourceSetImpl();

+    resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(EXT, new AmaltheaResourceFactory());

+

+    final Resource outResource = resourceSet.createResource(tmpUri);

+    outResource.getContents().addAll(content);

+    try {

+      outResource.save(null);

+    }

+    catch (IOException e) {

+      Logmanager.getInstance().logException(this.getClass(), e, "org.eclipse.app4mc.amalthea.loader");

+    }

+  }

+}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.classpath b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.classpath
@@ -0,0 +1,7 @@
+<?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/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore
new file mode 100644
index 0000000..24d6437
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.gitignore
@@ -0,0 +1 @@
+/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.project b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.project
new file mode 100644
index 0000000..377ee81
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.app4mc.sca.amalthea.model.utils</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>

+		<buildCommand>

+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</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/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/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
new file mode 100644
index 0000000..fba8065
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+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-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
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
new file mode 100644
index 0000000..cf1db2e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/bin/.gitignore
@@ -0,0 +1 @@
+/org/
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/build.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/build.properties
new file mode 100644
index 0000000..4fd3534
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/build.properties
@@ -0,0 +1,6 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               epl-v10.html

+src.includes = epl-v10.html

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/epl-v10.html b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

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
new file mode 100644
index 0000000..123d869
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/pom.xml
@@ -0,0 +1,84 @@
+<?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
new file mode 100644
index 0000000..5d879cb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/Activator.java
@@ -0,0 +1,68 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils;

+

+import org.eclipse.core.runtime.Plugin;

+import org.osgi.framework.BundleContext;

+

+/**

+ * The activator class controls the plug-in life cycle

+ */

+public class Activator extends Plugin {

+

+  /**

+   * The plug-in ID

+   */

+  public static final String PLUGIN_ID = "org.eclipse.app4mc.amalthea.model.utils"; //$NON-NLS-1$

+

+  // The shared instance

+  private static Activator plugin;

+

+  /**

+   * The constructor

+   */

+  public Activator() {

+    // Intentionally left blank

+  }

+

+  /*

+   * (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/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
new file mode 100644
index 0000000..f0c9d1a
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/CustomPropertiesUtil.java
@@ -0,0 +1,76 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils.helper;

+

+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;

+import org.eclipse.app4mc.amalthea.model.IAnnotatable;

+import org.eclipse.app4mc.amalthea.model.StringObject;

+

+/**

+ * This class contains Source Code to add custom properties to the AMALTHEA Model

+ */

+public final class CustomPropertiesUtil {

+

+  /**

+   * Constant for srcline property

+   */

+  public static final String SRC_LINE = "srcline";

+  /**

+   * Constant for srccol property

+   */

+  public static final String SRC_COL = "srccol";

+

+  /**

+   * Private constructor

+   */

+  private CustomPropertiesUtil() {

+    // Intentionally left blank

+  }

+

+  /**

+   * Creates string objects out of the value provided and returns

+   *

+   * @param value The value for which the string object has to be created

+   * @return {@link StringObject}

+   */

+  private static StringObject getCustomStringObject(final String value) {

+    StringObject srcValue = AmaltheaFactory.eINSTANCE.createStringObject();

+    srcValue.setValue(value);

+    return srcValue;

+  }

+

+  /**

+   * @param amBaseObject

+   * @param key

+   * @param value

+   */

+  public static void addToCustomProperties(final IAnnotatable amBaseObject, final String key, final String value) {

+    amBaseObject.getCustomProperties().put(key, getCustomStringObject(value));

+  }

+

+  /**

+   * @param amBaseObject

+   * @param srcLine

+   * @param srcCol

+   */

+  public static void addSourceLineInformation(final IAnnotatable amBaseObject, final String srcLine,

+      final String srcCol) {

+    if ((srcLine != null) && !srcLine.isEmpty()) {

+      addToCustomProperties(amBaseObject, CustomPropertiesUtil.SRC_LINE, srcLine);

+    }

+    if ((srcCol != null) && !srcCol.isEmpty()) {

+      addToCustomProperties(amBaseObject, CustomPropertiesUtil.SRC_COL, srcCol);

+    }

+  }

+}

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
new file mode 100644
index 0000000..65ade17
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/helper/ModelAccess.java
@@ -0,0 +1,87 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils.helper;

+

+import java.util.HashSet;

+import java.util.Set;

+

+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.ISR;

+import org.eclipse.app4mc.amalthea.model.Process;

+import org.eclipse.app4mc.amalthea.model.Runnable;

+import org.eclipse.app4mc.amalthea.model.Task;

+import org.eclipse.app4mc.amalthea.model.TaskRunnableCall;

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * This class contains static model access helper

+ */

+public class ModelAccess {

+

+  /**

+   * @param amaltheaModel to be accessed

+   * @return all runnables that are directly called from a Task or an ISR

+   */

+  public static Set<Runnable> getRunnablesFromTaskAndIsr(final Amalthea amaltheaModel) {

+    Set<Runnable> calledRunnables = new HashSet<>();

+    for (Task task : amaltheaModel.getSwModel().getTasks()) {

+      Set<Runnable> runnablesFromTask = getRunnablesFromTask(task);

+      calledRunnables.addAll(runnablesFromTask);

+    }

+

+    for (ISR isr : amaltheaModel.getSwModel().getIsrs()) {

+      Set<Runnable> runnablesFromIsr = getRunnablesFromTask(isr);

+      calledRunnables.addAll(runnablesFromIsr);

+    }

+    return calledRunnables;

+  }

+

+  /**

+   * @param process from which the runnables are taken

+   * @return all runnables that are called by the given Task or ISR

+   */

+  public static Set<Runnable> getRunnablesFromTask(final Process process) {

+    Set<Runnable> calledRunnables = new HashSet<>();

+    for (GraphEntryBase entry : process.getCallGraph().getGraphEntries()) {

+      if (!(entry instanceof CallSequence)) {

+        continue;

+      }

+      for (CallSequenceItem item : ((CallSequence) entry).getCalls()) {

+        if (item instanceof TaskRunnableCall) {

+          calledRunnables.add(((TaskRunnableCall) item).getRunnable());

+        }

+      }

+    }

+    return calledRunnables;

+  }

+

+  /**

+   * @param runnables to be searched for

+   * @param name of the runnable

+   * @return runnable instance of the given name

+   */

+  public static Runnable getRunnable(final EList<Runnable> runnables, final String name) {

+    for (Runnable runnable : runnables) {

+      if (name.equals(runnable.getName())) {

+        return runnable;

+      }

+    }

+    return null;

+  }

+

+

+}

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
new file mode 100644
index 0000000..c51a39e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/FunctionPointerRunnableConverter.java
@@ -0,0 +1,102 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils.manipulator;

+

+import java.util.regex.Matcher;

+import java.util.regex.Pattern;

+

+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;

+import org.eclipse.app4mc.sca.amalthea.model.utils.helper.ModelAccess;

+import org.eclipse.app4mc.sca.logging.manager.LogFactory.Severity;

+import org.eclipse.app4mc.sca.logging.util.SCALogConstants;

+import org.eclipse.app4mc.sca.logging.util.LogUtil;

+import org.eclipse.emf.common.util.EList;

+

+

+/**

+ * This class does a simple function pointer resolution on the existing AMALTHEA model. Each function pointer access

+ * that ends with "-FPTR" is transformed into a runnable call.

+ */

+public class FunctionPointerRunnableConverter implements IModelManipulator {

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void manipulateModel(final Amalthea amaltheaModel) {

+    String patternString = "(.*)-FPTR";

+    Pattern pattern = Pattern.compile(patternString);

+

+    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;

+            if (labelAccess.getData() != null) {

+              Matcher matcher = pattern.matcher(labelAccess.getData().getName());

+              if ((labelAccess.getAccess() == LabelAccessEnum.READ) && matcher.matches()) {

+                String runnableName = matcher.group(1);

+                Runnable fpRunnable = ModelAccess.getRunnable(runnables, runnableName);

+                if (fpRunnable != null) {

+                  LogUtil.log(SCALogConstants.TOOL_ID, Severity.DEBUG,

+                      "Add runnable call from function pointer access to: " + runnable.getName() + ", calls: " +

+                          fpRunnable.getName(),

+                      this.getClass(), Activator.PLUGIN_ID);

+                  RunnableCall runnableCall = AmaltheaFactory.eINSTANCE.createRunnableCall();

+                  runnableCall.setRunnable(fpRunnable);

+                  runnable.getRunnableItems().add((i + 1), runnableCall);

+                  if (labelAccess.getCustomProperties() != null) {

+                    String srcline = "";

+                    if (labelAccess.getCustomProperties().containsKey(CustomPropertiesUtil.SRC_LINE)) {

+                      srcline =

+                          ((StringObject) runnable.getCustomProperties().get(CustomPropertiesUtil.SRC_LINE)).getValue();

+                    }

+                    String srccol = "";

+                    if (labelAccess.getCustomProperties().containsKey(CustomPropertiesUtil.SRC_COL)) {

+                      srccol =

+                          ((StringObject) runnable.getCustomProperties().get(CustomPropertiesUtil.SRC_COL)).getValue();

+                    }

+                    CustomPropertiesUtil.addSourceLineInformation(runnableCall, srcline, srccol);

+                  }

+                }

+              }

+            }

+            else {

+              LogUtil.log(SCALogConstants.TOOL_ID, Severity.DEBUG,

+                  "No Label Available for a label access in the runnable: " + runnable.getName(), this.getClass(),

+                  Activator.PLUGIN_ID);

+            }

+          }

+        }

+      }

+    }

+    catch (Exception e) {

+      LogUtil.logException(SCALogConstants.TOOL_ID, e.getClass(), e, Activator.PLUGIN_ID);

+    }

+  }

+

+

+}

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
new file mode 100644
index 0000000..3171f28
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/IModelManipulator.java
@@ -0,0 +1,30 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils.manipulator;

+

+import org.eclipse.app4mc.amalthea.model.Amalthea;;

+

+/**

+ * This interface is the base for all instances that want to manipulate an AMALTHEA model.

+ */

+public interface IModelManipulator {

+

+  /**

+   * Within this methode an AMALTHEA model is changed according to the implementing instances

+   *

+   * @param amaltheaModel model that is to be changed

+   */

+  public void manipulateModel(Amalthea amaltheaModel);

+

+}

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
new file mode 100644
index 0000000..2013ba4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.amalthea.model.utils/src/org/eclipse/app4mc/sca/amalthea/model/utils/manipulator/StructMemberRemover.java
@@ -0,0 +1,209 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.amalthea.model.utils.manipulator;

+

+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;

+import org.eclipse.app4mc.sca.logging.util.LogUtil;

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.URI;

+

+

+/**

+ *

+ */

+public class StructMemberRemover implements IModelManipulator {

+

+  private final String FUNCTION_STATIC_VARIABLES_MARKER = "PLAT4MC_FS";

+  private final String FILE_STATIC_VARIABLES_MARKER = "PLAT4MC_CS";

+

+  private Amalthea amaltheaModel;

+  private String inFile;

+

+

+  /**

+   *

+   */

+  public StructMemberRemover() {

+    super();

+  }

+

+  /**

+   * @param inFile

+   * @param outFile

+   */

+  public StructMemberRemover(final String inFile) {

+    super();

+    this.inFile = inFile;

+    AMALTHEAResourceLoader arl = new AMALTHEAResourceLoader();

+    URI createFileURI = URI.createFileURI(this.inFile);

+    this.amaltheaModel = arl.getAmaltheaModelFromResource(createFileURI);

+  }

+

+  /**

+   * @param amaltheaModel

+   */

+  public StructMemberRemover(final Amalthea amaltheaModel) {

+    this.amaltheaModel = amaltheaModel;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void manipulateModel(final Amalthea amaltheaModel) {

+    manipulateGivenModel(amaltheaModel);

+  }

+

+  /**

+   *

+   */

+  public void manipulateModel() {

+    manipulateGivenModel(this.amaltheaModel);

+  }

+

+  private void manipulateGivenModel(final Amalthea amaltheaModel) {

+    removeStructMembersInLabelAccess(amaltheaModel);

+    deleteLabelsInComponentModel(amaltheaModel);

+    deleteLabelWithStructMembers(amaltheaModel);

+

+  }

+

+  /**

+   * Delete the labels with struct members information from the label list

+   *

+   * @param amaltheaModel

+   */

+  private void deleteLabelWithStructMembers(final Amalthea amaltheaModel) {

+    EList<Label> labels = amaltheaModel.getSwModel().getLabels();

+    EList<Label> labelsToBeRemoved = new BasicEList<Label>();

+    if ((labels != null) && !labels.isEmpty()) {

+      for (Label label : labels) {

+        String labelName = label.getName();

+        if (containsStructMember(labelName)) {

+          labelsToBeRemoved.add(label);

+        }

+      }

+      labels.removeAll(labelsToBeRemoved);

+    }

+  }

+

+  /**

+   * Returns true if the labelname doesn't contain struct member information or if it is the name a static variable

+   * (global or inside a function)

+   *

+   * @param labelName label name

+   * @return true if if the labelname doesn't contain struct member information or if it is the name a static variable

+   *         (global or inside a function)

+   */

+  public boolean containsStructMember(final String labelName) {

+    return (labelName.contains(".") && !labelName.contains(this.FUNCTION_STATIC_VARIABLES_MARKER) &&

+        !labelName.contains(this.FILE_STATIC_VARIABLES_MARKER));

+  }

+

+  /**

+   * Remove the member access information from the label accesses inside runnables

+   *

+   * @param amaltheaModel

+   */

+  private void removeStructMembersInLabelAccess(final Amalthea amaltheaModel) {

+    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;

+              String labelName = labelAccess.getData().getName();

+              if (containsStructMember(labelName)) {

+                String mainLabelName = removeMemberInformation(labelName);

+                labelAccess.setData(getLabel(amaltheaModel, mainLabelName));

+              }

+            }

+          }

+        }

+      }

+    }

+    catch (Exception e) {

+      LogUtil.logException(SCALogConstants.TOOL_ID, e.getClass(), e, Activator.PLUGIN_ID);

+    }

+  }

+

+

+  /**

+   * @return the amaltheaModel

+   */

+  public Amalthea getAmaltheaModel() {

+    return this.amaltheaModel;

+  }

+

+  /**

+   * Get a defined Label from the AMALTHEA model

+   *

+   * @param amaltheaModel AMALTHEA model

+   * @param mainLabelName name of the label to be returned

+   * @return

+   */

+  private Label getLabel(final Amalthea amaltheaModel, final String mainLabelName) {

+    EList<Label> labels = amaltheaModel.getSwModel().getLabels();

+

+    for (Label label : labels) {

+      if (label.getName().equals(mainLabelName)) {

+        return label;

+      }

+    }

+    return null;

+  }

+

+  /**

+   * Removes the member's name and returns the label which represents the whole structure

+   *

+   * @param labelName label name containing the members information

+   * @return

+   */

+  private String removeMemberInformation(final String labelName) {

+    int startPositionOfFirstMember = labelName.indexOf(".");

+    StringBuilder sb = new StringBuilder(labelName.substring(0, startPositionOfFirstMember));

+    int postionOfHypen = labelName.indexOf('-');

+    if (postionOfHypen > 0) {

+      sb.append(labelName.substring(postionOfHypen));

+    }

+    return sb.toString();

+  }

+

+  private void deleteLabelsInComponentModel(final Amalthea amalthea) {

+    for (Component c : amalthea.getComponentsModel().getComponents()) {

+      EList<Label> labels = c.getLabels();

+      EList<Label> labelsToBeRemoved = new BasicEList<Label>();

+      if ((labels != null) && !labels.isEmpty()) {

+        for (Label label : labels) {

+          String labelName = label.getName();

+          if (containsStructMember(labelName)) {

+            labelsToBeRemoved.add(label);

+          }

+        }

+        labels.removeAll(labelsToBeRemoved);

+      }

+    }

+  }

+}

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.classpath b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.classpath
@@ -0,0 +1,7 @@
+<?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/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore
new file mode 100644
index 0000000..24d6437
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.gitignore
@@ -0,0 +1 @@
+/target/

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.project b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.project
new file mode 100644
index 0000000..fc8a465
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.app4mc.sca.logging</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>

+		<buildCommand>

+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</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/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+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/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
new file mode 100644
index 0000000..ee27ff6
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Logging
+Bundle-SymbolicName: org.eclipse.app4mc.sca.logging;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse.org
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.emf.ecore,
+ org.apache.log4j,
+ org.eclipse.equinox.registry,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources
+Export-Package: org.eclipse.app4mc.sca.logging.console.loggers,
+ org.eclipse.app4mc.sca.logging.exception,
+ org.eclipse.app4mc.sca.logging.impl,
+ org.eclipse.app4mc.sca.logging.loggers;uses:="org.eclipse.app4mc.logging.impl,org.eclipse.app4mc.logging.util",
+ org.eclipse.app4mc.sca.logging.manager;
+  uses:="org.eclipse.app4mc.logging.impl,
+   org.eclipse.app4mc.logging.notification,
+   org.eclipse.app4mc.logging.util,
+   org.eclipse.app4mc.logging.console.loggers",
+ org.eclipse.app4mc.sca.logging.notification,
+ org.eclipse.app4mc.sca.logging.util
+Bundle-ActivationPolicy: lazy
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
new file mode 100644
index 0000000..cf1db2e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/bin/.gitignore
@@ -0,0 +1 @@
+/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
new file mode 100644
index 0000000..f003c8d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/build.properties
@@ -0,0 +1,12 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               cmdlogger.properties,\

+               logger.properties,\

+               epl-v10.html,\

+               build.properties

+src.includes = epl-v10.html,\

+               logger.properties,\

+               build.properties,\

+               cmdlogger.properties

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/cmdlogger.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/cmdlogger.properties
new file mode 100644
index 0000000..d019129
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/cmdlogger.properties
@@ -0,0 +1,9 @@
+log4j.rootLogger=debug

+log4j.category.org.eclipse.app4mc.logging.console.loggers.CommandLineLogger = ERROR, stdout

+

+log4j.appender.stdout=org.apache.log4j.ConsoleAppender

+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

+

+# Pattern to output the caller's file name and line number.

+log4j.appender.stdout.layout.ConversionPattern=%5p %d{dd MMM yyyy HH:mm:ss,SSS} [%t] (%F:%L) - %m%n

+

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/epl-v10.html b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/epl-v10.html
new file mode 100644
index 0000000..0beaf86
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Eclipse Public License - Version 1.0</title>

+<style type="text/css">

+  body {

+    size: 8.5in 11.0in;

+    margin: 0.25in 0.5in 0.25in 0.5in;

+    tab-interval: 0.5in;

+    }

+  p {  	

+    margin-left: auto;

+    margin-top:  0.5em;

+    margin-bottom: 0.5em;

+    }

+  p.list {

+  	margin-left: 0.5in;

+    margin-top:  0.05em;

+    margin-bottom: 0.05em;

+    }

+  </style>

+

+</head>

+

+<body lang="EN-US">

+

+<h2>Eclipse Public License - v 1.0</h2>

+

+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE

+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR

+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS

+AGREEMENT.</p>

+

+<p><b>1. DEFINITIONS</b></p>

+

+<p>&quot;Contribution&quot; means:</p>

+

+<p class="list">a) in the case of the initial Contributor, the initial

+code and documentation distributed under this Agreement, and</p>

+<p class="list">b) in the case of each subsequent Contributor:</p>

+<p class="list">i) changes to the Program, and</p>

+<p class="list">ii) additions to the Program;</p>

+<p class="list">where such changes and/or additions to the Program

+originate from and are distributed by that particular Contributor. A

+Contribution 'originates' from a Contributor if it was added to the

+Program by such Contributor itself or anyone acting on such

+Contributor's behalf. Contributions do not include additions to the

+Program which: (i) are separate modules of software distributed in

+conjunction with the Program under their own license agreement, and (ii)

+are not derivative works of the Program.</p>

+

+<p>&quot;Contributor&quot; means any person or entity that distributes

+the Program.</p>

+

+<p>&quot;Licensed Patents&quot; 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>&quot;Program&quot; means the Contributions distributed in accordance

+with this Agreement.</p>

+

+<p>&quot;Recipient&quot; means anyone who receives the Program under

+this Agreement, including all Contributors.</p>

+

+<p><b>2. GRANT OF RIGHTS</b></p>

+

+<p class="list">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, in

+source code and object code form.</p>

+

+<p class="list">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 and object code 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.</p>

+

+<p class="list">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's responsibility to acquire

+that license before distributing the Program.</p>

+

+<p class="list">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.</p>

+

+<p><b>3. REQUIREMENTS</b></p>

+

+<p>A Contributor may choose to distribute the Program in object code

+form under its own license agreement, provided that:</p>

+

+<p class="list">a) it complies with the terms and conditions of this

+Agreement; and</p>

+

+<p class="list">b) its license agreement:</p>

+

+<p class="list">i) effectively disclaims on behalf of all 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;</p>

+

+<p class="list">ii) effectively excludes on behalf of all Contributors

+all liability for damages, including direct, indirect, special,

+incidental and consequential damages, such as lost profits;</p>

+

+<p class="list">iii) states that any provisions which differ from this

+Agreement are offered by that Contributor alone and not by any other

+party; and</p>

+

+<p class="list">iv) states that source code for the Program is available

+from such Contributor, and informs licensees how to obtain it in a

+reasonable manner on or through a medium customarily used for software

+exchange.</p>

+

+<p>When the Program is made available in source code form:</p>

+

+<p class="list">a) it must be made available under this Agreement; and</p>

+

+<p class="list">b) a copy of this Agreement must be included with each

+copy of the Program.</p>

+

+<p>Contributors may not remove or alter any copyright notices contained

+within the Program.</p>

+

+<p>Each Contributor must identify itself as the originator of its

+Contribution, if any, in a manner that reasonably allows subsequent

+Recipients to identify the originator of the Contribution.</p>

+

+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>

+

+<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

+(&quot;Commercial Contributor&quot;) hereby agrees to defend and

+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)

+against any losses, damages and costs (collectively &quot;Losses&quot;)

+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'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>

+

+<p><b>5. NO WARRANTY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS

+PROVIDED ON AN &quot;AS IS&quot; 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>

+

+<p><b>6. DISCLAIMER OF LIABILITY</b></p>

+

+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, 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>

+

+<p><b>7. GENERAL</b></p>

+

+<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's patent(s), then such

+Recipient's rights granted under Section 2(b) shall terminate as of the

+date such litigation is filed.</p>

+

+<p>All Recipient'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's rights

+under this Agreement terminate, Recipient agrees to cease use and

+distribution of the Program as soon as reasonably practicable. However,

+Recipient'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. 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.</p>

+

+<p>This Agreement is governed by the laws of the State of New York and

+the intellectual property laws of the United States of America. No party

+to this Agreement will bring a legal action under this Agreement more

+than one year after the cause of action arose. Each party waives its

+rights to a jury trial in any resulting litigation.</p>

+

+</body>

+

+</html>

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/logger.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/logger.properties
new file mode 100644
index 0000000..22faad5
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/logger.properties
@@ -0,0 +1,20 @@
+log4j.rootLogger=DEBUG

+log4j.category.org.eclipse.app4mc.logging.console.loggers.CommandLineLogger = DEBUG, ERROR, WARN, INFO, stdout

+log4j.category.org.eclipse.app4mc.logging.loggers.TextFileLogger = DEBUG, ERROR, WARN, INFO, R

+

+

+log4j.appender.stdout=org.apache.log4j.ConsoleAppender

+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

+

+# Pattern to output the caller's file name and line number.

+log4j.appender.stdout.layout.ConversionPattern=%5p %d{dd MMM yyyy HH:mm:ss,SSS}[%t] (%F:%L) - %m%n

+

+log4j.appender.R=org.apache.log4j.RollingFileAppender

+log4j.appender.R.File=${user.home}/sca.log

+

+log4j.appender.R.MaxFileSize=100KB

+# Keep one backup file

+log4j.appender.R.MaxBackupIndex=1

+

+log4j.appender.R.layout=org.apache.log4j.PatternLayout

+log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
\ No newline at end of file
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
new file mode 100644
index 0000000..9aefc73
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/pom.xml
@@ -0,0 +1,83 @@
+<?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
new file mode 100644
index 0000000..3efd02a
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/console/loggers/CommandLineLogger.java
@@ -0,0 +1,138 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.console.loggers;

+

+import org.apache.log4j.ConsoleAppender;

+import org.apache.log4j.Logger;

+import org.apache.log4j.PatternLayout;

+import org.eclipse.app4mc.sca.logging.impl.IConsoleLogger;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+

+/**

+ * Logs the information into the command line.

+ */

+public final class CommandLineLogger implements IConsoleLogger {

+

+  /**

+   * Logger instance

+   */

+  private final Logger logger;

+

+  private static CommandLineLogger instance = null;

+

+  /**

+   * Private constructor

+   */

+  private CommandLineLogger() {

+    this.logger = Logger.getLogger("org.eclipse.app4mc.logging.console.loggers.CommandLineLogger");

+  }

+

+  /**

+   * Returns the singleton instance of the command line logger

+   *

+   * @return {@link CommandLineLogger}

+   */

+  public static synchronized CommandLineLogger getInstance() {

+    if (instance == null) {

+      instance = new CommandLineLogger();

+    }

+    return instance;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void log(final LogInformation logInfo) {

+    if (isEnabled(logInfo)) {

+      configureLogger();

+      switch (logInfo.getSeverity()) {

+        case DEBUG:

+          this.logger.debug(logInfo.getMessage());

+          break;

+        case ERROR:

+        case FATAL:

+          this.logger.error(logInfo.getMessage());

+          break;

+        case WARNING:

+          this.logger.warn(logInfo.getMessage());

+          break;

+        case INFO:

+          this.logger.info(logInfo.getMessage());

+          break;

+        default:

+          break;

+      }

+    }

+  }

+

+  /**

+   * Configures the logger with specific property

+   */

+  private void configureLogger() {

+    if (!this.logger.getAllAppenders().hasMoreElements()) {

+      PatternLayout layout = new PatternLayout("%5p %d{dd MMM yyyy HH:mm:ss,SSS} [%t] (%F:%L) - %m%n");

+      ConsoleAppender consoleAppender = new ConsoleAppender(layout, "System.out");

+      consoleAppender.activateOptions();

+      this.logger.addAppender(consoleAppender);

+    }

+  }

+

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void clear() {

+    // Nothing to implement now

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void logException(final LogInformation logInfo) {

+    configureLogger();

+    switch (logInfo.getSeverity()) {

+      case DEBUG:

+        this.logger.debug(logInfo.getException().getMessage(), logInfo.getException());

+        break;

+      case ERROR:

+        this.logger.error(logInfo.getException().getMessage(), logInfo.getException());

+        break;

+      case INFO:

+        this.logger.info(logInfo.getException().getMessage(), logInfo.getException());

+        break;

+      default:

+        break;

+    }

+

+  }

+

+  /**

+   * @return the logger

+   */

+  public Logger getLogger() {

+    return this.logger;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void closeLogger() {

+    // Now nothing

+  }

+}

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
new file mode 100644
index 0000000..4e2434a
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/exception/App4mcLoggerException.java
@@ -0,0 +1,70 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.exception;

+

+

+/**

+ * Custom exception for the amalthea app4mc logging

+ */

+public class App4mcLoggerException extends RuntimeException {

+

+  private static final long serialVersionUID = 1997753363232807009L;

+

+  /**

+   * Constructor

+   */

+  public App4mcLoggerException() {

+    // Do nothing

+  }

+

+  /**

+   * @param message String

+   */

+  public App4mcLoggerException(final String message) {

+    super(message);

+  }

+

+  /**

+   * Constructor

+   *

+   * @param cause {@link Throwable}

+   */

+  public App4mcLoggerException(final Throwable cause) {

+    super(cause);

+  }

+

+  /**

+   * Constructor

+   *

+   * @param message The message to be displayed

+   * @param cause {@link Throwable}

+   */

+  public App4mcLoggerException(final String message, final Throwable cause) {

+    super(message, cause);

+  }

+

+

+  /**

+   * Constructor

+   *

+   * @param message The message to be displayed

+   * @param cause {@link Throwable}

+   * @param enableSuppression whether or not suppression is enabled or disabled

+   * @param writableStackTrace Decides whether the stack trace has to be printed

+   */

+  public App4mcLoggerException(final String message, final Throwable cause, final boolean enableSuppression,

+      final boolean writableStackTrace) {

+    super(message, cause, enableSuppression, writableStackTrace);

+  }

+}

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
new file mode 100644
index 0000000..e0760eb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/CollectiveLogger.java
@@ -0,0 +1,86 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.impl;

+

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.util.App4mcLogUtil;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+

+/**

+ * Utility class which collects several loggers if user you wants to have multple or use case specific ones

+ */

+public class CollectiveLogger implements ILogger {

+

+  /**

+   * List of loggers to which the given information has to be logged

+   */

+  protected final List<ILogger> loggers = new ArrayList<ILogger>();

+

+  /**

+   * @param logger - The Logger instance to be added

+   */

+  public void add(final ILogger logger) {

+    this.loggers.add(logger);

+  }

+

+

+  /**

+   * @param loggerCollection - The logger instances to be added

+   */

+  public void addAll(final Collection<? extends ILogger> loggerCollection) {

+    this.loggers.addAll(loggerCollection);

+  }

+

+

+  /**

+   * @return the number of logger instances

+   */

+  public int size() {

+    return this.loggers.size();

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void log(final LogInformation logInfo) {

+    this.loggers.forEach(logger -> {

+      logger.log(logInfo);

+    });

+  }

+

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void closeLogger() {

+    // Now nothing

+  }

+

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public boolean isEnabled(final LogInformation logInfo) throws App4mcLoggerException {

+    return App4mcLogUtil.isInDebugMode(logInfo);

+  }

+

+}

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
new file mode 100644
index 0000000..bba2157
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConfiguration.java
@@ -0,0 +1,33 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.impl;

+

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+

+/**

+ * Interface to be implemented by the configurators. Every class registering as a configurator to the log manager should

+ * implement this inferface. The configurators should make sure that log manager can get the relevant log information on

+ * passing the message id. The information would be returns as {@link LogInformation}

+ */

+public interface IConfiguration {

+

+  /**

+   * Returns the log information corresponding to the given message id

+   *

+   * @param messageId The id of the log record

+   * @return Returns the log information @LogInformation

+   */

+  public LogInformation getLogMetaData(String messageId);

+}

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
new file mode 100644
index 0000000..7be7fdc
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IConsoleLogger.java
@@ -0,0 +1,52 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.impl;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.util.App4mcLogUtil;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+

+/**

+ */

+public interface IConsoleLogger extends ILogger {

+

+  /**

+   * Logs the exception to the console. This can be command promt or eclipse console

+   *

+   * @param logInfo {@link LogInformation}

+   */

+  public void logException(LogInformation logInfo);

+

+  /**

+   * Clears the console to which the message has been logged

+   */

+  public void clear();

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  default void closeLogger() {

+    // Now nothing

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  default boolean isEnabled(final LogInformation logInfo) throws App4mcLoggerException {

+    return App4mcLogUtil.isInDebugMode(logInfo);

+  }

+}

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
new file mode 100644
index 0000000..5643f2f
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/IExternalLogger.java
@@ -0,0 +1,59 @@
+package org.eclipse.app4mc.sca.logging.impl;

+

+import java.util.List;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.manager.LogFactory.LoggerType;

+import org.eclipse.app4mc.sca.logging.util.App4mcLogUtil;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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

+ *

+ * *******************************************************************************

+ */

+

+/**

+ * The interface for the UI specific logging mechanism

+ */

+public interface IExternalLogger extends ILogger {

+

+  /**

+   * Logs the given list of log information

+   *

+   * @param logInfoList {@link LogInformation}

+   */

+  public void log(final List<LogInformation> logInfoList);

+

+  /**

+   * Mentions the type of the logger

+   *

+   * @return {@link LoggerType}

+   */

+  public String getName();

+

+  /**

+   * Validates the given log information and returns the state

+   *

+   * @param logInfo The log information to be validated

+   * @return true if the log info contains relevant data to log into the this external logger

+   * @throws App4mcLoggerException If the validation fails

+   */

+  public boolean validate(LogInformation logInfo) throws App4mcLoggerException;

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  default boolean isEnabled(final LogInformation logInfo) throws App4mcLoggerException {

+    return App4mcLogUtil.isInDebugMode(logInfo);

+  }

+}

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
new file mode 100644
index 0000000..e4e2967
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ILogger.java
@@ -0,0 +1,42 @@
+package org.eclipse.app4mc.sca.logging.impl;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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

+ *

+ * *******************************************************************************

+ */

+

+/**

+ */

+public interface ILogger {

+

+  /**

+   * @param logInfo {@link LogInformation}

+   */

+  public void log(final LogInformation logInfo);

+

+  /**

+   * Closes the logger opened

+   */

+  public void closeLogger();

+

+  /**

+   * Validates the given log information and returns the state

+   *

+   * @param logInfo The log information to be validated

+   * @return true if the log info contains relevant data to log into the this external logger

+   * @throws App4mcLoggerException If the validation fails

+   */

+  public boolean isEnabled(final LogInformation logInfo) throws App4mcLoggerException;

+}

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
new file mode 100644
index 0000000..ba9faf0
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/impl/ITextLogger.java
@@ -0,0 +1,74 @@
+package org.eclipse.app4mc.sca.logging.impl;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+

+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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

+ *

+ * *******************************************************************************

+ */

+

+

+/**

+ */

+public interface ITextLogger extends ILogger {

+

+  /**

+   * @param logInfo to be logged

+   */

+  default void error(final LogInformation logInfo) {

+    log(logInfo);

+  }

+

+  /**

+   * @param logInfo to be logged

+   */

+  default void debug(final LogInformation logInfo) {

+    log(logInfo);

+  }

+

+  /**

+   * @param logInfo to be logged

+   */

+  default void info(final LogInformation logInfo) {

+    log(logInfo);

+  }

+

+  /**

+   * @param logInfo to be logged

+   */

+  default void warn(final LogInformation logInfo) {

+    log(logInfo);

+  }

+

+  /**

+   * Clears the logger

+   */

+  public void clear();

+

+  /**

+   * Validates the given log information and returns the state

+   *

+   * @param logInfo The log information to be validated

+   * @return true if the log info contains relevant data to log into the this external logger

+   * @throws App4mcLoggerException If the validation fails

+   */

+  public boolean validate(LogInformation logInfo) throws App4mcLoggerException;

+

+  /**

+   * Closes the logger associated with the given log file. The log file parameter should be the abosulute path of the

+   * log file. The abosulute path is used to store the loggers created for a given file

+   *

+   * @param logFile the absolute path of the log file whose logger has to be closed

+   */

+  public void closeLogger(final String logFile);

+}

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
new file mode 100644
index 0000000..b22cec4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/loggers/TextFileLogger.java
@@ -0,0 +1,223 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.loggers;

+

+import java.io.IOException;

+import java.net.URL;

+

+import org.apache.log4j.FileAppender;

+import org.apache.log4j.Level;

+import org.apache.log4j.Logger;

+import org.apache.log4j.PatternLayout;

+import org.apache.log4j.PropertyConfigurator;

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.impl.ITextLogger;

+import org.eclipse.app4mc.sca.logging.manager.Logmanager;

+import org.eclipse.app4mc.sca.logging.util.SCALogConstants;

+import org.eclipse.app4mc.sca.logging.util.App4mcLogUtil;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Platform;

+

+

+/**

+ */

+public final class TextFileLogger implements ITextLogger {

+

+  private static TextFileLogger instance = null;

+

+  private static Logger logger;

+

+  private FileAppender customAppender;

+

+  private boolean isValidLogFile = false;

+

+  /**

+   * Private constructor

+   */

+  private TextFileLogger() {

+

+  }

+

+  /**

+   * Returns the singleton instance of the command line logger

+   *

+   * @return {@link TextFileLogger}

+   */

+  public static synchronized TextFileLogger getInstance() {

+    if (instance == null) {

+      instance = new TextFileLogger();

+    }

+    return instance;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void log(final LogInformation logInfo) {

+    if (isEnabled(logInfo)) {

+      this.isValidLogFile = validate(logInfo);

+      configureLogger(logInfo);

+      switch (logInfo.getSeverity()) {

+        case DEBUG:

+          debug(logInfo);

+          break;

+        case ERROR:

+        case FATAL:

+          error(logInfo);

+          break;

+        case INFO:

+        case SYSTEM:

+        case METRIC:

+          info(logInfo);

+          break;

+        case WARNING:

+          warn(logInfo);

+          break;

+        default:

+          break;

+      }

+    }

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void closeLogger() {

+    if (logger != null) {

+      logger.removeAllAppenders();

+    }

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void clear() {

+    // Nothing right now

+  }

+

+  /**

+   * Configures the logger with specific property

+   */

+  private void configureLogger(final LogInformation logInfo) {

+    try {

+      if (this.isValidLogFile) {

+        synchronized (this) {

+          logger = Logger.getLogger(logInfo.getLogFilePath());

+        }

+        if (!logger.getAllAppenders().hasMoreElements()) {

+          Logger.getRootLogger().getLoggerRepository().resetConfiguration();

+          PatternLayout layout = getLayout(logInfo);

+          this.customAppender = new FileAppender(layout, logInfo.getLogFilePath(), true);

+          this.customAppender.activateOptions();

+          logger.addAppender(this.customAppender);

+        }

+      }

+      else {

+        synchronized (this) {

+          logger = Logger.getLogger("org.eclipse.app4mc.logging.loggers.TextFileLogger");

+        }

+        logger.setLevel(Level.OFF);

+        URL confURL = Platform.getBundle(SCALogConstants.PLUGIN_ID).getEntry(SCALogConstants.LOGGER_PROPERTIES);

+        PropertyConfigurator.configure(FileLocator.toFileURL(confURL).getFile());

+      }

+    }

+    catch (IOException e) {

+      Logmanager.getInstance().logException(this.getClass(), e, SCALogConstants.PLUGIN_ID);

+    }

+  }

+

+  /**

+   * Returns the relevant layout for the given file in the log info.

+   *

+   * @param logInfo {@link LogInformation}

+   * @return {@link PatternLayout}

+   */

+  private PatternLayout getLayout(final LogInformation logInfo) {

+    PatternLayout layout = new PatternLayout("%d{ISO8601} - [%-5p] - %c %x - %m%n");

+    if (logInfo.getLogFilePath().endsWith(SCALogConstants.CSV_EXTENSION)) {

+      layout = new PatternLayout("%m%n");

+    }

+    return layout;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void error(final LogInformation logInfo) {

+    logger.setLevel(Level.ERROR);

+    logger.error(logInfo.getMessage());

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void debug(final LogInformation logInfo) {

+    logger.setLevel(Level.DEBUG);

+    logger.debug(logInfo.getMessage());

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void info(final LogInformation logInfo) {

+    logger.setLevel(Level.INFO);

+    logger.info(logInfo.getMessage());

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void warn(final LogInformation logInfo) {

+    logger.setLevel(Level.WARN);

+    logger.warn(logInfo.getMessage());

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public boolean validate(final LogInformation logInfo) throws App4mcLoggerException {

+    if ((logInfo.getLogFilePath() != null) && !logInfo.getLogFilePath().isEmpty() &&

+        ((logInfo.getLogFilePath().endsWith(SCALogConstants.LOG_EXTENSION) ||

+            logInfo.getLogFilePath().endsWith(SCALogConstants.CSV_EXTENSION)))) {

+      return true;

+    }

+    return false;

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public boolean isEnabled(final LogInformation logInfo) throws App4mcLoggerException {

+    return App4mcLogUtil.isInDebugMode(logInfo);

+  }

+

+  /**

+   * {@inheritDoc}

+   */

+  @Override

+  public void closeLogger(final String logFile) {

+    // TODO Auto-generated method stub

+

+  }

+}

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
new file mode 100644
index 0000000..7ba0f67
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/LogFactory.java
@@ -0,0 +1,157 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.manager;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.eclipse.app4mc.sca.logging.console.loggers.CommandLineLogger;

+import org.eclipse.app4mc.sca.logging.impl.ILogger;

+import org.eclipse.app4mc.sca.logging.loggers.TextFileLogger;

+

+

+/**

+ * Factory class that manages the instance of all types of loggers

+ *

+ */

+public class LogFactory {

+

+  private static Map<LoggerType, ILogger> instance;

+

+ 

+  public enum Severity {

+                        /**

+                         * Error Severity

+                         */

+                        ERROR,

+                        /**

+                         * Warning Severity

+                         */

+                        WARNING,

+                        /**

+                         * Info Severity

+                         */

+                        INFO,

+                        /**

+                         * Debug Severity

+                         */

+                        DEBUG,

+                        /**

+                         * System Severity

+                         */

+                        SYSTEM,

+                        /**

+                         * Fatal Severity

+                         */

+                        FATAL,

+                        /**

+                         * Metric Severiry

+                         */

+                        METRIC,

+                        /**

+                         * UNKNOWN

+                         */

+                        UNKNOWN

+  }

+

+

+  public enum Priority {

+                        /**

+                         * Priority Major

+                         */

+                        MAJOR,

+                        /**

+                         * Priority Minor

+                         */

+                        MINOR,

+                        /**

+                         * Priority Critical

+                         */

+                        CRITICAL,

+                        /**

+                         * Priority Blocker

+                         */

+                        BLOCKER,

+                        /**

+                         * Priority Trivial

+                         */

+                        TRIVIAL

+  }

+

+  public enum LoggerType {

+                          /**

+                           * Eclipse console logger

+                           */

+                          ECLIPSE_CONSOLE,

+                          /**

+                           * General text logger

+                           */

+                          TEXT_FILE,

+                          /**

+                           * Command line logger

+                           */

+                          CMD_LINE,

+                          /**

+                           * Error log view

+                           */

+                          ERROR_LOG,

+                          /**

+                           * Problems log view

+                           */

+                          PROBLEMS_LOG,

+

+  }

+

+  /**

+   * Return the singleton instance of different type of loggers

+   *

+   * @param type The type of the logger {@link LoggerType}

+   * @return {@link ILogger}

+   */

+  public static synchronized ILogger getLogger(final LoggerType type) {

+    if (instance == null) {

+      init();

+    }

+    return instance.get(type);

+  }

+

+  /**

+   * Initializes all the non UI loggers which are implemented as part of this plugin

+   */

+  private static void init() {

+    instance = new HashMap<>();

+    instance.put(LoggerType.CMD_LINE, CommandLineLogger.getInstance());

+    instance.put(LoggerType.TEXT_FILE, TextFileLogger.getInstance());

+  }

+

+

+  /**

+   * @return the logFactory

+   */

+  public static Map<LoggerType, ILogger> getLogFactory() {

+    return instance;

+  }

+

+

+  /**

+   * @param type The logger type

+   * @param logger {@link ILogger}

+   */

+  public static void addToLogFactory(final LoggerType type, final ILogger logger) {

+    if (instance == null) {

+      init();

+    }

+    instance.put(type, logger);

+  }

+}

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
new file mode 100644
index 0000000..67fbd18
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.logging/src/org/eclipse/app4mc/sca/logging/manager/Logmanager.java
@@ -0,0 +1,557 @@
+/**

+ * *******************************************************************************

+ *  Copyright (c) 2017 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 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.sca.logging.manager;

+

+import java.io.File;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.concurrent.CopyOnWriteArraySet;

+

+import org.eclipse.app4mc.sca.logging.exception.App4mcLoggerException;

+import org.eclipse.app4mc.sca.logging.impl.IConfiguration;

+import org.eclipse.app4mc.sca.logging.impl.IConsoleLogger;

+import org.eclipse.app4mc.sca.logging.impl.IExternalLogger;

+import org.eclipse.app4mc.sca.logging.impl.ILogger;

+import org.eclipse.app4mc.sca.logging.impl.ITextLogger;

+import org.eclipse.app4mc.sca.logging.manager.LogFactory.LoggerType;

+import org.eclipse.app4mc.sca.logging.manager.LogFactory.Severity;

+import org.eclipse.app4mc.sca.logging.notification.ILogNotificationListener;

+import org.eclipse.app4mc.sca.logging.notification.LogNotificationEvent;

+import org.eclipse.app4mc.sca.logging.util.App4mcLogUtil;

+import org.eclipse.app4mc.sca.logging.util.LogInformation;

+import org.eclipse.app4mc.sca.logging.util.SCALogConstants;

+import org.eclipse.core.runtime.preferences.IEclipsePreferences;

+import org.eclipse.core.runtime.preferences.InstanceScope;

+

+

+/**

+ * <p>

+ * The class which manages all the logging functionality of the SCA2Amalthea component. The class determines if the

+ * product build is a standalone and if so the logging would be handled in house.

+ * </p>

+ */

+public final class Logmanager {

+

+  private static volatile Logmanager instance = null;

+

+  private boolean debugMode;

+

+  private final Map<String, IExternalLogger> externalLoggers = new HashMap<>();

+

+  private final CopyOnWriteArraySet<ILogNotificationListener> notificationListeners =

+      new CopyOnWriteArraySet<ILogNotificationListener>();

+

+  private final CopyOnWriteArraySet<IConfiguration> configurations = new CopyOnWriteArraySet<IConfiguration>();

+

+  /**

+   * Registration of external UI loggers.

+   *

+   * @param logger {@link IExternalLogger}

+   */

+  public void registerAsExternalLogger(final IExternalLogger logger) {

+    this.externalLoggers.put(logger.getName(), logger);

+  }

+

+  /**

+   * Registration of notification listener.

+   *

+   * @param listener {@link ILogNotificationListener}

+   */

+  public void registerAsListener(final ILogNotificationListener listener) {

+    this.notificationListeners.add(listener);

+  }

+

+  /**

+   * Registers the given configuration into the list of configurations that the log manager would consider. If there are

+   * no configurations registered then the tool would abort if the logging is requested from the locomo tool.

+   *

+   * @param configuration {@link IConfiguration}

+   */

+  public void registerAsConfiguration(final IConfiguration configuration) {

+    this.configurations.add(configuration);

+  }

+

+  /**

+   * Private constructor

+   */

+  private Logmanager() {

+    // Private constructor

+  }

+

+  /**

+   * @param logInfo The log information to be validated

+   * @param type The logger type

+   * @throws App4mcLoggerException App4mcLoggerException

+   */

+  private void validateParameters(final LogInformation logInfo, final LoggerType type) throws App4mcLoggerException {

+    if (logInfo.getSeverity() == null) {

+      throw new App4mcLoggerException(SCALogConstants.SEVERITY_NULL_MSG);

+    }

+    if ((logInfo.getMessage() == null) || (logInfo.getMessageId() == null)) {

+      throw new App4mcLoggerException(SCALogConstants.LOG_MESSAGE_NULL_MSG);

+    }

+    if (logInfo.getClass() == null) {

+      throw new App4mcLoggerException(SCALogConstants.CLASS_INFO_NULL_MSG);

+    }

+    validateErrorLogParameters(logInfo, type);

+    validateProblemsLogParameters(logInfo, type);