SCA2AMALTHEA provides commandlie interface
Signed-off-by: Aoun.Raza@de.bosch.com <Aoun.Raza@de.bosch.com>
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
index c5c1931..f36a144 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca.util/src/org/eclipse/app4mc/sca/util/util/SCAUtils.java
@@ -35,7 +35,11 @@
     return createSCADirectory(projectPath, directoryType.getDirectoryName(), componentDirectoryName);

   }

 

-

+public static boolean isAbsolutePath(final String path) {

+    String regex = "[a-zA-Z]:\\\\.*";

+    return path.matches(regex);

+  } 

+  

   private static String createSCADirectory(final String projectPath, final String dirType,

       final String componentDirectoryName) {

     File scaDir;

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.classpath b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.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.sca2amalthea.headless/.project b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.project
new file mode 100644
index 0000000..1538302
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.sca2amalthea.headless</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.eclipse.pde.ds.core.builder</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.sca2amalthea.headless/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/.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.sca2amalthea.headless/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a56113d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Headless
+Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.headless
+Bundle-Version: 1.0.0.qualifier
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.headless
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.eclipse.osgi.service.environment,
+ org.osgi.service.component.annotations;resolution:=optional
+Service-Component: OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter.xml,
+ OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter.xml
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.app4mc.sca2amalthea.llvm,
+ org.eclipse.equinox.registry,
+ org.eclipse.app4mc.sca.util,
+ com.google.guava,
+ org.eclipse.app4mc.sca.logging
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter.xml
new file mode 100644
index 0000000..13d57ee
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="runSCA2Amalthea" immediate="true" name="org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter">
+   <reference bind="setLauncherArguments" interface="java.lang.Object" name="LauncherArguments" target="(launcher.arguments=*)"/>
+   <implementation class="org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter"/>
+</scr:component>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter.xml b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter.xml
new file mode 100644
index 0000000..d9ceade
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" immediate="true" name="org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter">
+   <reference cardinality="1..1" field="environmentInfo" interface="org.eclipse.osgi.service.environment.EnvironmentInfo" name="environmentInfo"/>
+   <implementation class="org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter"/>
+</scr:component>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/about.html b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/about.html
new file mode 100644
index 0000000..164f781
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>About</title>
+</head>
+<body lang="EN-US">
+	<h2>About This Content</h2>
+
+	<p>November 30, 2017</p>
+	<h3>License</h3>
+
+	<p>
+		The Eclipse Foundation makes available all content in this plug-in
+		(&quot;Content&quot;). Unless otherwise indicated below, the Content
+		is provided to you under the terms and conditions of the Eclipse
+		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+		For purposes of the EPL, &quot;Program&quot; will mean the Content.
+	</p>
+
+	<p>
+		If you did not receive this Content directly from the Eclipse
+		Foundation, the Content is being redistributed by another party
+		(&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content. Check the
+		Redistributor's license that was provided with the Content. If no such
+		license exists, contact the Redistributor. Unless otherwise indicated
+		below, the terms and conditions of the EPL still apply to any source
+		code in the Content and such source code may be obtained at <a
+			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+	</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/build.properties b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/build.properties
new file mode 100644
index 0000000..33dd97e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaBndStarter.xml,\
+               OSGI-INF/org.eclipse.app4mc.sca2amalthea.headless.SCA2AmaltheaEquinoxStarter.xml
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/epl-2.0.html b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/epl-2.0.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/epl-2.0.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Eclipse Public License - Version 2.0</title>
+    <style type="text/css">
+      body {
+        margin: 1.5em 3em;
+      }
+      h1{
+        font-size:1.5em;
+      }
+      h2{
+        font-size:1em;
+        margin-bottom:0.5em;
+        margin-top:1em;
+      }
+      p {
+        margin-top:  0.5em;
+        margin-bottom: 0.5em;
+      }
+      ul, ol{
+        list-style-type:none;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>Eclipse Public License - v 2.0</h1>
+    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
+      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
+    </p>
+    <h2 id="definitions">1. DEFINITIONS</h2>
+    <p>&ldquo;Contribution&rdquo; means:</p>
+    <ul>
+      <li>a) in the case of the initial Contributor, the initial content
+        Distributed under this Agreement, and
+      </li>
+      <li>
+        b) in the case of each subsequent Contributor:
+        <ul>
+          <li>i) changes to the Program, and</li>
+          <li>ii) additions to the Program;</li>
+        </ul>
+        where such changes and/or additions to the Program originate from
+        and are Distributed by that particular Contributor. A Contribution
+        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
+        Contributor itself or anyone acting on such Contributor&#039;s behalf.
+        Contributions do not include changes or additions to the Program that
+        are not Modified Works.
+      </li>
+    </ul>
+    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
+    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
+      are necessarily infringed by the use or sale of its Contribution alone
+      or when combined with the Program.
+    </p>
+    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
+      Agreement.
+    </p>
+    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
+      or any Secondary License (as applicable), including Contributors.
+    </p>
+    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
+      form, that is based on (or derived from) the Program and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship.
+    </p>
+    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
+      results from an addition to, deletion from, or modification of the
+      contents of the Program, including, for purposes of clarity any new file
+      in Source Code form that contains any contents of the Program. Modified
+      Works shall not include works that contain only declarations, interfaces,
+      types, classes, structures, or files of the Program solely in each case
+      in order to link to, bind by name, or subclass the Program or Modified
+      Works thereof.
+    </p>
+    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
+      in any manner that enables the transfer of a copy.
+    </p>
+    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
+      modifications, including but not limited to software source code,
+      documentation source, and configuration files.
+    </p>
+    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
+      Version 2.0, or any later versions of that license, including any
+      exceptions or additional permissions as identified by the initial
+      Contributor.
+    </p>
+    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+    <ul>
+      <li>a) Subject to the terms of this Agreement, each Contributor hereby
+        grants Recipient a non-exclusive, worldwide, royalty-free copyright
+        license to reproduce, prepare Derivative Works of, publicly display,
+        publicly perform, Distribute and sublicense the Contribution of such
+        Contributor, if any, and such Derivative Works.
+      </li>
+      <li>b) Subject to the terms of this Agreement, each Contributor hereby
+        grants Recipient a non-exclusive, worldwide, royalty-free patent
+        license under Licensed Patents to make, use, sell, offer to sell,
+        import and otherwise transfer the Contribution of such Contributor,
+        if any, in Source Code or other form. This patent license shall
+        apply to the combination of the Contribution and the Program if,
+        at the time the Contribution is added by the Contributor, such
+        addition of the Contribution causes such combination to be covered
+        by the Licensed Patents. The patent license shall not apply to any
+        other combinations which include the Contribution. No hardware per
+        se is licensed hereunder.
+      </li>
+      <li>c) Recipient understands that although each Contributor grants the
+        licenses to its Contributions set forth herein, no assurances are
+        provided by any Contributor that the Program does not infringe the
+        patent or other intellectual property rights of any other entity.
+        Each Contributor disclaims any liability to Recipient for claims
+        brought by any other entity based on infringement of intellectual
+        property rights or otherwise. As a condition to exercising the rights
+        and licenses granted hereunder, each Recipient hereby assumes sole
+        responsibility to secure any other intellectual property rights needed,
+        if any. For example, if a third party patent license is required to
+        allow Recipient to Distribute the Program, it is Recipient&#039;s
+        responsibility to acquire that license before distributing the Program.
+      </li>
+      <li>d) Each Contributor represents that to its knowledge it has sufficient
+        copyright rights in its Contribution, if any, to grant the copyright
+        license set forth in this Agreement.
+      </li>
+      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+        makes additional grants to any Recipient (other than those set forth
+        in this Agreement) as a result of such Recipient&#039;s receipt of the
+        Program under the terms of a Secondary License (if permitted under
+        the terms of Section 3).
+      </li>
+    </ul>
+    <h2 id="requirements">3. REQUIREMENTS</h2>
+    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+    <ul>
+      <li>a) the Program must also be made available as Source Code, in
+        accordance with section 3.2, and the Contributor must accompany
+        the Program with a statement that the Source Code for the Program
+        is available under this Agreement, and informs Recipients how to
+        obtain it in a reasonable manner on or through a medium customarily
+        used for software exchange; and
+      </li>
+      <li>
+        b) the Contributor may Distribute the Program under a license
+        different than this Agreement, provided that such license:
+        <ul>
+          <li>i) effectively disclaims on behalf of all other Contributors all
+            warranties and conditions, express and implied, including warranties
+            or conditions of title and non-infringement, and implied warranties
+            or conditions of merchantability and fitness for a particular purpose;
+          </li>
+          <li>ii) effectively excludes on behalf of all other Contributors all
+            liability for damages, including direct, indirect, special, incidental
+            and consequential damages, such as lost profits;
+          </li>
+          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
+            Source Code under section 3.2; and
+          </li>
+          <li>iv) requires any subsequent distribution of the Program by any party
+            to be under a license that satisfies the requirements of this section 3.
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <p>3.2 When the Program is Distributed as Source Code:</p>
+    <ul>
+      <li>a) it must be made available under this Agreement, or if the Program (i)
+        is combined with other material in a separate file or files made available
+        under a Secondary License, and (ii) the initial Contributor attached to
+        the Source Code the notice described in Exhibit A of this Agreement,
+        then the Program may be made available under the terms of such
+        Secondary Licenses, and
+      </li>
+      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+    </ul>
+    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+      attribution notices, disclaimers of warranty, or limitations of liability
+      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
+      they Distribute, provided that Contributors may add their own appropriate
+      notices.
+    </p>
+    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+    <p>Commercial distributors of software may accept certain responsibilities
+      with respect to end users, business partners and the like. While this
+      license is intended to facilitate the commercial use of the Program, the
+      Contributor who includes the Program in a commercial product offering should
+      do so in a manner which does not create potential liability for other
+      Contributors. Therefore, if a Contributor includes the Program in a
+      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
+      hereby agrees to defend and indemnify every other Contributor
+      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
+      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
+      brought by a third party against the Indemnified Contributor to the extent
+      caused by the acts or omissions of such Commercial Contributor in connection
+      with its distribution of the Program in a commercial product offering.
+      The obligations in this section do not apply to any claims or Losses relating
+      to any actual or alleged intellectual property infringement. In order to
+      qualify, an Indemnified Contributor must: a) promptly notify the
+      Commercial Contributor in writing of such claim, and b) allow the Commercial
+      Contributor to control, and cooperate with the Commercial Contributor in,
+      the defense and any related settlement negotiations. The Indemnified
+      Contributor may participate in any such claim at its own expense.
+    </p>
+    <p>For example, a Contributor might include the Program
+      in a commercial product offering, Product X. That Contributor is then a
+      Commercial Contributor. If that Commercial Contributor then makes performance
+      claims, or offers warranties related to Product X, those performance claims
+      and warranties are such Commercial Contributor&#039;s responsibility alone.
+      Under this section, the Commercial Contributor would have to defend claims
+      against the other Contributors related to those performance claims and
+      warranties, and if a court requires any other Contributor to pay any damages
+      as a result, the Commercial Contributor must pay those damages.
+    </p>
+    <h2 id="warranty">5. NO WARRANTY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
+      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+      solely responsible for determining the appropriateness of using and
+      distributing the Program and assumes all risks associated with its
+      exercise of rights under this Agreement, including but not limited to the
+      risks and costs of program errors, compliance with applicable laws, damage
+      to or loss of data, programs or equipment, and unavailability or
+      interruption of operations.
+    </p>
+    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+    </p>
+    <h2 id="general">7. GENERAL</h2>
+    <p>If any provision of this Agreement is invalid or unenforceable under
+      applicable law, it shall not affect the validity or enforceability of the
+      remainder of the terms of this Agreement, and without further action by the
+      parties hereto, such provision shall be reformed to the minimum extent
+      necessary to make such provision valid and enforceable.
+    </p>
+    <p>If Recipient institutes patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+      (excluding combinations of the Program with other software or hardware)
+      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
+      under Section 2(b) shall terminate as of the date such litigation is filed.
+    </p>
+    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
+      comply with any of the material terms or conditions of this Agreement and
+      does not cure such failure in a reasonable period of time after becoming
+      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
+      terminate, Recipient agrees to cease use and distribution of the Program
+      as soon as reasonably practicable. However, Recipient&#039;s obligations under
+      this Agreement and any licenses granted by Recipient relating to the
+      Program shall continue and survive.
+    </p>
+    <p>Everyone is permitted to copy and distribute copies of this Agreement,
+      but in order to avoid inconsistency the Agreement is copyrighted and may
+      only be modified in the following manner. The Agreement Steward reserves
+      the right to publish new versions (including revisions) of this Agreement
+      from time to time. No one other than the Agreement Steward has the right
+      to modify this Agreement. The Eclipse Foundation is the initial Agreement
+      Steward. The Eclipse Foundation may assign the responsibility to serve as
+      the Agreement Steward to a suitable separate entity. Each new version of
+      the Agreement will be given a distinguishing version number. The Program
+      (including Contributions) may always be Distributed subject to the version
+      of the Agreement under which it was received. In addition, after a new
+      version of the Agreement is published, Contributor may elect to Distribute
+      the Program (including its Contributions) under the new version.
+    </p>
+    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+      receives no rights or licenses to the intellectual property of any
+      Contributor under this Agreement, whether expressly, by implication,
+      estoppel or otherwise. All rights in the Program not expressly granted
+      under this Agreement are reserved. Nothing in this Agreement is intended
+      to be enforceable by any entity that is not a Contributor or Recipient.
+      No third-party beneficiary rights are created under this Agreement.
+    </p>
+    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
+    <p>&ldquo;This Source Code may also be made available under the following 
+    	Secondary Licenses when the conditions for such availability set forth 
+    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+    	version(s), and exceptions or additional permissions here}.&rdquo;
+    </p>
+    <blockquote>
+      <p>Simply including a copy of this Agreement, including this Exhibit A
+        is not sufficient to license the Source Code under Secondary Licenses.
+      </p>
+      <p>If it is not possible or desirable to put the notice in a particular file,
+        then You may include the notice in a location (such as a LICENSE file in a
+        relevant directory) where a recipient would be likely to look for
+        such a notice.
+      </p>
+      <p>You may add additional accurate notices of copyright ownership.</p>
+    </blockquote>
+  </body>
+</html>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/AbstractSCA2AmaltheaStarter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/AbstractSCA2AmaltheaStarter.java
new file mode 100644
index 0000000..e7f825d
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/AbstractSCA2AmaltheaStarter.java
@@ -0,0 +1,296 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.headless;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.eclipse.app4mc.sca.logging.manager.LogFactory.Severity;
+import org.eclipse.app4mc.sca.logging.manager.Logmanager;
+import org.eclipse.app4mc.sca.logging.util.LogInformation;
+import org.eclipse.app4mc.sca2amalthea.llvm.headless.GenerateAmaltheaModelFromLLVM;
+import org.eclipse.app4mc.sca2amalthea.llvm.headless.SCA2AMALTHEAStarterProperties;
+import org.eclipse.app4mc.sca2amalthea.llvm.util.SCA2AmaltheaHeadlessConstants;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
+import com.google.common.base.Strings;
+
+/**
+ * Common class for both the BndStarter and Equinox starter. The class parses the command line parameters and generates
+ * amalthea model.
+ */
+public class AbstractSCA2AmaltheaStarter {
+
+  private String pdir;
+  private String astPath;
+  private String blog;
+  private String hdirList;
+  private String taskInfo;
+  private String lockInfo;
+  private String enableStructMember;
+  private String xmlCallTreePath;
+  private String outDir;
+
+  /**
+   * Performs static code analysis and generates a amalthea model.
+   *
+   * @param args command line args provided by the user.
+   * @param isInteractive if the OSGI console has to stay open.
+   * @param showConsoleLog true if a seperate shell has to be opened and if it should stay open.
+   */
+  protected void runSCA2Amalthea(final String[] args, final boolean isInteractive, final boolean showConsoleLog) {
+    boolean isParseCmdArgsSuccessfull = parseCommandLineParameters(args);
+    if (isParseCmdArgsSuccessfull) {
+      SCA2AMALTHEAStarterProperties sca2AmaltheaStarterProperties = new SCA2AMALTHEAStarterProperties();
+      sca2AmaltheaStarterProperties.setProjectPath(this.pdir);
+      sca2AmaltheaStarterProperties.getLlvmStarterProperties().setTraverseAstFile(this.astPath);
+      sca2AmaltheaStarterProperties.setBuildLogFile(this.blog);
+      sca2AmaltheaStarterProperties.setHDirFilePath(this.hdirList);
+      sca2AmaltheaStarterProperties.setTaskListFile(this.taskInfo);
+      sca2AmaltheaStarterProperties.setLockinfoFile(this.lockInfo);
+      sca2AmaltheaStarterProperties.setIsStructMemberEnabled(Boolean.parseBoolean(this.enableStructMember));
+      sca2AmaltheaStarterProperties.setPathToxmlCallTree(this.xmlCallTreePath);
+      sca2AmaltheaStarterProperties.setOutPutPath(this.outDir);
+      boolean isValidationSuccessfull = validateInputParameters(sca2AmaltheaStarterProperties);
+      try {
+        if (isValidationSuccessfull) {
+          IStatus status = new GenerateAmaltheaModelFromLLVM(sca2AmaltheaStarterProperties).run();
+          if (status == Status.OK_STATUS) {
+            logOnCmdLine("Amalthea model generated successfully");
+          }
+          else {
+            logOnCmdLine("Amalthea model was not successfull.");
+          }
+        }
+      }
+      catch (Exception e) {
+        logOnCmdLine("Exception while generating amalthea model " + e.getMessage());
+      }
+    }
+
+    if (showConsoleLog && !isInteractive) {
+      logOnCmdLine("Press Enter to exit the shell");
+      try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
+        reader.readLine();
+      }
+      catch (IOException e) {
+        System.out.println("Error on waiting for user input " + e);
+      }
+    }
+    if (!isInteractive) {
+      System.exit(0);
+    }
+  }
+
+  private boolean parseCommandLineParameters(final String args[]) {
+    boolean parseSuccess = true;
+    for (int i = 0; i < args.length; i++) {
+      if (args[i].equals(SCA2AmaltheaHeadlessConstants.PDIR)) {
+        i++;
+        this.pdir = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.ASTP)) {
+        i++;
+        this.astPath = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.BLOG)) {
+        i++;
+        this.blog = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.HDIR_LIST)) {
+        i++;
+        this.hdirList = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.TASKINFO)) {
+        i++;
+        this.taskInfo = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.LOCKINFO)) {
+        i++;
+        this.lockInfo = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER)) {
+        this.enableStructMember = "True";
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.XMLCALLTREE_PATH)) {
+        i++;
+        this.xmlCallTreePath = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.OUTDIR)) {
+        i++;
+        this.outDir = args[i];
+      }
+      else if (args[i].equals(SCA2AmaltheaHeadlessConstants.HELP)) {
+       printHelp();
+        parseSuccess = false;
+        break;
+      }
+      else {
+        logOnCmdLine("Invalid option " + args[i]);
+        parseSuccess = false;
+        break;
+      }
+    }
+    return parseSuccess;
+  }
+
+private void printHelp(){
+
+   System.out.println("java -jar sca.jar <-pdir> [-astp] [-hdirlist] [-taskinfo] [-lockinfo] [-enableStructMember] [-xmlCallTreePath] [-outdir]\n");
+        System.out.println("Mandatory parameters:");
+        System.out.println("\t"+ SCA2AmaltheaHeadlessConstants.PDIR + "  " + SCA2AmaltheaHeadlessConstants.C_PROJECT_DIR_HELP);
+        System.out.println("\t"+ SCA2AmaltheaHeadlessConstants.ASTP + "  " + SCA2AmaltheaHeadlessConstants.AST_PARSER_HELP+"\n");
+        System.out.println("Optional parameters:");
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.HDIR_LIST + "  " + SCA2AmaltheaHeadlessConstants.HDIR_LIST_HELP);
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.TASKINFO + "  " + SCA2AmaltheaHeadlessConstants.TASKINFO_HELP);
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.LOCKINFO + "  " + SCA2AmaltheaHeadlessConstants.LOCKINFO_HELP);
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER + "  " +
+            SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER_HELP);
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.XMLCALLTREE_PATH + "  " + SCA2AmaltheaHeadlessConstants.XMLCALLTREE_HELP);
+        System.out.println("\t"+SCA2AmaltheaHeadlessConstants.OUTDIR + "  " + SCA2AmaltheaHeadlessConstants.OUTDIR_HELP);
+}
+  private boolean validateInputParameters(final SCA2AMALTHEAStarterProperties properties) {
+    boolean validationSuccess = true;
+    if (properties != null) {
+      if (Strings.isNullOrEmpty(properties.getProjectPath())) {
+        logOnCmdLine("Manadatory argument is missing");
+        printHelp();
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getProjectPath()) && !new File(properties.getProjectPath()).exists()) {
+        logOnCmdLine("Project Path " + properties.getProjectPath() + " does not exist ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getProjectPath()) &&
+          !new File(properties.getProjectPath()).isDirectory()) {
+        logOnCmdLine("Project Path " + properties.getProjectPath() + "  is not a directory");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !new File(properties.getPathToxmlCallTree()).exists()) {
+        logOnCmdLine("XMLCalltree Path " + properties.getPathToxmlCallTree() + " does not exist ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !new File(properties.getPathToxmlCallTree()).isFile()) {
+        logOnCmdLine("XMLCalltree Path " + properties.getPathToxmlCallTree() + "  is not a file");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !properties.getPathToxmlCallTree().endsWith(".xml")) {
+        logOnCmdLine("XMLCalltree Path " + properties.getPathToxmlCallTree() + "  should have .xml extension");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !new File(properties.getPathToxmlCallTree()).getName().equals("XMLCalltree.xml")) {
+        logOnCmdLine("The xml file name should be XMLCalltree.xml");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !Strings.isNullOrEmpty(properties.getTraverseAstFile())) {
+        logOnCmdLine("-astp parameter should not be provided if xmlCallTreePath option is provided ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !Strings.isNullOrEmpty(properties.getBuildLogFile())) {
+        logOnCmdLine("-blog parameter should not be provided if xmlCallTreePath option is provided ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          !Strings.isNullOrEmpty(properties.gethDirFilePath())) {
+        logOnCmdLine("-hdirlist parameter should not be provided if xmlCallTreePath option is provided ");
+        validationSuccess = false;
+      }
+      else if (Strings.isNullOrEmpty(properties.getPathToxmlCallTree()) &&
+          Strings.isNullOrEmpty(properties.getTraverseAstFile())) {
+        logOnCmdLine("-astp parameter is mandatory");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getTraverseAstFile()) &&
+          !new File(properties.getTraverseAstFile()).exists()) {
+        logOnCmdLine("Ast Path " + properties.getTraverseAstFile() + "  does not exist");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getBuildLogFile()) &&
+          !new File(properties.getBuildLogFile()).exists()) {
+        logOnCmdLine("Build command log file path " + properties.getBuildLogFile() + " does not exist");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getBuildLogFile()) &&
+          !new File(properties.getBuildLogFile()).isFile()) {
+        logOnCmdLine("Build command log file path " + properties.getBuildLogFile() + "  is not a file");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getBuildLogFile()) && !properties.getBuildLogFile().endsWith(".log")) {
+        logOnCmdLine("Build command log file " + properties.getBuildLogFile() + " should have a .log extension");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getTaskListFile()) &&
+          !new File(properties.getTaskListFile()).exists()) {
+        logOnCmdLine("Task info file path " + properties.getTaskListFile() + " does not exist ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getTaskListFile()) &&
+          !new File(properties.getTaskListFile()).isFile()) {
+        logOnCmdLine("Task info file path " + properties.getTaskListFile() + " is not a file ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getTaskListFile()) && !properties.getTaskListFile().endsWith(".csv")) {
+        logOnCmdLine("Task info file path " + properties.getTaskListFile() + " should have a .csv extension");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getLockinfoFile()) &&
+          !new File(properties.getLockinfoFile()).exists()) {
+        logOnCmdLine("Lock info file path " + properties.getLockinfoFile() + " does not exist");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getLockinfoFile()) &&
+          !new File(properties.getLockinfoFile()).isFile()) {
+        logOnCmdLine("Lock info file path " + properties.getLockinfoFile() + " is not a file ");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getLockinfoFile()) && !properties.getLockinfoFile().endsWith(".csv")) {
+        logOnCmdLine("Lock info file path " + properties.getLockinfoFile() + " should have a .csv extension");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getOutPutPath()) && !new File(properties.getOutPutPath()).exists()) {
+        logOnCmdLine("Output directory path " + properties.getOutPutPath() + " does not exist");
+        validationSuccess = false;
+      }
+      else if (!Strings.isNullOrEmpty(properties.getOutPutPath()) &&
+          !new File(properties.getOutPutPath()).isDirectory()) {
+        logOnCmdLine("Output directory path " + properties.getOutPutPath() + " is not a directory");
+        validationSuccess = false;
+      }
+      if (!Strings.isNullOrEmpty(properties.gethDirFilePath())) {
+        String[] pathList = properties.gethDirFilePath().split(File.pathSeparator);
+        for (String path : pathList) {
+          if (!new File(path).exists()) {
+            logOnCmdLine("Header file path " + path + " does not exist");
+            validationSuccess = false;
+            break;
+          }
+        }
+      }
+    }
+    else {
+      validationSuccess = false;
+    }
+    return validationSuccess;
+  }
+
+  private void logOnCmdLine(final String message) {
+    LogInformation logInformation = new LogInformation();
+    logInformation.setMessage(message);
+    logInformation.setSeverity(Severity.INFO);
+    logInformation.setMessageId("DEFAULT_ID");
+    logInformation.setLogClass(this.getClass());
+    Logmanager.getInstance().logOnCommandLine(logInformation);
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaBndStarter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaBndStarter.java
new file mode 100644
index 0000000..69f9cbb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaBndStarter.java
@@ -0,0 +1,50 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.headless;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * This class gets activated when the launcher arguments provided by the bnd launcher are available.This class is
+ * responsible for handling the command line parameters when invoked through a executable jar generated using bnd
+ * export.
+ */
+@Component(immediate = true)
+public class SCA2AmaltheaBndStarter extends AbstractSCA2AmaltheaStarter {
+
+  private String[] launcherArguments;
+
+  @Reference(target = "(launcher.arguments=*)")
+  void setLauncherArguments(final Object object, final Map<String, Object> launcherMap) {
+    this.launcherArguments = (String[]) launcherMap.get("launcher.arguments");
+  }
+
+  /**
+   * Extracts the command line arguments and processes them to generate a amalthea model.
+   */
+  @Activate
+  public void runSCA2Amalthea() {
+    try {
+      String consoleProperty = System.getProperty("osgi.console");
+      boolean isInteractive = (consoleProperty != null) && (consoleProperty.length() == 0);
+
+      String[] args = Arrays.stream(this.launcherArguments)
+          .filter(arg -> !"-console".equals(arg) && !"-consoleLog".equals(arg)).toArray(String[]::new);
+
+      runSCA2Amalthea(args, isInteractive, false);
+
+    }
+    catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}
+
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaEquinoxStarter.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaEquinoxStarter.java
new file mode 100644
index 0000000..9fc7cf4
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.headless/src/org/eclipse/app4mc/sca2amalthea/headless/SCA2AmaltheaEquinoxStarter.java
@@ -0,0 +1,47 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.headless;
+
+import java.util.Arrays;
+
+import org.eclipse.osgi.service.environment.EnvironmentInfo;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * This class is responsible for handling the command line parameters when sca2Amalthea is invoked through the equinox
+ * executable.
+ */
+@Component(immediate = true)
+public class SCA2AmaltheaEquinoxStarter extends AbstractSCA2AmaltheaStarter {
+
+  @Reference
+  EnvironmentInfo environmentInfo;
+
+
+  @Activate
+  void activate() {
+    if ((this.environmentInfo.getFrameworkArgs() != null) && (this.environmentInfo.getNonFrameworkArgs() != null)) {    	
+    	boolean isThisAProduct =
+				Arrays.asList(environmentInfo.getNonFrameworkArgs()).stream().anyMatch(arg->arg.equals("-product"))
+				|| this.environmentInfo.getProperty("eclipse.product") != null;
+		boolean isThisApplication =
+				Arrays.asList(environmentInfo.getNonFrameworkArgs()).stream().anyMatch(arg->arg.equals("-application"))
+				|| this.environmentInfo.getProperty("eclipse.application") != null;
+		
+	  if(!isThisAProduct && !isThisApplication) {
+		  boolean showConsoleLog =
+          Arrays.stream(this.environmentInfo.getFrameworkArgs()).anyMatch(arg -> "-consoleLog".equals(arg));
+		  boolean isInteractive =
+          Arrays.stream(this.environmentInfo.getFrameworkArgs()).anyMatch(arg -> "-console".equals(arg));
+
+		  String args[] = this.environmentInfo.getNonFrameworkArgs();
+		  runSCA2Amalthea(args, isInteractive, showConsoleLog);
+	  }
+    }
+  }
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
index da40bd9..8b373e4 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/META-INF/MANIFEST.MF
@@ -28,6 +28,7 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.sca2amalthea.llvm.headless,
  org.eclipse.app4mc.sca2amalthea.llvm.srcfiles.support,
- org.eclipse.app4mc.sca2amalthea.llvm.starter
+ org.eclipse.app4mc.sca2amalthea.llvm.starter,
+ org.eclipse.app4mc.sca2amalthea.llvm.util
 Bundle-Activator: org.eclipse.app4mc.sca2amalthea.llvm.Activator
 Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.llvm
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
index a3ae3a0..8cf8be9 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/CmdLineArgumentParser.java
@@ -1,16 +1,7 @@
 /**

- ********************************************************************************

- * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available

+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/

+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation

  */

 package org.eclipse.app4mc.sca2amalthea.llvm.headless;

 

@@ -23,7 +14,7 @@
 import org.apache.commons.cli.ParseException;

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

 import org.eclipse.app4mc.sca2amalthea.llvm.Activator;

-import org.eclipse.app4mc.sca2amalthea.llvm.util.LLVMConstants;

+import org.eclipse.app4mc.sca2amalthea.llvm.util.SCA2AmaltheaHeadlessConstants;

 

 /**

  * Command line parser class. Creates a wrapper out of the arguments passed in the headless command line prompt.

@@ -52,100 +43,125 @@
       cmd = parser.parse(helpOptions, args, true);

       if (cmd.hasOption("h")) {

         HelpFormatter helpformatter = new HelpFormatter();

-        helpformatter.printHelp("GenerateAmaltheaModelFromLLVM", options);

+        helpformatter.printHelp("Generate Amalthea from c sources", options);

         return null;

       }

 

       // now parse main options

       cmd = parser.parse(options, args);

-      String cProjectPath = cmd.getOptionValue(LLVMConstants.PDIR);

-      String hFilePathList = null;

-      if (cmd.hasOption(LLVMConstants.HDIR_LIST)) {

-        hFilePathList = cmd.getOptionValue(LLVMConstants.HDIR_LIST);

-      }

-      String buildLogFilePath = null;

-      if (cmd.hasOption(LLVMConstants.BLOG)) {

-        buildLogFilePath = cmd.getOptionValue(LLVMConstants.BLOG);

-      }

+      String cProjectPath = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.PDIR);

+

       String astpPath = null;

-      if (cmd.hasOption(LLVMConstants.ASTP)) {

-        astpPath = cmd.getOptionValue(LLVMConstants.ASTP);

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.ASTP)) {

+        astpPath = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.ASTP);

       }

-      String outdir = null;

-      if (cmd.hasOption(LLVMConstants.OUTDIR)) {

-        outdir = cmd.getOptionValue(LLVMConstants.OUTDIR);

+

+      String buildLogFilePath = null;

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.BLOG)) {

+        buildLogFilePath = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.BLOG);

       }

+

+      String hFilePathList = null;

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.HDIR_LIST)) {

+        hFilePathList = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.HDIR_LIST);

+      }

+

       String taskinfo = null;

-      if (cmd.hasOption(LLVMConstants.TASKINFO)) {

-        taskinfo = cmd.getOptionValue(LLVMConstants.TASKINFO);

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.TASKINFO)) {

+        taskinfo = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.TASKINFO);

       }

+

       String lockinfo = null;

-      if (cmd.hasOption(LLVMConstants.LOCKINFO)) {

-        lockinfo = cmd.getOptionValue(LLVMConstants.LOCKINFO);

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.LOCKINFO)) {

+        lockinfo = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.LOCKINFO);

       }

-      

-      String enableStructMembers=null;

-      if(cmd.hasOption(LLVMConstants.ENABLE_STRUCT_MEMBER)){

-    	  enableStructMembers=cmd.getOptionValue(LLVMConstants.ENABLE_STRUCT_MEMBER);

+

+      String enableStructMembers = null;

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER)) {

+        enableStructMembers = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER);

       }

-      return new SCA2AMALTHEAStarterProperties(astpPath, outdir, taskinfo, 10, cProjectPath, hFilePathList,

-          buildLogFilePath, lockinfo, Boolean.valueOf(enableStructMembers));

+

+      String outdir = null;

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.OUTDIR)) {

+        outdir = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.OUTDIR);

+      }

+

+      String xmlCallTreePath = null;

+      if (cmd.hasOption(SCA2AmaltheaHeadlessConstants.XMLCALLTREE_PATH)) {

+        xmlCallTreePath = cmd.getOptionValue(SCA2AmaltheaHeadlessConstants.XMLCALLTREE_PATH);

+      }

+

+      SCA2AMALTHEAStarterProperties sca2amaltheaStarterProperties = new SCA2AMALTHEAStarterProperties();

+      sca2amaltheaStarterProperties.setProjectPath(cProjectPath);

+      sca2amaltheaStarterProperties.getLlvmStarterProperties().setTraverseAstFile(astpPath);

+      sca2amaltheaStarterProperties.setOutPutPath(outdir);

+      sca2amaltheaStarterProperties.setTaskListFile(taskinfo);

+      sca2amaltheaStarterProperties.setHDirFilePath(hFilePathList);

+      sca2amaltheaStarterProperties.setBuildLogFile(buildLogFilePath);

+      sca2amaltheaStarterProperties.setLockinfoFile(lockinfo);

+      sca2amaltheaStarterProperties.setIsStructMemberEnabled(Boolean.valueOf(enableStructMembers));

+      sca2amaltheaStarterProperties.setPathToxmlCallTree(xmlCallTreePath);

+      return sca2amaltheaStarterProperties;

     }

     catch (ParseException e) {

       Logmanager.getInstance().logException(this.getClass(), e, Activator.PLUGIN_ID);

       HelpFormatter helpformatter = new HelpFormatter();

-      helpformatter.printHelp("GenerateAmaltheaModelFromLLVM", options);

+      helpformatter.printHelp("Generate Amalthea from c sources", options);

       return null;

     }

   }

 

+

   /**

    * @param options {@link Option}

    */

   private void addOptions(final Options options) {

     options.addOption("h", "help", false, "show help");

-    Option astOption = new Option(LLVMConstants.ASTP, "ASTParser", true,

-        "Path to the LLVM ASTParser executable");

-    astOption.setRequired(true);

-    options.addOption(astOption);

-   

-    Option outDirOption = new Option(LLVMConstants.OUTDIR, "output_directory", true, "Path to the output directory");

-    outDirOption.setRequired(false);

-    options.addOption(outDirOption);

-

-    Option pDirOption = new Option(LLVMConstants.PDIR, "cproject_directory", true,

-        "Path of the root directory of the c project (PVER)");

+    Option pDirOption = new Option(SCA2AmaltheaHeadlessConstants.PDIR, "cproject_directory", true,

+        SCA2AmaltheaHeadlessConstants.C_PROJECT_DIR_HELP);

     pDirOption.setRequired(true);

     options.addOption(pDirOption);

 

-    Option hDirOption = new Option(LLVMConstants.HDIR_LIST, "hdir_directories", true,

-        "List of paths to directories that contain h source files seperated by the path seperator ;");

-    hDirOption.setRequired(false);

-    options.addOption(hDirOption);

+    Option astOption = new Option(SCA2AmaltheaHeadlessConstants.ASTP, "astparser", true,

+        SCA2AmaltheaHeadlessConstants.AST_PARSER_HELP);

+    options.addOption(astOption);

 

-    Option taskInfoOption =

-        new Option(LLVMConstants.TASKINFO, "task_info_file", true, "Path to the task/isr information file");

-    taskInfoOption.setRequired(false);

-    options.addOption(taskInfoOption);

+    Option xmlCallTreeOption = new Option(SCA2AmaltheaHeadlessConstants.XMLCALLTREE_PATH, "xmlCallTree_path", true,

+        SCA2AmaltheaHeadlessConstants.XMLCALLTREE_HELP);

+    xmlCallTreeOption.setRequired(false);

+    options.addOption(xmlCallTreeOption);

 

-    Option buildLogOption = new Option(LLVMConstants.BLOG, "build_log_file", true, "Path to the build_cmd.log file");

+    Option buildLogOption =

+        new Option(SCA2AmaltheaHeadlessConstants.BLOG, "build_log_file", true, SCA2AmaltheaHeadlessConstants.BLOG_HELP);

     buildLogOption.setRequired(false);

     options.addOption(buildLogOption);

 

-    Option hashDefineOption =

-        new Option(LLVMConstants.DLIST, "hashDefines.txt", true, "Path to the hashDefines.txt file");

-    hashDefineOption.setRequired(false);

-    options.addOption(hashDefineOption);

+    Option hDirOption = new Option(SCA2AmaltheaHeadlessConstants.HDIR_LIST, "hdir_directories", true,

+        SCA2AmaltheaHeadlessConstants.HDIR_LIST_HELP);

+    hDirOption.setRequired(false);

+    options.addOption(hDirOption);

 

-    Option lockinfoOption =

-        new Option(LLVMConstants.LOCKINFO, "bsw_lock_functions.csv", true, "Path to the lock_functions.csv file");

+    Option taskInfoOption = new Option(SCA2AmaltheaHeadlessConstants.TASKINFO, "task_info_file", true,

+        SCA2AmaltheaHeadlessConstants.TASKINFO_HELP);

+    taskInfoOption.setRequired(false);

+    options.addOption(taskInfoOption);

+

+

+    Option lockinfoOption = new Option(SCA2AmaltheaHeadlessConstants.LOCKINFO, "bsw_lock_functions", true,

+        SCA2AmaltheaHeadlessConstants.LOCKINFO_HELP);

     lockinfoOption.setRequired(false);

     options.addOption(lockinfoOption);

-    

-    Option enableStructMember =

-            new Option(LLVMConstants.ENABLE_STRUCT_MEMBER, "enableStructMember", true, "Boolean value for enabling struct members in amalthea file");

+

+    Option enableStructMember = new Option(SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER, "enableStructMember",

+        false, SCA2AmaltheaHeadlessConstants.ENABLE_STRUCT_MEMBER_HELP);

     enableStructMember.setRequired(false);

-        options.addOption(enableStructMember);

+

+    Option outDirOption = new Option(SCA2AmaltheaHeadlessConstants.OUTDIR, "output_directory", true,

+        SCA2AmaltheaHeadlessConstants.OUTDIR_HELP);

+    outDirOption.setRequired(false);

+    options.addOption(outDirOption);

+

+    options.addOption(enableStructMember);

   }

 

 }
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
index efa9d65..9608a9d 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/GenerateAmaltheaModelFromLLVM.java
@@ -65,8 +65,9 @@
     this.sca2amProperties = llvmProperties;

   }

 

+

   /**

-   * @throws IOException          IOException

+   * @throws IOException IOException

    * @throws InterruptedException InterruptedException

    * @return int status of the amalthea model generation

    */

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
index f5fec96..04b5265 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/headless/SCA2AMALTHEAStarterProperties.java
@@ -1,16 +1,7 @@
 /**

- ********************************************************************************

- * Copyright (c) 2017-2020 Robert Bosch GmbH and others.

- * 

- * This program and the accompanying materials are made

- * available under the terms of the Eclipse Public License 2.0

- * which is available at https://www.eclipse.org/legal/epl-2.0/

- * 

- * SPDX-License-Identifier: EPL-2.0

- * 

- * Contributors:

- *     Robert Bosch GmbH - initial API and implementation

- ********************************************************************************

+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available

+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/

+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation

  */

 

 package org.eclipse.app4mc.sca2amalthea.llvm.headless;

@@ -19,6 +10,7 @@
 import java.util.ArrayList;

 import java.util.List;

 

+import org.eclipse.app4mc.sca.util.util.SCAUtils;

 import org.eclipse.app4mc.sca2amalthea.llvm.starter.LLVMStarterProperties;

 

 import com.google.common.base.Joiner;

@@ -46,6 +38,9 @@
   public static final String LOCK_DEFINITION_FILE = "default_bsw_lock_functions.csv";

 

 

+  /**

+   * No Arg constructor

+   */

   public SCA2AMALTHEAStarterProperties() {

     // no -arg constructor

   }

@@ -99,24 +94,24 @@
    * @param outPutPath the outPutPath to set

    */

   public void setOutPutPath(final String outPutPath) {

-    if ((outPutPath == null) || outPutPath.isEmpty() || new File(outPutPath).isAbsolute()) {

+    if ((outPutPath == null) || outPutPath.isEmpty() || SCAUtils.isAbsolutePath(outPutPath)) {

       this.outPutPath = outPutPath;

     }

     else {

-      this.outPutPath = this.projectPath + outPutPath;

+      this.outPutPath = this.projectPath + File.separator + outPutPath;

     }

-    this.llvmStarterProperties.setOutPutPath(outPutPath);

+    this.llvmStarterProperties.setOutPutPath(this.outPutPath);

   }

 

   /**

    * @param buildLogFile the build command log file path

    */

   public void setBuildLogFile(final String buildLogFile) {

-    if ((buildLogFile == null) || buildLogFile.isEmpty() || new File(buildLogFile).isAbsolute()) {

+    if ((buildLogFile == null) || buildLogFile.isEmpty() || SCAUtils.isAbsolutePath(buildLogFile)) {

       this.buildLogFile = buildLogFile;

     }

     else {

-      this.buildLogFile = this.projectPath + buildLogFile;

+      this.buildLogFile = this.projectPath + File.separator + buildLogFile;

     }

   }

 

@@ -143,11 +138,11 @@
     List<String> hdirList = new ArrayList<>();

     if ((hDirFilePath != null) && !hDirFilePath.isEmpty()) {

       for (String s : hDirFilePath.split(File.pathSeparator)) {

-        if (new File(s).isAbsolute()) {

+        if (SCAUtils.isAbsolutePath(s)) {

           hdirList.add(s);

         }

         else {

-          hdirList.add(this.projectPath + s);

+          hdirList.add(this.projectPath + File.separator + s);

         }

       }

     }

@@ -158,11 +153,11 @@
    * @param taskListFile the taskListFile to set

    */

   public void setTaskListFile(final String taskListFile) {

-    if ((taskListFile == null) || taskListFile.isEmpty() || new File(taskListFile).isAbsolute()) {

+    if ((taskListFile == null) || taskListFile.isEmpty() || SCAUtils.isAbsolutePath(taskListFile)) {

       this.taskListFile = taskListFile;

     }

     else {

-      this.taskListFile = this.projectPath + taskListFile;

+      this.taskListFile = this.projectPath + File.separator + taskListFile;

     }

   }

 

@@ -251,11 +246,11 @@
    * @param lockinfoFile the lockinfoFile to set

    */

   public void setLockinfoFile(final String lockinfoFile) {

-    if ((lockinfoFile == null) || lockinfoFile.isEmpty() || new File(lockinfoFile).isAbsolute()) {

+    if ((lockinfoFile == null) || lockinfoFile.isEmpty() || SCAUtils.isAbsolutePath(lockinfoFile)) {

       this.lockinfoFile = lockinfoFile;

     }

     else {

-      this.lockinfoFile = this.projectPath + lockinfoFile;

+      this.lockinfoFile = this.projectPath + File.separator + lockinfoFile;

     }

   }

 

@@ -282,13 +277,19 @@
     this.binDirectory = binDirecotry;

   }

 

-public String getPathToxmlCallTree() {

-	return pathToxmlCallTree;

-}

+  /**

+   * @return path of the xmlCallTree

+   */

+  public String getPathToxmlCallTree() {

+    return this.pathToxmlCallTree;

+  }

 

-public void setPathToxmlCallTree(String pathToxmlCallTree) {

-	this.pathToxmlCallTree = pathToxmlCallTree;

-}

+  /**

+   * @param pathToxmlCallTree the path of the xmlCallTree to be set.

+   */

+  public void setPathToxmlCallTree(final String pathToxmlCallTree) {

+    this.pathToxmlCallTree = pathToxmlCallTree;

+  }

 

 

 }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
index af381b6..5d91bed 100644
--- a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/starter/ProcessExecutor.java
@@ -33,9 +33,9 @@
 

   /**

    * @param workingDirectory {@link String}

-   * @param commandLine      Command line arguments

-   * @param standardOutFile  {@link String}

-   * @param standardErrFile  {@link String}

+   * @param commandLine Command line arguments

+   * @param standardOutFile {@link String}

+   * @param standardErrFile {@link String}

    */

   public ProcessExecutor(final String workingDirectory, final String standardOutFile, final String standardErrFile,

       final String... commandLine) {

@@ -47,7 +47,7 @@
   }

 

   /**

-   * @throws IOException          IOException

+   * @throws IOException IOException

    * @throws InterruptedException InterruptedException

    */

   public void runProgramm() throws IOException, InterruptedException {

@@ -75,7 +75,6 @@
     UtilityForProcessHandling.setCurrentRunningProcess(p);

 

     p.waitFor();

-

     if (UtilityForProcessHandling.isModelGenerationcancelled()) {

       throw new InterruptedException("Programm has been cancelled.");

     }

diff --git a/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/SCA2AmaltheaHeadlessConstants.java b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/SCA2AmaltheaHeadlessConstants.java
new file mode 100644
index 0000000..e394840
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/plugins/org.eclipse.app4mc.sca2amalthea.llvm/src/org/eclipse/app4mc/sca2amalthea/llvm/util/SCA2AmaltheaHeadlessConstants.java
@@ -0,0 +1,128 @@
+/**
+ ******************************************************************************** Copyright (c) 2017-2020 Robert Bosch GmbH and others. This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
+ * SPDX-License-Identifier: EPL-2.0 Contributors: Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.sca2amalthea.llvm.util;
+
+
+/**
+ * Constants for all the LLVM operations
+ */
+public final class SCA2AmaltheaHeadlessConstants {
+
+  /**
+   * Private constructor
+   */
+  private SCA2AmaltheaHeadlessConstants() {
+    // Private constructor
+  }
+
+  /**
+  *
+  */
+  public static final String PDIR = "-pdir";
+  /**
+   *
+   */
+  public static final String TASKINFO = "-taskinfo";
+  /**
+   *
+   */
+  public static final String LOCKINFO = "-lockinfo";
+  /**
+   *
+   */
+  public static final String OUTDIR = "-outdir";
+  /**
+   *
+   */
+  public static final String HDIR_LIST = "-hdirlist";
+  /**
+   *
+   */
+  public static final String ASTP = "-astp";
+  /**
+   *
+   */
+  public static final String BLOG = "-blog";
+  /**
+  *
+  */
+  public static final String DLIST = "-dlist";
+
+  /**
+   *
+   */
+  public static final String OUT_FOLDER = "-out";
+
+  /**
+   *
+   */
+  public static final String ENABLE_STRUCT_MEMBER = "-enableStructMember";
+
+  /**
+   *
+   */
+  public static final String XMLCALLTREE_PATH = "-xmlCallTreePath";
+
+  /**
+   *
+   */
+  public static final String HELP = "-h";
+
+  /**
+   *
+   */
+  public static final String C_PROJECT_DIR_HELP =
+      "Mandatory parameter. This parameter takes path of the root directory of the c project";
+
+  /**
+  *
+  */
+  public static final String AST_PARSER_HELP =
+      "Mandatory parameter if xmlCallTreePath is not provided .This parameter takes path to the LLVM ASTParser executable";
+
+  /**
+   *
+   */
+  public static final String XMLCALLTREE_HELP =
+      "This is a optional parameter and it takes the path of the XMLCallTree.xml to be converted to amalthea model";
+
+  /**
+  *
+  */
+  public static final String BLOG_HELP = "This is a optional parameter and it takes path to the build_cmd.log file";
+
+  /**
+  *
+  */
+  public static final String HDIR_LIST_HELP =
+      "This is a optional parameter and it takes a list of directory paths that contain header files.The directory paths should be seperated by the path seperator ie ;";
+
+
+  /**
+  *
+  */
+  public static final String TASKINFO_HELP =
+      "This is a optional parameter and it takes path of the task/isr information file";
+
+  /**
+  *
+  */
+  public static final String LOCKINFO_HELP =
+      "This is a optional parameter and it takes path of a csv file containing information of lock functions.";
+
+  /**
+  *
+  */
+  public static final String ENABLE_STRUCT_MEMBER_HELP =
+      "This is a optional parameter and it takes a boolean value for reporting struct member accesses in amalthea model.";
+
+  /**
+  *
+  */
+  public static final String OUTDIR_HELP =
+      "This is a optional parameter and it takes the path of the directory where the amalthea model has to be stored.";
+
+}
diff --git a/eclipse-tools/sca2amalthea/plugins/pom.tycho b/eclipse-tools/sca2amalthea/plugins/pom.tycho
index 39f0a77..f15ccc3 100644
--- a/eclipse-tools/sca2amalthea/plugins/pom.tycho
+++ b/eclipse-tools/sca2amalthea/plugins/pom.tycho
@@ -13,3 +13,4 @@
 org.eclipse.app4mc.sca2amalthea.serialization
 org.eclipse.app4mc.sca2amalthea.ui
 org.eclipse.app4mc.sca2amalthea.utils
+org.eclipse.app4mc.sca2amalthea.headless
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.classpath b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.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/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.project b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.project
new file mode 100644
index 0000000..02bf6d6
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.app4mc.sca2amalthea.headless.product</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/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.settings/org.eclipse.jdt.core.prefs b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/.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/releng/org.eclipse.app4mc.sca2amalthea.headless.product/META-INF/MANIFEST.MF b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1473beb
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Product
+Bundle-SymbolicName: org.eclipse.app4mc.sca2amalthea.headless.product;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Automatic-Module-Name: org.eclipse.app4mc.sca2amalthea.headless.product
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README-sca-jar.txt b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README-sca-jar.txt
new file mode 100644
index 0000000..eab5319
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README-sca-jar.txt
@@ -0,0 +1,48 @@
+SCA2Amalthea Headless Tool
+
+Launch via executable jar (uses the bnd launcher)
+
+	java -jar sca.jar <-pdir> [-astp] [-hdirlist] [-taskinfo] [-lockinfo] [-enableStructMember] [-xmlCallTreePath] [-outdir] 
+
+    Options:
+   	  -hdirlist       		This optional parameter takes a list of directory paths that contain header files.The directory paths should be seperated by the path seperator ie ;
+	  
+	  -taskinfo  	  		This optional parameter takes path of the task/isr information file
+	  
+	  -lockinfo  	  		This optional parameter takes path of a csv file containing information of lock functions.
+	  
+	  -enableStructMember   This optional parameter takes a boolean value for reporting struct member accesses in amalthea model.
+	  
+	  -xmlCallTreePath      This optional parameter takes the path of the XMLCallTree.xml to be converted to amalthea model.
+	  
+	  -outdir  				This optional parameter takes the path of the directory where the amalthea model has to be stored.
+
+	Mandatory Parameter:
+		-pdir   		  		Mandatory parameter.This parameter takes path of the root directory of the c project.
+                     
+		-astp           		Mandatory parameter if xmlCallTreePath option is not provided. This parameter takes path to the LLVM ASTParser executable.
+    Examples:
+
+    Displaying sca2Amalthea help
+	java -jar sca.jar -h
+
+    Generate amalthea model for all source files in project directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
+
+	Generate amalthea model for all source files in project directory with task information
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -taskinfo C:\\Temp\\project_dir\\task_info\\taskInfo.csv
+	
+	Generate amalthea model from xmlCallTree.xml file
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -xmlCallTreePath C:\\Temp\\project_dir\\_gen\\sca2Amalthea\\XMLCallTree.xml
+	
+	Generate amalthea model for all source files in project directory with struct members enabled
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -enableStructMember
+	
+	Generate amalthea model for some header directory paths
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -hdirlist C:\\Temp\\project_dir\\header_dir1;C:\\Temp\\project_dir\\header_dir2
+	
+	Generate amalthea model for all source files in some output directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -outdir C:\\Desktop\\outdir
+
+    Open the osgi shell
+    java -jar -Dosgi.console= sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README.txt b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README.txt
new file mode 100644
index 0000000..3c2ee88
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/README.txt
@@ -0,0 +1,153 @@
+SCA2Amalthea Headless Tool
+
+The sca2Amalthea headless tool can be started in different ways:
+
+1. Launch via Equinox launcher executable, e.g. on Windows (sca2Amalthea.exe)
+
+  sca2Amalthea <-pdir> [-astp] [-hdirlist] [-taskinfo] [-lockinfo] [-enableStructMember] [-xmlCallTreePath] [-outdir] [-consoleLog] [-console]
+
+    Options:     
+     	  -hdirlist       		This optional parameter takes a list of directory paths that contain header files.The directory paths should be seperated by the path seperator ie ;
+	  
+	  -taskinfo  	  		This optional parameter takes path of the task/isr information file
+	  
+	  -lockinfo  	  		This optional parameter takes path of a csv file containing information of lock functions.
+	  
+	  -enableStructMember   This optional parameter takes a boolean value for reporting struct member accesses in amalthea model.
+	  
+	  -xmlCallTreePath      This optional parameter takes the path of the XMLCallTree.xml to be converted to amalthea model.
+	  
+	  -outdir  				This optional parameter takes the path of the directory where the amalthea model has to be stored.
+	  
+	  -h                    Shows the help
+
+      -consoleLog     		When using the launcher, the console outputs are not printed to the shell.
+							By using this option a separate shell is opened to which the results are printed.
+
+      -console        		Opens the OSGi console. This option has to be provided in addition to the options listed above.
+
+  Mandatory Parameter:
+		-pdir   		  		Mandatory parameter.This parameter takes path of the root directory of the c project.
+                     
+		-astp           		Mandatory parameter if xmlCallTreePath option is not provided. This parameter takes path to the LLVM ASTParser executable.
+
+    Examples:
+	
+	Displaying sca2Amalthea help
+	sca2Amalthea.exe -h -console
+
+    Generate amalthea model for all source files in project directory
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
+
+	Generate amalthea model for all source files in project directory with task information
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -taskinfo C:\\Temp\\project_dir\\task_info\\taskInfo.csv
+	
+	Generate amalthea model from xmlCallTree.xml file
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -xmlCallTreePath C:\\Temp\\project_dir\\_gen\\sca2Amalthea\\XMLCallTree.xml
+	
+	Generate amalthea model for all source files in project directory with struct members enabled
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -enableStructMember
+	
+	Generate amalthea model for with some header directory paths
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -hdirlist C:\\Temp\\project_dir\\header_dir1;C:\\Temp\\project_dir\\header_dir2
+	
+	Generate amalthea model for all source files in some output directory
+	sca2Amalthea.exe -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -outdir C:\\Desktop\\outdir
+
+
+2. Launch via executable jar (uses the bnd launcher)
+
+	java -jar sca.jar <-pdir> [-astp] [-hdirlist] [-taskinfo] [-lockinfo] [-enableStructMember] [-xmlCallTreePath] [-outdir] 
+
+    Options:
+      	  -hdirlist       		This optional parameter takes a list of directory paths that contain header files.The directory paths should be seperated by the path seperator ie ;
+	  
+	  -taskinfo  	  		This optional parameter takes path of the task/isr information file
+	  
+	  -lockinfo  	  		This optional parameter takes path of a csv file containing information of lock functions.
+	  
+	  -enableStructMember   This optional parameter takes a boolean value for reporting struct member accesses in amalthea model.
+	  
+	  -xmlCallTreePath      This optional parameter takes the path of the XMLCallTree.xml to be converted to amalthea model.
+	  
+	  -outdir  				This optional parameter takes the path of the directory where the amalthea model has to be stored.
+
+	 Mandatory Parameter:
+		-pdir   		  		Mandatory parameter.This parameter takes path of the root directory of the c project.
+                     
+		-astp           		Mandatory parameter if xmlCallTreePath option is not provided. This parameter takes path to the LLVM ASTParser executable.
+
+    Examples:
+
+    Displaying sca2Amalthea help
+	java -jar sca.jar -h
+
+    Generate amalthea model for all source files in project directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
+
+	Generate amalthea model for all source files in project directory with task information
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -taskinfo C:\\Temp\\project_dir\\task_info\\taskInfo.csv
+	
+	Generate amalthea model from xmlCallTree.xml file
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -xmlCallTreePath C:\\Temp\\project_dir\\_gen\\sca2Amalthea\\XMLCallTree.xml
+	
+	Generate amalthea model for all source files in project directory with struct members enabled
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -enableStructMember
+	
+	Generate amalthea model for header directory paths
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -hdirlist C:\\Temp\\project_dir\\header_dir1;C:\\Temp\\project_dir\\header_dir2
+	
+	Generate amalthea model for all source files in some output directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -outdir C:\\Desktop\\outdir
+
+    Open the osgi shell
+    java -jar -Dosgi.console= sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
+	
+	
+3.  Launch via Equinox Framework JAR
+
+  java -jar plugins/org.eclipse.osgi_3.15.100.v20191114-1701.jar -configuration ./configuration <-pdir> [-astp] [-hdirlist] [-taskinfo] [-lockinfo] [-enableStructMember] [-xmlCallTreePath] [-outdir] 
+  
+   Options:
+  	  -hdirlist       		This optional parameter takes a list of directory paths that contain header files.The directory paths should be seperated by the path seperator ie ;
+	  
+	  -taskinfo  	  		This optional parameter takes path of the task/isr information file
+	  
+	  -lockinfo  	  		This optional parameter takes path of a csv file containing information of lock functions.
+	  
+	  -enableStructMember   This optional parameter takes a boolean value for reporting struct member accesses in amalthea model.
+	  
+	  -xmlCallTreePath      This optional parameter takes the path of the XMLCallTree.xml to be converted to amalthea model.
+	  
+	  -outdir  				This optional parameter takes the path of the directory where the amalthea model has to be stored.
+	  
+	Mandatory Parameter:
+		-pdir   		  		Mandatory parameter.This parameter takes path of the root directory of the c project.
+                     
+		-astp           		Mandatory parameter if xmlCallTreePath option is not provided. This parameter takes path to the LLVM ASTParser executable.
+		
+		-configuration<location> This parameter is needed to specify the location of the config.ini file.When starting the via Equinox Framework JAR the location needs to be 		provided this way to startup correctly.
+
+
+    Examples:
+
+    Displaying sca2Amalthea help
+	java -jar sca.jar -h
+
+    Generate amalthea model for all source files in project directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir
+
+	Generate amalthea model for all source files in project directory with task information
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -taskinfo C:\\Temp\\project_dir\\task_info\\taskInfo.csv
+	
+	Generate amalthea model from xmlCallTree.xml file
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -xmlCallTreePath C:\\Temp\\project_dir\\_gen\\sca2Amalthea\\XMLCallTree.xml
+	
+	Generate amalthea model for all source files in project directory with struct members enabled
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -enableStructMember
+	
+	Generate amalthea model for some header directory paths
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -hdirlist C:\\Temp\\project_dir\\header_dir1;C:\\Temp\\project_dir\\header_dir2
+	
+	Generate amalthea model for all source files in some output directory
+	java -jar sca.jar -pdir C:\\Temp\\project_dir -astp C:\\Desktop\\ast_dir -outdir C:\\Desktop\\outdir
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/SCA2AmaltheaHeadless.product b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/SCA2AmaltheaHeadless.product
new file mode 100644
index 0000000..9d8223e
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/SCA2AmaltheaHeadless.product
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="SCA2Amalthea Headless" uid="org.eclipse.plat4mc.sca2amalthea.headless.product.id" version="1.0.0" useFeatures="false" includeLaunchers="true">
+
+   <configIni use="">
+   </configIni>
+
+   <launcherArgs>
+   </launcherArgs>
+
+   <windowImages/>
+
+   <launcher name="sca2Amalthea">
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
+   <plugins>
+      <plugin id="com.google.guava"/>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="javax.xml"/>
+      <plugin id="org.apache.batik.constants"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.i18n"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.commons.cli"/>
+      <plugin id="org.apache.commons.io"/>
+      <plugin id="org.apache.commons.jxpath"/>
+      <plugin id="org.apache.commons.lang"/>
+      <plugin id="org.apache.commons.logging"/>
+      <plugin id="org.apache.commons.math3"/>
+      <plugin id="org.apache.felix.gogo.command"/>
+      <plugin id="org.apache.felix.gogo.runtime"/>
+      <plugin id="org.apache.felix.gogo.shell"/>
+      <plugin id="org.apache.felix.scr"/>
+      <plugin id="org.apache.log4j"/>
+      <plugin id="org.apache.xerces"/>
+      <plugin id="org.apache.xml.resolver"/>
+      <plugin id="org.apache.xml.serializer"/>
+      <plugin id="org.apache.xmlgraphics"/>
+      <plugin id="org.eclipse.app4mc.amalthea.model"/>
+      <plugin id="org.eclipse.app4mc.sca.amalthea.loader"/>
+      <plugin id="org.eclipse.app4mc.sca.amalthea.model.utils"/>
+      <plugin id="org.eclipse.app4mc.sca.logging"/>
+      <plugin id="org.eclipse.app4mc.sca.scheduling.loader"/>
+      <plugin id="org.eclipse.app4mc.sca.ui"/>
+      <plugin id="org.eclipse.app4mc.sca.util"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.exporter"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.headless"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.ir"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.ir.loader"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.llvm"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.scairmodelenricher"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.serialization"/>
+      <plugin id="org.eclipse.app4mc.sca2amalthea.utils"/>
+      <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.linux.ppc64le" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.macosx" 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.e4.core.commands"/>
+      <plugin id="org.eclipse.e4.core.contexts"/>
+      <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.annotations"/>
+      <plugin id="org.eclipse.e4.core.di.extensions"/>
+      <plugin id="org.eclipse.e4.core.di.extensions.supplier"/>
+      <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.emf.xpath"/>
+      <plugin id="org.eclipse.e4.ui.bindings"/>
+      <plugin id="org.eclipse.e4.ui.css.core"/>
+      <plugin id="org.eclipse.e4.ui.css.swt"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
+      <plugin id="org.eclipse.e4.ui.di"/>
+      <plugin id="org.eclipse.e4.ui.dialogs"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench"/>
+      <plugin id="org.eclipse.e4.ui.services"/>
+      <plugin id="org.eclipse.e4.ui.swt.gtk" fragment="true"/>
+      <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.renderers.swt.cocoa" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench3"/>
+      <plugin id="org.eclipse.emf.common"/>
+      <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.transaction"/>
+      <plugin id="org.eclipse.emf.validation"/>
+      <plugin id="org.eclipse.emf.workspace"/>
+      <plugin id="org.eclipse.equinox.app"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.console"/>
+      <plugin id="org.eclipse.equinox.event"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
+      <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.osgi.util"/>
+      <plugin id="org.eclipse.sphinx.emf"/>
+      <plugin id="org.eclipse.sphinx.emf.workspace"/>
+      <plugin id="org.eclipse.sphinx.platform"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64le" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.team.core"/>
+      <plugin id="org.eclipse.ui"/>
+      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.eclipse.xtend.lib"/>
+      <plugin id="org.eclipse.xtend.lib.macro"/>
+      <plugin id="org.eclipse.xtext.logging" fragment="true"/>
+      <plugin id="org.eclipse.xtext.xbase.lib"/>
+      <plugin id="org.jdom"/>
+      <plugin id="org.slf4j.api"/>
+      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
+      <plugin id="org.w3c.css.sac"/>
+      <plugin id="org.w3c.dom.events"/>
+      <plugin id="org.w3c.dom.smil"/>
+      <plugin id="org.w3c.dom.svg"/>
+   </plugins>
+
+   <configurations>
+      <plugin id="org.apache.felix.scr" autoStart="true" startLevel="0" />
+      <property name="eclipse.ignoreApp" value="true" />
+      <property name="osgi.noShutdown" value="true" />
+   </configurations>
+
+   <preferencesInfo>
+      <targetfile overwrite="false"/>
+   </preferencesInfo>
+
+   <cssInfo>
+   </cssInfo>
+
+</product>
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/about.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/about.html
new file mode 100644
index 0000000..164f781
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>About</title>
+</head>
+<body lang="EN-US">
+	<h2>About This Content</h2>
+
+	<p>November 30, 2017</p>
+	<h3>License</h3>
+
+	<p>
+		The Eclipse Foundation makes available all content in this plug-in
+		(&quot;Content&quot;). Unless otherwise indicated below, the Content
+		is provided to you under the terms and conditions of the Eclipse
+		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+		For purposes of the EPL, &quot;Program&quot; will mean the Content.
+	</p>
+
+	<p>
+		If you did not receive this Content directly from the Eclipse
+		Foundation, the Content is being redistributed by another party
+		(&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content. Check the
+		Redistributor's license that was provided with the Content. If no such
+		license exists, contact the Redistributor. Unless otherwise indicated
+		below, the terms and conditions of the EPL still apply to any source
+		code in the Content and such source code may be obtained at <a
+			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+	</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/build.properties b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/build.properties
new file mode 100644
index 0000000..3527903
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               sca.bndrun,\
+               pom.xml
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/epl-2.0.html b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/epl-2.0.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/epl-2.0.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Eclipse Public License - Version 2.0</title>
+    <style type="text/css">
+      body {
+        margin: 1.5em 3em;
+      }
+      h1{
+        font-size:1.5em;
+      }
+      h2{
+        font-size:1em;
+        margin-bottom:0.5em;
+        margin-top:1em;
+      }
+      p {
+        margin-top:  0.5em;
+        margin-bottom: 0.5em;
+      }
+      ul, ol{
+        list-style-type:none;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>Eclipse Public License - v 2.0</h1>
+    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
+      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
+    </p>
+    <h2 id="definitions">1. DEFINITIONS</h2>
+    <p>&ldquo;Contribution&rdquo; means:</p>
+    <ul>
+      <li>a) in the case of the initial Contributor, the initial content
+        Distributed under this Agreement, and
+      </li>
+      <li>
+        b) in the case of each subsequent Contributor:
+        <ul>
+          <li>i) changes to the Program, and</li>
+          <li>ii) additions to the Program;</li>
+        </ul>
+        where such changes and/or additions to the Program originate from
+        and are Distributed by that particular Contributor. A Contribution
+        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
+        Contributor itself or anyone acting on such Contributor&#039;s behalf.
+        Contributions do not include changes or additions to the Program that
+        are not Modified Works.
+      </li>
+    </ul>
+    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
+    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
+      are necessarily infringed by the use or sale of its Contribution alone
+      or when combined with the Program.
+    </p>
+    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
+      Agreement.
+    </p>
+    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
+      or any Secondary License (as applicable), including Contributors.
+    </p>
+    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
+      form, that is based on (or derived from) the Program and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship.
+    </p>
+    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
+      results from an addition to, deletion from, or modification of the
+      contents of the Program, including, for purposes of clarity any new file
+      in Source Code form that contains any contents of the Program. Modified
+      Works shall not include works that contain only declarations, interfaces,
+      types, classes, structures, or files of the Program solely in each case
+      in order to link to, bind by name, or subclass the Program or Modified
+      Works thereof.
+    </p>
+    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
+      in any manner that enables the transfer of a copy.
+    </p>
+    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
+      modifications, including but not limited to software source code,
+      documentation source, and configuration files.
+    </p>
+    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
+      Version 2.0, or any later versions of that license, including any
+      exceptions or additional permissions as identified by the initial
+      Contributor.
+    </p>
+    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+    <ul>
+      <li>a) Subject to the terms of this Agreement, each Contributor hereby
+        grants Recipient a non-exclusive, worldwide, royalty-free copyright
+        license to reproduce, prepare Derivative Works of, publicly display,
+        publicly perform, Distribute and sublicense the Contribution of such
+        Contributor, if any, and such Derivative Works.
+      </li>
+      <li>b) Subject to the terms of this Agreement, each Contributor hereby
+        grants Recipient a non-exclusive, worldwide, royalty-free patent
+        license under Licensed Patents to make, use, sell, offer to sell,
+        import and otherwise transfer the Contribution of such Contributor,
+        if any, in Source Code or other form. This patent license shall
+        apply to the combination of the Contribution and the Program if,
+        at the time the Contribution is added by the Contributor, such
+        addition of the Contribution causes such combination to be covered
+        by the Licensed Patents. The patent license shall not apply to any
+        other combinations which include the Contribution. No hardware per
+        se is licensed hereunder.
+      </li>
+      <li>c) Recipient understands that although each Contributor grants the
+        licenses to its Contributions set forth herein, no assurances are
+        provided by any Contributor that the Program does not infringe the
+        patent or other intellectual property rights of any other entity.
+        Each Contributor disclaims any liability to Recipient for claims
+        brought by any other entity based on infringement of intellectual
+        property rights or otherwise. As a condition to exercising the rights
+        and licenses granted hereunder, each Recipient hereby assumes sole
+        responsibility to secure any other intellectual property rights needed,
+        if any. For example, if a third party patent license is required to
+        allow Recipient to Distribute the Program, it is Recipient&#039;s
+        responsibility to acquire that license before distributing the Program.
+      </li>
+      <li>d) Each Contributor represents that to its knowledge it has sufficient
+        copyright rights in its Contribution, if any, to grant the copyright
+        license set forth in this Agreement.
+      </li>
+      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+        makes additional grants to any Recipient (other than those set forth
+        in this Agreement) as a result of such Recipient&#039;s receipt of the
+        Program under the terms of a Secondary License (if permitted under
+        the terms of Section 3).
+      </li>
+    </ul>
+    <h2 id="requirements">3. REQUIREMENTS</h2>
+    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+    <ul>
+      <li>a) the Program must also be made available as Source Code, in
+        accordance with section 3.2, and the Contributor must accompany
+        the Program with a statement that the Source Code for the Program
+        is available under this Agreement, and informs Recipients how to
+        obtain it in a reasonable manner on or through a medium customarily
+        used for software exchange; and
+      </li>
+      <li>
+        b) the Contributor may Distribute the Program under a license
+        different than this Agreement, provided that such license:
+        <ul>
+          <li>i) effectively disclaims on behalf of all other Contributors all
+            warranties and conditions, express and implied, including warranties
+            or conditions of title and non-infringement, and implied warranties
+            or conditions of merchantability and fitness for a particular purpose;
+          </li>
+          <li>ii) effectively excludes on behalf of all other Contributors all
+            liability for damages, including direct, indirect, special, incidental
+            and consequential damages, such as lost profits;
+          </li>
+          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
+            Source Code under section 3.2; and
+          </li>
+          <li>iv) requires any subsequent distribution of the Program by any party
+            to be under a license that satisfies the requirements of this section 3.
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <p>3.2 When the Program is Distributed as Source Code:</p>
+    <ul>
+      <li>a) it must be made available under this Agreement, or if the Program (i)
+        is combined with other material in a separate file or files made available
+        under a Secondary License, and (ii) the initial Contributor attached to
+        the Source Code the notice described in Exhibit A of this Agreement,
+        then the Program may be made available under the terms of such
+        Secondary Licenses, and
+      </li>
+      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+    </ul>
+    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+      attribution notices, disclaimers of warranty, or limitations of liability
+      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
+      they Distribute, provided that Contributors may add their own appropriate
+      notices.
+    </p>
+    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+    <p>Commercial distributors of software may accept certain responsibilities
+      with respect to end users, business partners and the like. While this
+      license is intended to facilitate the commercial use of the Program, the
+      Contributor who includes the Program in a commercial product offering should
+      do so in a manner which does not create potential liability for other
+      Contributors. Therefore, if a Contributor includes the Program in a
+      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
+      hereby agrees to defend and indemnify every other Contributor
+      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
+      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
+      brought by a third party against the Indemnified Contributor to the extent
+      caused by the acts or omissions of such Commercial Contributor in connection
+      with its distribution of the Program in a commercial product offering.
+      The obligations in this section do not apply to any claims or Losses relating
+      to any actual or alleged intellectual property infringement. In order to
+      qualify, an Indemnified Contributor must: a) promptly notify the
+      Commercial Contributor in writing of such claim, and b) allow the Commercial
+      Contributor to control, and cooperate with the Commercial Contributor in,
+      the defense and any related settlement negotiations. The Indemnified
+      Contributor may participate in any such claim at its own expense.
+    </p>
+    <p>For example, a Contributor might include the Program
+      in a commercial product offering, Product X. That Contributor is then a
+      Commercial Contributor. If that Commercial Contributor then makes performance
+      claims, or offers warranties related to Product X, those performance claims
+      and warranties are such Commercial Contributor&#039;s responsibility alone.
+      Under this section, the Commercial Contributor would have to defend claims
+      against the other Contributors related to those performance claims and
+      warranties, and if a court requires any other Contributor to pay any damages
+      as a result, the Commercial Contributor must pay those damages.
+    </p>
+    <h2 id="warranty">5. NO WARRANTY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
+      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+      solely responsible for determining the appropriateness of using and
+      distributing the Program and assumes all risks associated with its
+      exercise of rights under this Agreement, including but not limited to the
+      risks and costs of program errors, compliance with applicable laws, damage
+      to or loss of data, programs or equipment, and unavailability or
+      interruption of operations.
+    </p>
+    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+    </p>
+    <h2 id="general">7. GENERAL</h2>
+    <p>If any provision of this Agreement is invalid or unenforceable under
+      applicable law, it shall not affect the validity or enforceability of the
+      remainder of the terms of this Agreement, and without further action by the
+      parties hereto, such provision shall be reformed to the minimum extent
+      necessary to make such provision valid and enforceable.
+    </p>
+    <p>If Recipient institutes patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+      (excluding combinations of the Program with other software or hardware)
+      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
+      under Section 2(b) shall terminate as of the date such litigation is filed.
+    </p>
+    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
+      comply with any of the material terms or conditions of this Agreement and
+      does not cure such failure in a reasonable period of time after becoming
+      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
+      terminate, Recipient agrees to cease use and distribution of the Program
+      as soon as reasonably practicable. However, Recipient&#039;s obligations under
+      this Agreement and any licenses granted by Recipient relating to the
+      Program shall continue and survive.
+    </p>
+    <p>Everyone is permitted to copy and distribute copies of this Agreement,
+      but in order to avoid inconsistency the Agreement is copyrighted and may
+      only be modified in the following manner. The Agreement Steward reserves
+      the right to publish new versions (including revisions) of this Agreement
+      from time to time. No one other than the Agreement Steward has the right
+      to modify this Agreement. The Eclipse Foundation is the initial Agreement
+      Steward. The Eclipse Foundation may assign the responsibility to serve as
+      the Agreement Steward to a suitable separate entity. Each new version of
+      the Agreement will be given a distinguishing version number. The Program
+      (including Contributions) may always be Distributed subject to the version
+      of the Agreement under which it was received. In addition, after a new
+      version of the Agreement is published, Contributor may elect to Distribute
+      the Program (including its Contributions) under the new version.
+    </p>
+    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+      receives no rights or licenses to the intellectual property of any
+      Contributor under this Agreement, whether expressly, by implication,
+      estoppel or otherwise. All rights in the Program not expressly granted
+      under this Agreement are reserved. Nothing in this Agreement is intended
+      to be enforceable by any entity that is not a Contributor or Recipient.
+      No third-party beneficiary rights are created under this Agreement.
+    </p>
+    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
+    <p>&ldquo;This Source Code may also be made available under the following 
+    	Secondary Licenses when the conditions for such availability set forth 
+    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+    	version(s), and exceptions or additional permissions here}.&rdquo;
+    </p>
+    <blockquote>
+      <p>Simply including a copy of this Agreement, including this Exhibit A
+        is not sufficient to license the Source Code under Secondary Licenses.
+      </p>
+      <p>If it is not possible or desirable to put the notice in a particular file,
+        then You may include the notice in a location (such as a LICENSE file in a
+        relevant directory) where a recipient would be likely to look for
+        such a notice.
+      </p>
+      <p>You may add additional accurate notices of copyright ownership.</p>
+    </blockquote>
+  </body>
+</html>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/plugin.xml b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/plugin.xml
new file mode 100644
index 0000000..5535690
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/plugin.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+</plugin>
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/pom.xml b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/pom.xml
new file mode 100644
index 0000000..de8ee81
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/pom.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>sca2amalthea</groupId>
+    <artifactId>parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../pom.xml</relativePath>
+  </parent>
+
+  <groupId>sca2amalthea</groupId>
+  <artifactId>org.eclipse.app4mc.sca2amalthea.headless.product</artifactId>
+  <packaging>eclipse-repository</packaging>
+  <version>1.0.0-SNAPSHOT</version>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>tycho-p2-repository-plugin</artifactId>
+        <version>${tycho.version}</version>
+		<configuration>
+          <includeAllDependencies>true</includeAllDependencies>
+        </configuration>        
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>tycho-p2-director-plugin</artifactId>
+        <version>${tycho.version}</version>
+        <executions>
+          <execution>
+            <id>materialize-products</id>
+            <goals>
+              <goal>materialize-products</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>archive-products</id>
+            <goals>
+              <goal>archive-products</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+        <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-indexer-maven-plugin</artifactId>
+        <version>4.3.1</version>
+        <configuration>
+            <inputDir>${project.build.directory}/repository/plugins/</inputDir>
+        </configuration>
+       <executions>
+        <execution>
+            <phase>package</phase>
+            <id>index</id>
+            <goals>
+                <goal>local-index</goal>
+            </goals>
+        </execution>
+      </executions>
+    </plugin>
+    <!--   <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-resolver-maven-plugin</artifactId>
+        <version>4.3.1</version>
+        <configuration>
+            <failOnChanges>false</failOnChanges>
+            <bndruns>
+                <bndrun>sca.bndrun</bndrun>
+            </bndruns>
+            <bundles>
+                <include>target/repository/plugins/*</include>             
+            </bundles>
+        </configuration>
+        <executions>
+            <execution>
+                <goals>
+                    <goal>resolve</goal>
+                </goals>
+            </execution>
+        </executions>
+    </plugin>--> 
+      <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-export-maven-plugin</artifactId>
+        <version>4.3.1</version>
+       <configuration>
+            <failOnChanges>false</failOnChanges>
+            <bndruns>
+                <bndrun>sca.bndrun</bndrun>
+            </bndruns>
+            <bundles>
+                <include>target/repository/plugins/*</include>           
+            </bundles>
+        </configuration>
+       <executions>
+        <execution>
+            <goals>
+                <goal>export</goal>
+            </goals>
+        </execution>
+       </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/sca.bndrun b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/sca.bndrun
new file mode 100644
index 0000000..99a300b
--- /dev/null
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.headless.product/sca.bndrun
@@ -0,0 +1,121 @@
+index: target/index.xml;name="org.eclipse.app4mc.sca2amalthea.headless.product"
+-standalone: ${index}
+-runee: JavaSE-1.8
+-runfw: org.eclipse.osgi;version='[3.15.100.v20191114-1701,3.15.100.v20191114-1701]'
+-runsystemcapabilities: ${native_capability}
+
+-resolve.effective: active;skip:="osgi.service"
+-runrequires: osgi.identity;filter:='(osgi.identity=org.eclipse.app4mc.sca2amalthea.headless)'
+-runbundles: \
+	com.google.guava;version='[27.1.0,27.1.1)',\
+	com.ibm.icu;version='[64.2.0,64.2.1)',\
+	javax.inject;version='[1.0.0,1.0.1)',\
+	javax.xml;version='[1.3.4,1.3.5)',\
+	org.apache.batik.constants;version='[1.11.0,1.11.1)',\
+	org.apache.batik.css;version='[1.11.0,1.11.1)',\
+	org.apache.batik.i18n;version='[1.11.0,1.11.1)',\
+	org.apache.batik.util;version='[1.11.0,1.11.1)',\
+	org.apache.commons.cli;version='[1.2.0,1.2.1)',\
+	org.apache.commons.io;version='[2.6.0,2.6.1)',\
+	org.apache.commons.jxpath;version='[1.3.0,1.3.1)',\
+	org.apache.commons.lang;version='[2.6.0,2.6.1)',\
+	org.apache.commons.logging;version='[1.2.0,1.2.1)',\
+	org.apache.commons.math3;version='[3.5.0,3.5.1)',\
+	org.apache.felix.scr;version='[2.1.14,2.1.15)',\
+	org.apache.log4j;version='[1.2.15,1.2.16)',\
+	org.apache.xerces;version='[2.9.0,2.9.1)',\
+	org.apache.xml.resolver;version='[1.2.0,1.2.1)',\
+	org.apache.xml.serializer;version='[2.7.1,2.7.2)',\
+	org.apache.xmlgraphics;version='[2.3.0,2.3.1)',\
+	org.eclipse.app4mc.sca2amalthea.headless;version='[1.0.0,1.0.1)',\
+	org.eclipse.core.commands;version='[3.9.600,3.9.601)',\
+	org.eclipse.core.contenttype;version='[3.7.500,3.7.501)',\
+	org.eclipse.core.databinding;version='[1.7.700,1.7.701)',\
+	org.eclipse.core.databinding.observable;version='[1.8.100,1.8.101)',\
+	org.eclipse.core.databinding.property;version='[1.7.200,1.7.201)',\
+	org.eclipse.core.expressions;version='[3.6.600,3.6.601)',\
+	org.eclipse.core.filesystem;version='[1.7.600,1.7.601)',\
+	org.eclipse.core.jobs;version='[3.10.600,3.10.601)',\
+	org.eclipse.core.resources;version='[3.13.600,3.13.601)',\
+	org.eclipse.core.runtime;version='[3.17.0,3.17.1)',\
+	org.eclipse.e4.core.commands;version='[0.12.800,0.12.801)',\
+	org.eclipse.e4.core.contexts;version='[1.8.300,1.8.301)',\
+	org.eclipse.e4.core.di;version='[1.7.500,1.7.501)',\
+	org.eclipse.e4.core.di.annotations;version='[1.6.500,1.6.501)',\
+	org.eclipse.e4.core.di.extensions;version='[0.15.400,0.15.401)',\
+	org.eclipse.e4.core.di.extensions.supplier;version='[0.15.400,0.15.401)',\
+	org.eclipse.e4.core.services;version='[2.2.100,2.2.101)',\
+	org.eclipse.e4.emf.xpath;version='[0.2.500,0.2.501)',\
+	org.eclipse.e4.ui.bindings;version='[0.12.700,0.12.701)',\
+	org.eclipse.e4.ui.css.core;version='[0.12.900,0.12.901)',\
+	org.eclipse.e4.ui.css.swt;version='[0.13.700,0.13.701)',\
+	org.eclipse.e4.ui.css.swt.theme;version='[0.12.500,0.12.501)',\
+	org.eclipse.e4.ui.di;version='[1.2.700,1.2.701)',\
+	org.eclipse.e4.ui.dialogs;version='[1.1.600,1.1.601)',\
+	org.eclipse.e4.ui.model.workbench;version='[2.1.600,2.1.601)',\
+	org.eclipse.e4.ui.services;version='[1.3.700,1.3.701)',\
+	org.eclipse.e4.ui.widgets;version='[1.2.600,1.2.601)',\
+	org.eclipse.e4.ui.workbench;version='[1.11.0,1.11.1)',\
+	org.eclipse.e4.ui.workbench.addons.swt;version='[1.3.700,1.3.701)',\
+	org.eclipse.e4.ui.workbench.renderers.swt;version='[0.14.900,0.14.901)',\
+	org.eclipse.e4.ui.workbench.swt;version='[0.14.800,0.14.801)',\
+	org.eclipse.e4.ui.workbench3;version='[0.15.300,0.15.301)',\
+	org.eclipse.emf.common;version='[2.17.0,2.17.1)',\
+	org.eclipse.emf.ecore;version='[2.20.0,2.20.1)',\
+	org.eclipse.emf.ecore.change;version='[2.14.0,2.14.1)',\
+	org.eclipse.emf.ecore.xcore.lib;version='[1.4.0,1.4.1)',\
+	org.eclipse.emf.ecore.xmi;version='[2.16.0,2.16.1)',\
+	org.eclipse.emf.edit;version='[2.16.0,2.16.1)',\
+	org.eclipse.emf.transaction;version='[1.9.1,1.9.2)',\
+	org.eclipse.emf.validation;version='[1.8.0,1.8.1)',\
+	org.eclipse.emf.workspace;version='[1.5.1,1.5.2)',\
+	org.eclipse.equinox.app;version='[1.4.300,1.4.301)',\
+	org.eclipse.equinox.common;version='[3.10.600,3.10.601)',\
+	org.eclipse.equinox.preferences;version='[3.7.600,3.7.601)',\
+	org.eclipse.equinox.registry;version='[3.8.600,3.8.601)',\
+	org.eclipse.help;version='[3.8.600,3.8.601)',\
+	org.eclipse.jface;version='[3.18.0,3.18.1)',\
+	org.eclipse.jface.databinding;version='[1.9.200,1.9.201)',\
+	org.eclipse.osgi.services;version='[3.8.0,3.8.1)',\
+	org.eclipse.osgi.util;version='[3.5.300,3.5.301)',\
+	org.eclipse.sphinx.emf;version='[0.11.2,0.11.3)',\
+	org.eclipse.sphinx.emf.workspace;version='[0.11.2,0.11.3)',\
+	org.eclipse.sphinx.platform;version='[0.11.2,0.11.3)',\
+	org.eclipse.swt;version='[3.113.0,3.113.1)',\
+	org.eclipse.ui;version='[3.115.0,3.115.1)',\
+	org.eclipse.ui.workbench;version='[3.117.0,3.117.1)',\
+	org.eclipse.xtend.lib;version='[2.20.0,2.20.1)',\
+	org.eclipse.xtend.lib.macro;version='[2.20.0,2.20.1)',\
+	org.eclipse.xtext.xbase.lib;version='[2.20.0,2.20.1)',\
+	org.jdom;version='[1.1.1,1.1.2)',\
+	org.w3c.css.sac;version='[1.3.1,1.3.2)',\
+	org.w3c.dom.events;version='[3.0.0,3.0.1)',\
+	org.w3c.dom.smil;version='[1.0.1,1.0.2)',\
+	org.w3c.dom.svg;version='[1.1.0,1.1.1)',\
+	javax.inject;version='[1.0.0,1.0.1)',\
+	org.eclipse.swt.win32.win32.x86_64,\
+	org.apache.felix.gogo.command,\
+	org.apache.felix.gogo.runtime,\
+	org.apache.felix.gogo.shell,\
+	org.eclipse.equinox.console,\
+	org.eclipse.osgi.services,\
+	org.eclipse.osgi.util,\
+	org.eclipse.app4mc.amalthea.model;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.amalthea.loader;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.amalthea.model.utils;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.logging;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.scheduling.loader;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.ui;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca.util;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.exporter;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.ir;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.ir.loader;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.llvm;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.scairmodelenricher;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.serialization;version='[1.0.0,1.0.1)',\
+	org.eclipse.app4mc.sca2amalthea.utils;version='[1.0.0,1.0.1)',\
+	org.slf4j.api;version='[1.7.2,1.7.3)',\
+	org.slf4j.impl.log4j12
+-runproperties: \
+    osgi.console=xxx
+-resolve: auto
\ No newline at end of file
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target
index 55b6d07..6d3cee4 100644
--- a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.target
@@ -1,9 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="SCA2AMALTHEA Target" sequenceNumber="1611921626">
+<target name="SCA2AMALTHEA Target" sequenceNumber="1612449955">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="1.0.0.202011301553"/>
+      <repository location="http://download.eclipse.org/app4mc/updatesites/releases/1.0.0"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
+      <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sphinx.sdk.feature.group" version="0.11.2.201802230805"/>
+      <repository location="http://download.eclipse.org/sphinx/updates/0.11.x"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+      <repository location="http://download.eclipse.org/cbi/updates/license"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.equinox.executable.feature.group" version="3.8.600.v20191014-2025"/>
       <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
       <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
@@ -31,22 +49,5 @@
       <unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
       <repository location="http://download.eclipse.org/releases/2019-12"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="1.0.0.202011301553"/>
-      <repository location="http://download.eclipse.org/app4mc/updatesites/releases/1.0.0"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
-      <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.sphinx.sdk.feature.group" version="0.11.2.201802230805"/>
-      <repository location="http://download.eclipse.org/sphinx/updates/0.11.x"/>
-    </location>
-    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
-      <repository location="http://download.eclipse.org/cbi/updates/license"/>
-    </location>
   </locations>
 </target>
diff --git a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd
index ff1de3b..933a622 100644
--- a/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd
+++ b/eclipse-tools/sca2amalthea/releng/org.eclipse.app4mc.sca2amalthea.target/org.eclipse.app4mc.sca2amalthea.target.tpd
@@ -45,4 +45,8 @@
 
 location "http://download.eclipse.org/cbi/updates/license" {
 	org.eclipse.license.feature.group
+}
+
+location "http://download.eclipse.org/releases/2019-12" {
+	org.eclipse.equinox.executable.feature.group
 }
\ No newline at end of file