add process engine with tests
diff --git a/components/basys.components/.classpath b/components/basys.components/.classpath
index c0f53a3..84f19a0 100644
--- a/components/basys.components/.classpath
+++ b/components/basys.components/.classpath
@@ -4,23 +4,24 @@
 	<classpathentry kind="src" output="target/classes" path="src">

 		<attributes>

 			<attribute name="maven.pomderived" value="true"/>

+			<attribute name="optional" value="true"/>

 		</attributes>

 	</classpathentry>

 	<classpathentry kind="src" output="target/classes" path="servlets">

 		<attributes>

 			<attribute name="maven.pomderived" value="true"/>

+			<attribute name="optional" value="true"/>

 		</attributes>

 	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>

 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">

 		<attributes>

 			<attribute name="maven.pomderived" value="true"/>

-			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

 		</attributes>

 	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">

 		<attributes>

-			<attribute name="owner.project.facets" value="java"/>

+			<attribute name="maven.pomderived" value="true"/>

 		</attributes>

 	</classpathentry>

 	<classpathentry kind="output" path="target/classes"/>

diff --git a/components/basys.components/.settings/org.eclipse.jdt.core.prefs b/components/basys.components/.settings/org.eclipse.jdt.core.prefs
index 529ef07..2d1de9d 100644
--- a/components/basys.components/.settings/org.eclipse.jdt.core.prefs
+++ b/components/basys.components/.settings/org.eclipse.jdt.core.prefs
@@ -10,4 +10,5 @@
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

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

 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning

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

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

diff --git a/components/basys.components/.settings/org.eclipse.wst.common.component b/components/basys.components/.settings/org.eclipse.wst.common.component
index ea61ed3..2906b88 100644
--- a/components/basys.components/.settings/org.eclipse.wst.common.component
+++ b/components/basys.components/.settings/org.eclipse.wst.common.component
@@ -5,9 +5,6 @@
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/regression"/>

         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>

         <wb-resource deploy-path="/WEB-INF/classes" source-path="/servlets"/>

-        <dependent-module archiveName="basys.sdk-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/basys.sdk/basys.sdk">

-            <dependency-type>uses</dependency-type>

-        </dependent-module>

 		<property name="context-root" value="basys.components"/>

 		<property name="java-output-path" value="/basys.components/build/classes"/>

 	</wb-module>

diff --git a/components/basys.components/WebContent/META-INF/MANIFEST.MF b/components/basys.components/WebContent/META-INF/MANIFEST.MF
index 5e94951..58630c0 100644
--- a/components/basys.components/WebContent/META-INF/MANIFEST.MF
+++ b/components/basys.components/WebContent/META-INF/MANIFEST.MF
@@ -1,3 +1,2 @@
 Manifest-Version: 1.0

-Class-Path: 

 

diff --git a/components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml b/components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
index f0be872..843ca7f 100644
--- a/components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
+++ b/components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
@@ -1,172 +1,175 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" targetNamespace="http://www.activiti.org/test" exporter="Camunda Modeler" exporterVersion="1.16.2">
-  <process id="smsProcess" name="SMS Coilcar Process" isExecutable="true">
-    <startEvent id="startevent1" name="Start" />
-    <serviceTask id="step5" name="pick up coil" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test" exporter="Camunda Modeler" exporterVersion="1.16.2">
+  <process id="SimpleTransportProcess" name="transport process using coil-car" isExecutable="true">
+    <startEvent id="startevent1" name="Start"></startEvent>
+    <serviceTask id="step5" name="pick up coil" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>liftTo</activiti:string>
+          <activiti:string><![CDATA[liftTo]]></activiti:string>
         </activiti:field>
         <activiti:field name="serviceProvider">
-          <activiti:string>coilcar</activiti:string>
-        </activiti:field>
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
         <activiti:field name="serviceParameter">
-          <activiti:string>json</activiti:string>
-        </activiti:field>
-        <camunda:executionListener class="" event="end" />
+        	<activiti:string><![CDATA[{"_basyxTypes":"list","_value":[0]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <serviceTask id="step6" name="bring coil before spindle" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <serviceTask id="step6" name="bring coil before spindle" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>driveTo</activiti:string>
+          <activiti:string><![CDATA[moveTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>5</activiti:string>
-        </activiti:field>
-        <camunda:executionListener class="" event="start" />
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[{"_basyxTypes":"list","_value":[5]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <sequenceFlow id="flow5" sourceRef="step5" targetRef="step6" />
+    <sequenceFlow id="flow5" sourceRef="step5" targetRef="step6"></sequenceFlow>
     <sequenceFlow id="flow6" sourceRef="exclusivegateway1" targetRef="step5">
-      <conditionExpression xsi:type="tFormalExpression">${coilposition == 1}</conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${coilposition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <endEvent id="endevent1" name="End" />
-    <serviceTask id="servicetask1" name="Lift coil until inline" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <endEvent id="endevent1" name="End"></endEvent>
+    <serviceTask id="servicetask1" name="Lift coil until inline" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>liftTo</activiti:string>
+          <activiti:string><![CDATA[liftTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>4</activiti:string>
-        </activiti:field>
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[ {"_basyxTypes":"list","_value":[5]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <sequenceFlow id="flow7" sourceRef="step6" targetRef="servicetask1" />
-    <sequenceFlow id="flow8" sourceRef="servicetask4" targetRef="endevent1" />
-    <serviceTask id="servicetask2" name="put coil onto spindle" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <sequenceFlow id="flow7" sourceRef="step6" targetRef="servicetask1"></sequenceFlow>
+    <sequenceFlow id="flow8" sourceRef="servicetask4" targetRef="endevent1"></sequenceFlow>
+    <serviceTask id="servicetask2" name="put coil onto spindle" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>driveTo</activiti:string>
+          <activiti:string><![CDATA[moveTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>6</activiti:string>
-        </activiti:field>
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[ {"_basyxTypes":"list","_value":[6]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <serviceTask id="servicetask3" name="lift down" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <serviceTask id="servicetask3" name="lift down" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>liftTo</activiti:string>
+          <activiti:string><![CDATA[liftTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>1</activiti:string>
-        </activiti:field>
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[ {"_basyxTypes":"list","_value":[0]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <sequenceFlow id="flow12" sourceRef="servicetask2" targetRef="servicetask3" />
-    <sequenceFlow id="flow13" sourceRef="servicetask1" targetRef="servicetask2" />
-    <serviceTask id="servicetask4" name="move back" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <sequenceFlow id="flow12" sourceRef="servicetask2" targetRef="servicetask3"></sequenceFlow>
+    <sequenceFlow id="flow13" sourceRef="servicetask1" targetRef="servicetask2"></sequenceFlow>
+    <serviceTask id="servicetask4" name="move back" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>driveTo</activiti:string>
+          <activiti:string><![CDATA[moveTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>1</activiti:string>
-        </activiti:field>
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[ {"_basyxTypes":"list","_value":[0]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
-    <sequenceFlow id="flow14" sourceRef="servicetask3" targetRef="servicetask4" />
-    <exclusiveGateway id="exclusivegateway1" name="check start position of coil" />
-    <sequenceFlow id="flow15" sourceRef="startevent1" targetRef="exclusivegateway1" />
-    <serviceTask id="servicetask5" name="move to coil" activiti:class="org.activiti.javadelegate.CoilcarServiceDelegate">
+    <sequenceFlow id="flow14" sourceRef="servicetask3" targetRef="servicetask4"></sequenceFlow>
+    <exclusiveGateway id="exclusivegateway1" name="check start position of coil"></exclusiveGateway>
+    <sequenceFlow id="flow15" sourceRef="startevent1" targetRef="exclusivegateway1"></sequenceFlow>
+    <serviceTask id="servicetask5" name="move to coil" activiti:class="org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate">
       <extensionElements>
         <activiti:field name="serviceName">
-          <activiti:string>driveTo</activiti:string>
+          <activiti:string><![CDATA[moveTo]]></activiti:string>
         </activiti:field>
-        <activiti:field name="position">
-          <activiti:string>1</activiti:string>
-        </activiti:field>
+        <activiti:field name="serviceProvider">
+        	<activiti:string><![CDATA[coilcar]]></activiti:string></activiti:field>
+        <activiti:field name="serviceParameter">
+        	<activiti:string><![CDATA[{"_basyxTypes":"list","_value":[0]}]]></activiti:string></activiti:field>
       </extensionElements>
     </serviceTask>
     <sequenceFlow id="flow16" sourceRef="exclusivegateway1" targetRef="servicetask5">
-      <conditionExpression xsi:type="tFormalExpression">${coilposition==2}</conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${coilposition==2}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="flow17" sourceRef="servicetask5" targetRef="step5" />
+    <sequenceFlow id="flow17" sourceRef="servicetask5" targetRef="step5"></sequenceFlow>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_smsProcess">
-    <bpmndi:BPMNPlane id="BPMNPlane_smsProcess" bpmnElement="smsProcess">
-      <bpmndi:BPMNShape id="BPMNShape_startevent1" bpmnElement="startevent1">
-        <omgdc:Bounds x="12" y="128" width="35" height="35" />
+    <bpmndi:BPMNPlane bpmnElement="smsProcess" id="BPMNPlane_smsProcess">
+      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="12.0" y="128.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_step5" bpmnElement="step5">
-        <omgdc:Bounds x="240" y="109" width="105" height="71" />
+      <bpmndi:BPMNShape bpmnElement="step5" id="BPMNShape_step5">
+        <omgdc:Bounds height="71.0" width="105.0" x="240.0" y="109.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_step6" bpmnElement="step6">
-        <omgdc:Bounds x="380" y="109" width="105" height="71" />
+      <bpmndi:BPMNShape bpmnElement="step6" id="BPMNShape_step6">
+        <omgdc:Bounds height="71.0" width="105.0" x="380.0" y="109.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_endevent1" bpmnElement="endevent1">
-        <omgdc:Bounds x="1140" y="127" width="35" height="35" />
+      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="1140.0" y="127.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_servicetask1" bpmnElement="servicetask1">
-        <omgdc:Bounds x="530" y="109" width="105" height="71" />
+      <bpmndi:BPMNShape bpmnElement="servicetask1" id="BPMNShape_servicetask1">
+        <omgdc:Bounds height="71.0" width="105.0" x="530.0" y="109.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_servicetask2" bpmnElement="servicetask2">
-        <omgdc:Bounds x="690" y="106" width="105" height="71" />
+      <bpmndi:BPMNShape bpmnElement="servicetask2" id="BPMNShape_servicetask2">
+        <omgdc:Bounds height="71.0" width="105.0" x="690.0" y="106.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_servicetask3" bpmnElement="servicetask3">
-        <omgdc:Bounds x="840" y="107" width="105" height="71" />
+      <bpmndi:BPMNShape bpmnElement="servicetask3" id="BPMNShape_servicetask3">
+        <omgdc:Bounds height="71.0" width="105.0" x="840.0" y="107.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_servicetask4" bpmnElement="servicetask4">
-        <omgdc:Bounds x="980" y="117" width="105" height="55" />
+      <bpmndi:BPMNShape bpmnElement="servicetask4" id="BPMNShape_servicetask4">
+        <omgdc:Bounds height="55.0" width="105.0" x="980.0" y="117.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_exclusivegateway1" bpmnElement="exclusivegateway1" isMarkerVisible="true">
-        <omgdc:Bounds x="110" y="125" width="40" height="40" />
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
+        <omgdc:Bounds height="40.0" width="40.0" x="89.0" y="125.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="BPMNShape_servicetask5" bpmnElement="servicetask5">
-        <omgdc:Bounds x="240" y="237" width="105" height="55" />
+      <bpmndi:BPMNShape bpmnElement="servicetask5" id="BPMNShape_servicetask5">
+        <omgdc:Bounds height="55.0" width="105.0" x="160.0" y="240.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow5" bpmnElement="flow5">
-        <omgdi:waypoint x="345" y="144" />
-        <omgdi:waypoint x="380" y="144" />
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="345.0" y="144.0"></omgdi:waypoint>
+        <omgdi:waypoint x="380.0" y="144.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow6" bpmnElement="flow6">
-        <omgdi:waypoint x="150" y="145" />
-        <omgdi:waypoint x="240" y="144" />
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="129.0" y="145.0"></omgdi:waypoint>
+        <omgdi:waypoint x="240.0" y="144.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow7" bpmnElement="flow7">
-        <omgdi:waypoint x="485" y="144" />
-        <omgdi:waypoint x="530" y="144" />
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="485.0" y="144.0"></omgdi:waypoint>
+        <omgdi:waypoint x="530.0" y="144.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow8" bpmnElement="flow8">
-        <omgdi:waypoint x="1085" y="144" />
-        <omgdi:waypoint x="1140" y="144" />
+      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+        <omgdi:waypoint x="1085.0" y="144.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1140.0" y="144.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow12" bpmnElement="flow12">
-        <omgdi:waypoint x="795" y="141" />
-        <omgdi:waypoint x="840" y="142" />
+      <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
+        <omgdi:waypoint x="795.0" y="141.0"></omgdi:waypoint>
+        <omgdi:waypoint x="840.0" y="142.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow13" bpmnElement="flow13">
-        <omgdi:waypoint x="635" y="144" />
-        <omgdi:waypoint x="690" y="141" />
+      <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
+        <omgdi:waypoint x="635.0" y="144.0"></omgdi:waypoint>
+        <omgdi:waypoint x="690.0" y="141.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow14" bpmnElement="flow14">
-        <omgdi:waypoint x="945" y="142" />
-        <omgdi:waypoint x="980" y="144" />
+      <bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
+        <omgdi:waypoint x="945.0" y="142.0"></omgdi:waypoint>
+        <omgdi:waypoint x="980.0" y="144.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow15" bpmnElement="flow15">
-        <omgdi:waypoint x="47" y="145" />
-        <omgdi:waypoint x="110" y="145" />
+      <bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
+        <omgdi:waypoint x="29.0" y="163.0"></omgdi:waypoint>
+        <omgdi:waypoint x="47.0" y="197.0"></omgdi:waypoint>
+        <omgdi:waypoint x="109.0" y="165.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow16" bpmnElement="flow16">
-        <omgdi:waypoint x="130" y="165" />
-        <omgdi:waypoint x="129" y="265" />
-        <omgdi:waypoint x="240" y="264" />
+      <bpmndi:BPMNEdge bpmnElement="flow16" id="BPMNEdge_flow16">
+        <omgdi:waypoint x="109.0" y="165.0"></omgdi:waypoint>
+        <omgdi:waypoint x="110.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="160.0" y="267.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_flow17" bpmnElement="flow17">
-        <omgdi:waypoint x="292" y="237" />
-        <omgdi:waypoint x="292" y="180" />
+      <bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
+        <omgdi:waypoint x="212.0" y="240.0"></omgdi:waypoint>
+        <omgdi:waypoint x="292.0" y="180.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</definitions>
+</definitions>
\ No newline at end of file
diff --git a/components/basys.components/WebContent/WEB-INF/config/processengine/activiti.cfg.xml b/components/basys.components/WebContent/WEB-INF/config/processengine/activiti.cfg.xml
deleted file mode 100644
index 1948508..0000000
--- a/components/basys.components/WebContent/WEB-INF/config/processengine/activiti.cfg.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xsi:schemaLocation="http://www.springframework.org/schema/beans
-				http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
-		<property name="databaseSchemaUpdate" value="true"/>
-		<property name="asyncExecutorActivate" value="true" />
-	</bean>
-</beans>
\ No newline at end of file
diff --git a/components/basys.components/pom.xml b/components/basys.components/pom.xml
index 131fe25..316bc4c 100644
--- a/components/basys.components/pom.xml
+++ b/components/basys.components/pom.xml
@@ -1,278 +1,382 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

-  <modelVersion>4.0.0</modelVersion>

-  <groupId>basys.components</groupId>

-  <artifactId>basys.components</artifactId>

-  <version>0.0.1-SNAPSHOT</version>

-  <packaging>jar</packaging>

-  <name>BaSys Components</name>

-  

-  <repositories>

-	  <repository>

-	    <id>data-local</id>

-	    <name>data</name>

-	    <url>file://${project.basedir}/repo</url>

-	  </repository>

+<project xmlns="http://maven.apache.org/POM/4.0.0"

+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+	<modelVersion>4.0.0</modelVersion>

+	<groupId>basys.components</groupId>

+	<artifactId>basys.components</artifactId>

+	<version>0.0.1-SNAPSHOT</version>

+	<packaging>jar</packaging>

+	<name>BaSys Components</name>

+

+	<repositories>

+		<repository>

+			<id>data-local</id>

+			<name>data</name>

+			<url>file://${project.basedir}/repo</url>

+		</repository>

 	</repositories>

 

-   <build>

-    <sourceDirectory></sourceDirectory>

-    

-     <resources>

-      <resource>

-       <directory>src</directory>

-		 <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-      <resource>

-       <directory>servlets</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-      <resource>

-       <directory>regression/org/eclipse/basyx/regression/support</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-     </resources>

-    

-    <testSourceDirectory>

+	<build>

+		<sourceDirectory>src</sourceDirectory>

+

+		<testSourceDirectory>

     		${project.basedir}/regression/org/eclipse/basyx/regression

-    </testSourceDirectory>

-    

-    <plugins>

-      <plugin>

-        <artifactId>maven-compiler-plugin</artifactId>

-        <version>3.7.0</version>

-        <configuration>

-          <source>1.8</source>

-          <target>1.8</target>

-          <compilerArgument>-proc:none</compilerArgument>

-        </configuration>

-      </plugin>

-      

-	 <plugin>

-        <artifactId>maven-war-plugin</artifactId>

-        <version>3.0.0</version>

-    <!--     <configuration>

-          <warSourceDirectory>WebContent</warSourceDirectory>

-        </configuration> -->

-      </plugin> 

-      

-      <plugin>

-         <groupId>org.apache.maven.plugins</groupId>

-         <artifactId>maven-surefire-plugin</artifactId>

-         <!-- <version>2.12.1</version> -->

-         <version>2.4.2</version>

-          <configuration>

-    		<excludes>

-      			<exclude>**/*HTTP*</exclude>

-      			<exclude>**/*TCP*</exclude>

-    		</excludes>

-  		 </configuration>

-       </plugin>

-       

-       <plugin>

-		  <groupId>org.apache.maven.plugins</groupId>

-		  <artifactId>maven-failsafe-plugin</artifactId>

-		  <version>2.12.4</version>

-		  <configuration>

-		    <includes>

-		      <include>**/*HTTP*</include>

-		      <include>**/*TCP*</include>

-		    </includes>

-		  </configuration>

-		  <executions>

-		    <execution>

-		      <goals>

-		        <goal>integration-test</goal>

-		        <goal>verify</goal>

-		      </goals>

-		    </execution>

-		  </executions>

-		</plugin>

-		

-		

-		<!-- Export Jar file to /examples package -->

-		<plugin>

-	      <groupId>org.apache.maven.plugins</groupId>

-	      <artifactId>maven-jar-plugin</artifactId>

-	      <version>2.3.1</version>

-	      <configuration>

-	        <outputDirectory>../../examples/basys.examples/repo/basys/components/basys.components/0.0.1-SNAPSHOT</outputDirectory>

-	      </configuration>

-	    </plugin>

-		   

-    </plugins>    

-  </build>

-  

-  <dependencies>

-	 

-		

-		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

-	      <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

-		  <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

-		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->

-		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina (Tomcat 8, not 9) -->

-		

+    	</testSourceDirectory>

+

+		<plugins>

+			<!-- Add sources for servlets and regression-support to sourceDirectory -->

+			<plugin>

+				<groupId>org.codehaus.mojo</groupId>

+				<artifactId>build-helper-maven-plugin</artifactId>

+				<version>3.0.0</version>

+				<executions>

+					<execution>

+						<id>attachServlets</id>

+						<phase>generate-sources</phase>

+						<goals>

+							<goal>add-source</goal>

+						</goals>

+						<configuration>

+							<sources>

+								<source>servlets</source>

+							</sources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>attachSupport</id>

+						<phase>generate-sources</phase>

+						<goals>

+							<goal>add-source</goal>

+						</goals>

+						<configuration>

+							<sources>

+								<source>regression/org/eclipse/basyx/regression/support</source>

+							</sources>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+

+			<plugin>

+				<artifactId>maven-compiler-plugin</artifactId>

+				<version>3.7.0</version>

+				<configuration>

+					<source>1.8</source>

+					<target>1.8</target>

+				</configuration>

+			</plugin>

+

+			<plugin>

+				<artifactId>maven-war-plugin</artifactId>

+				<version>3.0.0</version>

+				<!-- <configuration> <warSourceDirectory>WebContent</warSourceDirectory> 

+					</configuration> -->

+			</plugin>

+

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-surefire-plugin</artifactId>

+				<!-- <version>2.12.1</version> -->

+				<version>2.4.2</version>

+				<configuration>

+					<excludes>

+						<exclude>**/*HTTP*</exclude>

+						<exclude>**/*TCP*</exclude>

+					</excludes>

+				</configuration>

+			</plugin>

+

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-failsafe-plugin</artifactId>

+				<version>2.12.4</version>

+				<configuration>

+					<includes>

+						<include>**/*HTTP*</include>

+						<include>**/*TCP*</include>

+					</includes>

+				</configuration>

+				<executions>

+					<execution>

+						<goals>

+							<goal>integration-test</goal>

+							<goal>verify</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+

+			<!-- Attach sources to jar file -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-source-plugin</artifactId>

+				<version>3.1.0</version>

+				<executions>

+					<execution>

+						<id>attach-sources</id>

+						<goals>

+							<goal>jar</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+

+			<!-- Install jar file to /components and /examples package -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-install-plugin</artifactId>

+				<version>3.0.0-M1</version>

+				<configuration>

+					<artifactId>basys.components</artifactId>

+					<groupId>basys</groupId>

+					<version>0.0.1-SNAPSHOT</version>

+					<packaging>jar</packaging>

+				</configuration>

+				<executions>

+					<execution>

+						<id>installExamples</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.components-0.0.1-SNAPSHOT.jar</file>

+							<localRepositoryPath>../../examples/basys.examples/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+					<execution>

+						<id>installExamplesSources</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.components-0.0.1-SNAPSHOT-sources.jar</file>

+							<classifier>sources</classifier>

+							<localRepositoryPath>../../examples/basys.examples/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+

+		</plugins>

+	</build>

+

+	<dependencies>

 		<dependency>

-	  		<groupId>org.json</groupId>

-	  		<artifactId>json</artifactId>

-	  		<version>20180813</version>

-	  	<!-- 	<scope>provided</scope> -->

-	  	</dependency>

-		

-		<!--  Dependencies removed from Classpath -->

+			<groupId>junit</groupId>

+			<artifactId>junit</artifactId>

+			<version>4.12</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

+		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina 

+			(Tomcat 8, not 9) -->

+		<dependency>

+			<groupId>org.apache.tomcat</groupId>

+			<artifactId>tomcat-catalina</artifactId>

+			<version>8.0.32</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

+		<dependency>

+			<groupId>javax.ws.rs</groupId>

+			<artifactId>javax.ws.rs-api</artifactId>

+			<version>2.1</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

+		<dependency>

+			<groupId>org.glassfish.jersey.core</groupId>

+			<artifactId>jersey-client</artifactId>

+			<version>2.26-b03</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->

+		<dependency>

+			<groupId>org.json</groupId>

+			<artifactId>json</artifactId>

+			<version>20180813</version>

+			<!-- <scope>provided</scope> -->

+		</dependency>

+		<!-- Dependencies removed from Classpath -->

 		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->

 		<dependency>

-		    <groupId>org.postgresql</groupId>

-		    <artifactId>postgresql</artifactId>

-		    <version>42.2.2</version>

+			<groupId>org.postgresql</groupId>

+			<artifactId>postgresql</artifactId>

+			<version>42.2.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2.external/aopalliance-repackaged -->

 		<dependency>

-		    <groupId>org.glassfish.hk2.external</groupId>

-		    <artifactId>aopalliance-repackaged</artifactId>

-		    <version>2.5.0-b42</version>

+			<groupId>org.glassfish.hk2.external</groupId>

+			<artifactId>aopalliance-repackaged</artifactId>

+			<version>2.5.0-b42</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->

 		<dependency>

-		    <groupId>javax.enterprise</groupId>

-		    <artifactId>cdi-api</artifactId>

-		    <version>2.0</version>

-		    <scope>provided</scope>

+			<groupId>javax.enterprise</groupId>

+			<artifactId>cdi-api</artifactId>

+			<version>2.0</version>

+			<scope>provided</scope>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.el/el-api -->

 		<dependency>

-		    <groupId>javax.el</groupId>

-		    <artifactId>el-api</artifactId>

-		    <version>2.2</version>

+			<groupId>javax.el</groupId>

+			<artifactId>el-api</artifactId>

+			<version>2.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/hk2-api -->

 		<dependency>

-		    <groupId>org.glassfish.hk2</groupId>

-		    <artifactId>hk2-api</artifactId>

-		    <version>2.5.0</version>

+			<groupId>org.glassfish.hk2</groupId>

+			<artifactId>hk2-api</artifactId>

+			<version>2.5.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javassist/javassist -->

 		<dependency>

-		    <groupId>javassist</groupId>

-		    <artifactId>javassist</artifactId>

-		    <version>3.12.1.GA</version>

+			<groupId>javassist</groupId>

+			<artifactId>javassist</artifactId>

+			<version>3.12.1.GA</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->

 		<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->

 		<dependency>

-		    <groupId>javax.inject</groupId>

-		    <artifactId>javax.inject</artifactId>

-		    <version>1</version>

+			<groupId>javax.inject</groupId>

+			<artifactId>javax.inject</artifactId>

+			<version>1</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.json/javax.json-api -->

 		<dependency>

-		    <groupId>javax.json</groupId>

-		    <artifactId>javax.json-api</artifactId>

-		    <version>1.0</version>

+			<groupId>javax.json</groupId>

+			<artifactId>javax.json-api</artifactId>

+			<version>1.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->

 		<dependency>

-		    <groupId>javax.xml.bind</groupId>

-		    <artifactId>jaxb-api</artifactId>

-		    <version>2.3.0</version>

+			<groupId>javax.xml.bind</groupId>

+			<artifactId>jaxb-api</artifactId>

+			<version>2.3.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.interceptor/jboss-interceptors-api_1.1_spec -->

 		<dependency>

-		    <groupId>org.jboss.spec.javax.interceptor</groupId>

-		    <artifactId>jboss-interceptors-api_1.1_spec</artifactId>

-		    <version>1.0.1.Final</version>

+			<groupId>org.jboss.spec.javax.interceptor</groupId>

+			<artifactId>jboss-interceptors-api_1.1_spec</artifactId>

+			<version>1.0.1.Final</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->

 		<dependency>

-		    <groupId>javax.annotation</groupId>

-		    <artifactId>javax.annotation-api</artifactId>

-		    <version>1.3.2</version>

+			<groupId>javax.annotation</groupId>

+			<artifactId>javax.annotation-api</artifactId>

+			<version>1.3.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.osgi/org.osgi.core -->

 		<dependency>

-		    <groupId>org.osgi</groupId>

-		    <artifactId>org.osgi.core</artifactId>

-		    <version>4.2.0</version>

-		    <scope>provided</scope>

+			<groupId>org.osgi</groupId>

+			<artifactId>org.osgi.core</artifactId>

+			<version>4.2.0</version>

+			<scope>provided</scope>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/osgi-resource-locator -->

 		<dependency>

-		    <groupId>org.glassfish.hk2</groupId>

-		    <artifactId>osgi-resource-locator</artifactId>

-		    <version>1.0.1</version>

+			<groupId>org.glassfish.hk2</groupId>

+			<artifactId>osgi-resource-locator</artifactId>

+			<version>1.0.1</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->

 		<dependency>

-		    <groupId>javax.persistence</groupId>

-		    <artifactId>persistence-api</artifactId>

-		    <version>1.0.2</version>

+			<groupId>javax.persistence</groupId>

+			<artifactId>persistence-api</artifactId>

+			<version>1.0.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->

 		<dependency>

-		    <groupId>javax.validation</groupId>

-		    <artifactId>validation-api</artifactId>

-		    <version>2.0.1.Final</version>

+			<groupId>javax.validation</groupId>

+			<artifactId>validation-api</artifactId>

+			<version>2.0.1.Final</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->

 		<dependency>

-		    <groupId>javax.servlet</groupId>

-		    <artifactId>javax.servlet-api</artifactId>

-		    <version>3.1.0</version>

-		    <scope>provided</scope>

+			<groupId>javax.servlet</groupId>

+			<artifactId>javax.servlet-api</artifactId>

+			<version>3.1.0</version>

+			<scope>provided</scope>

 		</dependency>

-		

+

 		<!-- https://mvnrepository.com/artifact/org.eclipse/yasson -->

 		<dependency>

-		    <groupId>org.eclipse</groupId>

-		    <artifactId>yasson</artifactId>

-		    <version>1.0.2</version>

+			<groupId>org.eclipse</groupId>

+			<artifactId>yasson</artifactId>

+			<version>1.0.2</version>

 		</dependency>

-		

-		<!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from local repository because jar cannot be found on maven central -->

+<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->

 		<dependency>

-		    <groupId>javax.xml.xquery</groupId>

-		    <artifactId>xqj-api</artifactId>

-		    <version>1.0</version>

+		    <groupId>org.activiti</groupId>

+		    <artifactId>activiti-engine</artifactId>

+		    <version>6.0.0</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-model -->

+		<dependency>

+		    <groupId>org.activiti</groupId>

+		    <artifactId>activiti-bpmn-model</artifactId>

+		    <version>6.0.0</version>

 		</dependency>

 		

+		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-layout -->

+		<dependency>

+		    <groupId>org.activiti</groupId>

+		    <artifactId>activiti-bpmn-layout</artifactId>

+		    <version>6.0.0</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

+		<dependency>

+		    <groupId>commons-io</groupId>

+		    <artifactId>commons-io</artifactId>

+		    <version>2.4</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->

+		<dependency>

+		    <groupId>com.h2database</groupId>

+		    <artifactId>h2</artifactId>

+		    <version>1.4.197</version>

+		</dependency>

+

+		<dependency>

+			<groupId>org.slf4j</groupId>

+			<artifactId>slf4j-log4j12</artifactId>

+			<version>1.7.5</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from 

+			local repository because jar cannot be found on maven central -->

+		<dependency>

+			<groupId>javax.xml.xquery</groupId>

+			<artifactId>xqj-api</artifactId>

+			<version>1.0</version>

+		</dependency>

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->

-		<!-- <dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>saxon-xqj</artifactId>

-		    <version>9.x</version>

-		</dependency> -->

-		

+		<!-- <dependency> <groupId>net.sf.saxon</groupId> <artifactId>saxon-xqj</artifactId> 

+			<version>9.x</version> </dependency> -->

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->

 		<dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>saxon-xqj</artifactId>

-		    <version>8.9</version>

+			<groupId>net.sf.saxon</groupId>

+			<artifactId>saxon-xqj</artifactId>

+			<version>8.9</version>

 		</dependency>

-				

-		

+

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->

 		<dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>Saxon-HE</artifactId>

-		    <version>9.5.1-5</version>

+			<groupId>net.sf.saxon</groupId>

+			<artifactId>Saxon-HE</artifactId>

+			<version>9.5.1-5</version>

 		</dependency>

-				

+

 		<dependency>

-		    <groupId>com.google.code.gson</groupId>

-		    <artifactId>gson</artifactId>

-		    <version>2.8.5</version>

+			<groupId>com.google.code.gson</groupId>

+			<artifactId>gson</artifactId>

+			<version>2.8.5</version>

 		</dependency>

-	

-		<!-- Add BaSys SDK from local repository. Maven build of SDK must generate a jar and place it into the repository to update -->

+

 		<dependency>

-			<groupId>basys.sdk</groupId>

+			<groupId>basys</groupId>

 			<artifactId>basys.sdk</artifactId>

 			<version>0.0.1-SNAPSHOT</version>

 		</dependency>

-  </dependencies>

+	</dependencies>

 </project>
\ No newline at end of file
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestAASServicecall.java b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestAASServicecall.java
new file mode 100644
index 0000000..ad4f8f4
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestAASServicecall.java
@@ -0,0 +1,64 @@
+package org.eclipse.basyx.regression.processengineconnector.tests;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceExecutor;
+import org.eclipse.basyx.regression.support.processengine.aas.DeviceAdministrationShellFactory;
+import org.eclipse.basyx.regression.support.processengine.executor.CoilcarServiceExecutor;
+import org.eclipse.basyx.regression.support.processengine.stubs.CoilcarStub;
+import org.eclipse.basyx.regression.support.processengine.submodel.DeviceSubmodelFactory;
+import org.eclipse.basyx.testsuite.support.vab.stub.VABConnectionManagerStub;
+import org.eclipse.basyx.vab.provider.hashmap.VABHashmapProvider;
+import org.junit.Before;
+import org.junit.Test;
+
+
+
+public class TestAASServicecall {
+	private DeviceServiceExecutor serviceExecutor;
+	private VABConnectionManagerStub connectionStub;
+	private CoilcarStub coilcar;
+	
+
+	
+	
+	@Before
+	public void setupDeviceServiceExecutor() {
+		AssetAdministrationShell aas = new DeviceAdministrationShellFactory().create( "coilcar", "submodel1");
+		coilcar = new CoilcarStub();
+		SubModel sm = new DeviceSubmodelFactory().create("submodel1", coilcar);
+		// TODO more comments
+		VABMultiSubmodelProvider<VABHashmapProvider> provider = new VABMultiSubmodelProvider<>();
+		provider.addSubmodel("submodel1", new VABHashmapProvider(sm));
+		provider.setAssetAdministrationShell(new VABHashmapProvider(aas));
+		
+		// setup the connection-manager with the model-provider
+		connectionStub = new VABConnectionManagerStub();
+		connectionStub.addProvider("submodel1", "",provider);
+		connectionStub.addProvider("coilcar", "",provider);
+		serviceExecutor = new CoilcarServiceExecutor(connectionStub);
+		
+	}
+	
+	@Test
+	public void testServicecall() {
+		serviceExecutor.executeService("moveTo", "coilcar", "submodel1", new ArrayList<>(Arrays.asList( new Object[] {123})));
+		assertEquals(123, coilcar.getParameter());
+		assertTrue(coilcar.getServiceCalled().equals("moveTo"));
+		
+		serviceExecutor.executeService("liftTo", "coilcar", "submodel1", new ArrayList<>(Arrays.asList( new Object[] {456})));
+		assertEquals(456, coilcar.getParameter());
+		assertTrue(coilcar.getServiceCalled().equals("liftTo"));
+		
+		serviceExecutor.executeService("moveTo", "coilcar", "submodel1", new ArrayList<>(Arrays.asList( new Object[] {789})));
+		assertEquals(789, coilcar.getParameter());
+		assertTrue(coilcar.getServiceCalled().equals("moveTo"));
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java
new file mode 100644
index 0000000..1599127
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java
@@ -0,0 +1,71 @@
+package org.eclipse.basyx.regression.processengineconnector.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Map;
+
+import org.eclipse.basyx.aas.api.resources.IOperation;
+import org.eclipse.basyx.aas.api.resources.ISubModel;
+import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;
+import org.eclipse.basyx.aas.backend.connected.aas.ConnectedAssetAdministrationShell;
+import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;
+import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
+import org.eclipse.basyx.regression.support.processengine.SetupHTTResource;
+import org.eclipse.basyx.testsuite.support.vab.stub.DirectoryServiceStub;
+import org.eclipse.basyx.testsuite.support.vab.stub.VABConnectionManagerStub;
+import org.eclipse.basyx.vab.core.VABConnectionManager;
+import org.eclipse.basyx.vab.provider.hashmap.VABHashmapProvider;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+
+
+public class TestDeviceAdministrationShell {
+	private  ConnectedAssetAdministrationShellManager manager;
+	ConnectedAssetAdministrationShell connectedAAS;
+	/**
+	 * Makes sure Tomcat Server is started
+	 */
+	@ClassRule
+	public static SetupHTTResource res = new SetupHTTResource();
+	@Before
+	public void setupConnection() {
+		
+		
+		//set-up the administration shell manager to create connected aas
+		 manager = new ConnectedAssetAdministrationShellManager(new VABConnectionManager(new DirectoryServiceStub()
+				 																							.addMapping("coilcar", "http://localhost:8080/basys.sdk/Testsuite/coilcar/")
+				 																							.addMapping("submodel1", "http://localhost:8080/basys.sdk/Testsuite/coilcar/"),
+				 																		 new HTTPConnectorProvider()));
+		
+		// create the connected AAS using the manager
+		try {
+			 connectedAAS = (ConnectedAssetAdministrationShell) manager.retrieveAAS("coilcar");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void operationTest() throws Exception {
+		assertEquals(1, connectedAAS.getSubModels().size());
+
+		// Check if the contained SubModel id is as expected
+		assertTrue(connectedAAS.getSubModels().containsKey("submodel1"));
+		ISubModel sm = connectedAAS
+				.getSubModels()
+				.get("submodel1");
+		
+		Map<String, IOperation> operations = sm.getOperations();
+		assertEquals(2, operations.size());
+		
+		IOperation op1 = operations.get("liftTo");
+		op1.invoke(5);
+		IOperation op2 = operations.get("moveTo");
+		op2.invoke(55);
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java
new file mode 100644
index 0000000..c591f73
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java
@@ -0,0 +1,53 @@
+package org.eclipse.basyx.regression.processengineconnector.tests;
+
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
+import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate;
+import org.eclipse.basyx.regression.support.processengine.stubs.BPMNEngineStub;
+import org.eclipse.basyx.regression.support.processengine.stubs.DeviceServiceExecutorStub;
+import org.junit.Test;
+
+
+public class TestJavaDelegate {
+	GSONTools gson = new GSONTools(new DefaultTypeFactory());
+	
+	@Test
+	public void testMoveToCall() {
+		Object params[] = new Object[]{5}; 
+		BPMNEngineStub bpmnstub = new BPMNEngineStub("moveTo","coilcar",gson.serialize(new ArrayList<Object>(Arrays.asList(params)))); 
+		DeviceServiceDelegate.setDeviceServiceExecutor(new DeviceServiceExecutorStub());
+		try {
+			bpmnstub.callJavaDelegate();
+			assertEquals("moveTo", DeviceServiceDelegate.getExecutor().getServiceName());
+			assertEquals("coilcar", DeviceServiceDelegate.getExecutor().getServiceProvider());
+			assertArrayEquals(new Object[]{5}, DeviceServiceDelegate.getExecutor().getParams().toArray());
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testLiftToCall() {
+		Object params[] = new Object[]{123}; 
+		BPMNEngineStub bpmnstub = new BPMNEngineStub("liftTo","coilcar",gson.serialize(new ArrayList<Object>(Arrays.asList(params)))); 
+		DeviceServiceDelegate.setDeviceServiceExecutor(new DeviceServiceExecutorStub());
+		try {
+			bpmnstub.callJavaDelegate();
+			assertEquals("liftTo", DeviceServiceDelegate.getExecutor().getServiceName());
+			assertEquals("coilcar", DeviceServiceDelegate.getExecutor().getServiceProvider());
+			assertArrayEquals(new Object[]{123}, DeviceServiceDelegate.getExecutor().getParams().toArray());
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java
new file mode 100644
index 0000000..787cb12
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java
@@ -0,0 +1,103 @@
+package org.eclipse.basyx.regression.processengineconnector.tests;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngineConfiguration;
+import org.activiti.engine.RepositoryService;
+import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;
+import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate;
+import org.eclipse.basyx.regression.support.processengine.SetupAAS;
+import org.eclipse.basyx.regression.support.processengine.SetupHTTResource;
+import org.eclipse.basyx.regression.support.processengine.executor.CoilcarServiceExecutor;
+import org.eclipse.basyx.testsuite.support.vab.stub.DirectoryServiceStub;
+import org.eclipse.basyx.vab.core.VABConnectionManager;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+
+
+/**
+ * Test case for executing BPMN-Model using BaSys SDK and Activiti-engine. 
+ * The BPMN-process is defined in the file org/activiti/aas/SimpleTransportProcess.bpmn20.xml
+ * The process-model is graphically defined by SimpleTransportProcess.bpmn
+ * 
+ * @author Zhang,Zai
+ * */
+public class TestTransportProcess_ConfigureEngineProgramically {
+	
+	ConnectedAssetAdministrationShellManager manager;
+	VABConnectionManager connectionManager;
+	/**
+	 * Makes sure Tomcat Server is started
+	 */
+	@ClassRule
+	public static SetupHTTResource res = new SetupHTTResource();
+
+	/**
+	 * Creates the manager to be used in the test cases
+	 */
+	@Before
+	public void build() {
+		// Fill directory stub
+		DirectoryServiceStub directory = new DirectoryServiceStub();
+		directory.addMapping(SetupAAS.aasid, "http://localhost:8080/basys.sdk/Testsuite/coilcar/");
+		directory.addMapping(SetupAAS.submodelid, "http://localhost:8080/basys.sdk/Testsuite/coilcar/");
+		// Create manager using the directory stub an the HTTPConnectorProvider
+		connectionManager = new VABConnectionManager(directory, new HTTPConnectorProvider());
+		manager = new ConnectedAssetAdministrationShellManager(connectionManager);
+		
+		
+	}
+	@Test
+	public void deploy() {
+		/* create a configuration for the process engine with associated database configuration
+	 		For activating timer function, asynchronous executor must be set to true */
+		ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
+				.setJdbcUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000").setJdbcUsername("test").setJdbcPassword("test")
+				.setJdbcDriver("org.h2.Driver")
+				.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
+				.setAsyncExecutorActivate(false); 
+		
+		// create the process engien with defined configuration
+		ProcessEngine processEngine = cfg.buildProcessEngine();
+		// get the name of the process-engine and prints it out in the console
+		String pName = processEngine.getName();
+		String ver = ProcessEngine.VERSION;
+		System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
+		
+		// deploy the BPMN-model defined in the xml file on the process engine
+		RepositoryService repositoryService = processEngine.getRepositoryService();
+
+		try {
+			repositoryService.createDeployment().
+			addInputStream("SimpleTransportProcess.bpmn20.xml",new FileInputStream(new File(System.getProperty("user.dir")+"\\WebContent\\WEB-INF\\config\\processengine\\SimpleTransportProcess.bpmn20.xml"))).deploy();
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+				
+		// define the variables in a list which are shared through the execution of the BPMN-process
+		Map<String, Object> variables = new HashMap<String, Object>();
+		variables.put("coilposition", 2);
+		
+		//create asset administration shells
+		//new SetupAAS();
+		//DeviceServiceDelegate.setDeviceServiceExecutor(new DeviceServiceExecutor(SetupAAS.getConnectionStub()));
+		DeviceServiceDelegate.setDeviceServiceExecutor(new CoilcarServiceExecutor(connectionManager));
+		
+		//  Start a process instance
+		@SuppressWarnings("unused")
+		ProcessInstance processInstance1 = processEngine.getRuntimeService().startProcessInstanceByKey("SimpleTransportProcess", variables);
+		
+		// close the engine after the process execution
+		processEngine.close();
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/SetupAAS.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/SetupAAS.java
new file mode 100644
index 0000000..45e8a35
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/SetupAAS.java
@@ -0,0 +1,46 @@
+package org.eclipse.basyx.regression.support.processengine;
+
+
+import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
+import org.eclipse.basyx.regression.support.processengine.aas.DeviceAdministrationShellFactory;
+import org.eclipse.basyx.regression.support.processengine.stubs.Coilcar;
+import org.eclipse.basyx.regression.support.processengine.submodel.DeviceSubmodelFactory;
+import org.eclipse.basyx.testsuite.support.vab.stub.VABConnectionManagerStub;
+import org.eclipse.basyx.vab.provider.hashmap.VABHashmapProvider;
+
+/**
+ * Create AAS and VAB connection stub (without communication protocol for test purpose)
+ * */
+
+public class SetupAAS {
+
+	public static String aasid = "coilcar";
+	public static String submodelid = "submodel1";
+	private static Coilcar coilcar = new Coilcar();
+	private static VABConnectionManagerStub connectionStub;
+	
+	static {
+		AssetAdministrationShell aas = new DeviceAdministrationShellFactory().create( aasid, submodelid);
+		SubModel sm = new DeviceSubmodelFactory().create(submodelid, coilcar);
+		
+		VABMultiSubmodelProvider<VABHashmapProvider> provider = new VABMultiSubmodelProvider<>();
+		provider.addSubmodel(submodelid, new VABHashmapProvider(sm));
+		provider.setAssetAdministrationShell(new VABHashmapProvider(aas));
+		
+		// setup the connection-manager with the model-provider
+		connectionStub = new VABConnectionManagerStub();
+		connectionStub.addProvider(submodelid, "", provider);
+		connectionStub.addProvider(aasid, "", provider);
+	}
+
+	public static VABConnectionManagerStub getConnectionStub() {
+		return connectionStub;
+	}
+
+	public static String getSubmodelid() {
+		return submodelid;
+	}
+	
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java
new file mode 100644
index 0000000..e92b07a
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java
@@ -0,0 +1,22 @@
+package org.eclipse.basyx.regression.support.processengine.aas;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;
+
+public class DeviceAdministrationShellFactory {
+	
+	public AssetAdministrationShell create(String aasid, String submodelid){
+		MetaModelElementFactory factory = new MetaModelElementFactory();
+		
+		//create the aas, add submodel to aas using VABMultiSubmodelProvider 
+		Set<String> refs = new HashSet<>();
+		refs.add(submodelid);
+		AssetAdministrationShell aas = factory.create(new AssetAdministrationShell(), refs);
+		aas.put("idshort", aasid);
+
+		return aas;
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/CoilcarServiceExecutor.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/CoilcarServiceExecutor.java
new file mode 100644
index 0000000..9a6aad3
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/CoilcarServiceExecutor.java
@@ -0,0 +1,22 @@
+package org.eclipse.basyx.regression.support.processengine.executor;
+
+import java.util.List;
+
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceExecutor;
+import org.eclipse.basyx.regression.support.processengine.SetupAAS;
+import org.eclipse.basyx.vab.core.VABConnectionManager;
+
+
+public class CoilcarServiceExecutor extends DeviceServiceExecutor {
+
+	public CoilcarServiceExecutor(VABConnectionManager connectionmanager) {
+		super(connectionmanager);
+	}
+
+	@Override
+	public Object executeService(String serviceName, String deviceid, List<Object> params) throws Exception {
+		
+		return super.executeService(serviceName, deviceid, SetupAAS.submodelid, params);
+	}
+
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/ExecutionSequence.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/ExecutionSequence.java
new file mode 100644
index 0000000..2999e62
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/executor/ExecutionSequence.java
@@ -0,0 +1,22 @@
+package org.eclipse.basyx.regression.support.processengine.executor;
+
+public class ExecutionSequence {
+	public static String[] expectedSequence1 = new String[]{
+			"t1",
+			"t3",
+			"t4",
+			"t5",
+			"t6",
+			"t7",
+			"end"};
+	public static String[] expectedSequence2 = new String[]{
+			"t2",
+			"t1",
+			"t3",
+			"t4",
+			"t5",
+			"t6",
+			"t7",
+			"end"};
+
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java
new file mode 100644
index 0000000..2116a41
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java
@@ -0,0 +1,32 @@
+package org.eclipse.basyx.regression.support.processengine.servlet;
+
+
+import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
+import org.eclipse.basyx.regression.support.processengine.aas.DeviceAdministrationShellFactory;
+import org.eclipse.basyx.regression.support.processengine.stubs.Coilcar;
+import org.eclipse.basyx.regression.support.processengine.submodel.DeviceSubmodelFactory;
+import org.eclipse.basyx.vab.backend.server.http.VABHTTPInterface;
+import org.eclipse.basyx.vab.provider.hashmap.VABHashmapProvider;
+
+
+
+public class CoilcarAASServlet extends VABHTTPInterface<VABMultiSubmodelProvider<VABHashmapProvider>> {
+	private static final long serialVersionUID = 1L;
+	private String aasid = "coilcar";
+	private String submodelid = "submodel1";
+
+	public CoilcarAASServlet() {
+		super(new VABMultiSubmodelProvider<>());
+		
+		AssetAdministrationShell coilcarAAS = new DeviceAdministrationShellFactory().create(aasid,  submodelid);
+		// Set Id
+		coilcarAAS.setId(aasid);
+		SubModel coilcarSubmodel = new DeviceSubmodelFactory().create(submodelid, new Coilcar());
+		
+		getModelProvider().setAssetAdministrationShell(new VABHashmapProvider(coilcarAAS));
+		getModelProvider().addSubmodel(submodelid, new VABHashmapProvider(coilcarSubmodel));
+	}
+
+}
\ No newline at end of file
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java
new file mode 100644
index 0000000..0ce66e6
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java
@@ -0,0 +1,81 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.activiti.bpmn.model.ServiceTask;
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.Expression;
+import org.activiti.engine.impl.el.FixedValue;
+import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl;
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate;
+
+
+/**
+ * BPMNStub that invokes the JavaDelegate through the reflection
+ * A test that ensure the right parameters are given to the DeviceServiceExecutor
+ * 
+ * @author Zhang, Zai
+ * */
+public class BPMNEngineStub {
+	
+	private Map<String, String> fieldInjections = new HashMap<>();
+	
+	private String classPath = "org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate";
+	
+	
+	/**
+	 * Constructor
+	 * parameters are value of the injected fields in String
+	 * @param serviceParameter all requested parameters in a serialized Json-String
+	 * */
+	public BPMNEngineStub(String serviceName, String serviceProvider, String serviceParameter) {
+		fieldInjections.put("serviceName", serviceName);
+		fieldInjections.put("serviceProvider", serviceProvider);
+		fieldInjections.put("serviceParameter", serviceParameter);
+	}
+	
+	public void callJavaDelegate() throws Exception {
+		// create the class of the java-delegate
+		@SuppressWarnings("rawtypes")
+		Class clazz = Class.forName(classPath);
+		DeviceServiceDelegate delegate = (DeviceServiceDelegate) clazz.newInstance();	
+		// get all declare field of the class, including private fields	
+		Field fields[] = clazz.getDeclaredFields();
+		// set expected value defined in the hashMap to each fields
+		for(Field f : fields) {
+			if(fieldInjections.containsKey(f.getName())) {
+				// get expected value
+				String value = fieldInjections.get(f.getName());
+				// create expression for this field
+				Expression serviceName_expression = createExpressionObejct(value);
+				// set the private field accesable
+				f.setAccessible(true);
+				// set value to the field
+				f.set(delegate, serviceName_expression);
+			}
+		}
+		//create execution-stub
+		DelegateExecution execution =  ExecutionEntityImpl.createWithEmptyRelationshipCollections();
+		// create a flow-element for the execution
+		ServiceTask serviceTask = new ServiceTask();
+		// set id of the flow element
+	    serviceTask.setId("t1");
+	    // set name of the flow element
+	    serviceTask.setName("task1");
+	    // set thsi flow-element to the current element of the execution
+	    execution.setCurrentFlowElement(serviceTask);
+	    // call the delegate function
+		delegate.execute(execution);
+	}
+	
+	/**
+	 * create the Expression-instance for the delegate 
+	 * */
+	private Expression createExpressionObejct(String value) {
+		Expression ep = new FixedValue(value);
+		return ep;
+	}
+
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
new file mode 100644
index 0000000..ecce96c
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
@@ -0,0 +1,168 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.activiti.bpmn.model.ActivitiListener;
+import org.activiti.bpmn.model.BpmnModel;
+import org.activiti.bpmn.model.EndEvent;
+import org.activiti.bpmn.model.ExclusiveGateway;
+import org.activiti.bpmn.model.FieldExtension;
+import org.activiti.bpmn.model.Gateway;
+import org.activiti.bpmn.model.ImplementationType;
+import org.activiti.bpmn.model.SequenceFlow;
+import org.activiti.bpmn.model.ServiceTask;
+import org.activiti.bpmn.model.StartEvent;
+import org.activiti.bpmn.model.UserTask;
+import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
+import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate;
+import org.activiti.bpmn.model.Process;
+
+
+public class BPMNModelFactory {
+	
+	private static final String TASKI_MPL = "org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate";
+	
+	private List<ServiceTask> services = new ArrayList<>();
+	
+	public BpmnModel create(String processId) {
+		return create( processId, TASKI_MPL);
+	}
+	
+	
+	
+	private BpmnModel create(String processId, String impl) {
+		BpmnModel model = new BpmnModel();
+	    Process process = new Process();
+	    model.addProcess(process);
+	    process.setId(processId);
+	
+	   
+	    
+
+	    
+	    process.addFlowElement(createStartEvent());
+	    
+	    ServiceTask task1 = createServiceTask("t1", "pickup the coil", impl, "liftTo", "coilcar", new Object[]{1});
+	    services.add(task1);
+	    
+	    
+	    ServiceTask task2 =createServiceTask("t2", "move to the coil", impl, "moveTo", "coilcar", new Object[]{1});
+	    services.add(task2);
+	    
+	    ServiceTask task3 = createServiceTask("t3", "drive the coil to the milling machine", impl, "moveTo", "coilcar", new Object[]{5});
+	    services.add(task3);
+	    
+	    ServiceTask task4 = createServiceTask("t4", "lift the coil to the expected position", impl, "liftTo", "coilcar", new Object[]{6});
+	    services.add(task4);
+	    
+	    ServiceTask task5 =createServiceTask("t5", "put the coil on the mandrel", impl, "moveTo", "coilcar", new Object[]{6});
+	    services.add(task5);
+	    
+	    ServiceTask task6 = createServiceTask("t6", "set the lifter to the start position", impl, "liftTo", "coilcar", new Object[]{0});
+	    services.add(task6);
+	    
+	    ServiceTask task7 =createServiceTask("t7", "drive the coilcar back to the start position", impl, "moveTo", "coilcar", new Object[]{0});
+	    services.add(task7);
+	    
+	   
+	    for(ServiceTask t : services) {
+	    	process.addFlowElement(t);
+	    	//t.setExecutionListeners(executionListeners);
+	    }
+	  
+	    
+	    process.addFlowElement(createGateway("gateway1", "check the current position of the coil"));
+	    
+	    process.addFlowElement(createEndEvent());
+	    
+	    
+	    
+	    process.addFlowElement(createSequenceFlow("start", "gateway1"));
+	    process.addFlowElement(createSequenceFlowWithCondition("gateway1", "t1", "${coilposition==1}"));
+	    process.addFlowElement(createSequenceFlowWithCondition("gateway1", "t2", "${coilposition==2}"));
+	    process.addFlowElement(createSequenceFlow("t1", "t3"));
+	    process.addFlowElement(createSequenceFlow("t2", "t1"));
+	    process.addFlowElement(createSequenceFlow("t3", "t4"));
+	    process.addFlowElement(createSequenceFlow("t4", "t5"));
+	    process.addFlowElement(createSequenceFlow("t5", "t6"));
+	    process.addFlowElement(createSequenceFlow("t6", "t7"));
+	    process.addFlowElement(createSequenceFlow("t7", "end"));
+	    
+	    
+	    return model;
+	}
+	
+	protected Gateway createGateway(String gwid, String gwname) {
+		Gateway gw = new ExclusiveGateway();
+		gw.setId(gwid);
+		gw.setName(gwname);
+		return gw;
+	}
+	
+	protected SequenceFlow createSequenceFlowWithCondition(String from, String to, String conditionExpression) {
+	    SequenceFlow flow = new SequenceFlow();
+	    flow.setSourceRef(from);
+	    flow.setTargetRef(to);
+	    flow.setConditionExpression(conditionExpression);
+	    return flow;
+    }
+    protected UserTask createUserTask(String id, String name, String assignee) {
+    	UserTask userTask = new UserTask();
+    	userTask.setName(name);
+    	userTask.setId(id);
+    	userTask.setAssignee(assignee);
+    	return userTask;
+    }
+  
+    protected SequenceFlow createSequenceFlow(String from, String to) {
+	    SequenceFlow flow = new SequenceFlow();
+	    flow.setSourceRef(from);
+	    flow.setTargetRef(to);
+	    return flow;
+    }
+  
+    protected StartEvent createStartEvent() {
+	    StartEvent startEvent = new StartEvent();
+	    startEvent.setId("start");
+	    return startEvent;
+    }
+  
+    protected EndEvent createEndEvent() {
+	    EndEvent endEvent = new EndEvent();
+	    endEvent.setId("end");
+	    return endEvent;
+    }
+    public ServiceTask createServiceTask(String taskid, String taskName, String impl, String serviceName, String serviceProvider, Object[]  params) {
+		ServiceTask serviceTask = new ServiceTask();
+	    serviceTask.setImplementation(impl);
+	    serviceTask.setImplementationType("class");
+	    serviceTask.setId(taskid);
+	    serviceTask.setName(taskName);
+	    
+	    List<FieldExtension> fes = new ArrayList<>();
+	    fes.add(createFieldExtension("serviceName", serviceName));
+	    fes.add(createFieldExtension("serviceProvider", serviceProvider));
+	    fes.add(createFieldExtension("serviceParameter", generateJsonString(params)));
+	    serviceTask.setFieldExtensions(fes);
+	 
+	    return serviceTask;
+	}
+	
+	
+	
+	private FieldExtension createFieldExtension(String fname, String fexpression) {
+ 	 FieldExtension snf = new FieldExtension();
+	    snf.setFieldName(fname);
+	    snf.setExpression(fexpression);
+	    return snf;
+	}
+	
+	private String generateJsonString(Object[] params) {
+		GSONTools gson = new GSONTools(new DefaultTypeFactory());
+		String to = gson.serialize(new ArrayList<Object>(Arrays.asList(params)));
+		return to;
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java
new file mode 100644
index 0000000..30a65cb
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java
@@ -0,0 +1,60 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+
+public class Coilcar implements ICoilcar {
+	private int currentPosition = 0;
+	private int currentLifterPosition = 0;
+	
+	
+	@Override
+	public int moveTo(int position) {
+		System.out.printf("#submodel# invoke service +MoveTo+ with parameter: %d \n\n", position);
+		Double steps[] =  generateCurve(currentPosition,  position);
+		for(Double step : steps) {
+			System.out.println(step);
+			try {
+				Thread.sleep(10);
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		currentPosition = position;
+		return currentPosition;
+	}
+
+	@Override
+	public int liftTo(int position) {
+		System.out.printf("#submodel# Call service LiftTo with Parameter: %d \n\n", position);
+		Double steps[] =  generateCurve(currentLifterPosition,  position);
+		for(Double step : steps) {
+			System.out.println(step);
+			try {
+				Thread.sleep(10);
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+		}
+		currentLifterPosition = position;
+		return currentLifterPosition;
+	}
+
+	public int getCurrentPosition() {
+		return currentPosition;
+	}
+
+	public int getCurrentLifterPosition() {
+		return currentLifterPosition;
+	}
+	
+	
+	private Double[] generateCurve(double current, double goal){
+		Double stepList[] = new Double[20];
+		double delta = (goal-current)/20;
+		for(int i= 0; i< 20; i++) {
+			stepList[i]= current+delta*(i+1);
+		}
+		return stepList;
+	}
+	
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java
new file mode 100644
index 0000000..10ee907
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java
@@ -0,0 +1,30 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+
+public class CoilcarStub implements ICoilcar {
+	
+	private String serviceCalled;
+	private Object parameter;
+
+	@Override
+	public int moveTo(int position) {
+		serviceCalled = "moveTo";
+		parameter = position;
+		return position;
+	}
+
+	@Override
+	public int liftTo(int position) {
+		serviceCalled = "liftTo";
+		parameter = position;
+		return position;
+	}
+
+	public String getServiceCalled() {
+		return serviceCalled;
+	}
+
+	public Object getParameter() {
+		return parameter;
+	}
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java
new file mode 100644
index 0000000..e8c88d2
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java
@@ -0,0 +1,67 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+import java.util.List;
+
+import org.eclipse.basyx.components.processengine.connector.IDeviceServiceExecutor;
+
+
+public class DeviceServiceExecutorStub implements IDeviceServiceExecutor{
+	private String serviceName;
+	private String serviceProvider;
+	@SuppressWarnings("unused")
+	private String serviceSubmodelid;
+	private List<Object> params;
+	
+	
+	// whether the right service is invoked
+	@Override
+	public Object executeService(String servicename, String serviceProvider,  List<Object> params){
+		this.serviceName = servicename;
+		this.serviceProvider = serviceProvider;
+		this.serviceSubmodelid = "SERVICES";
+		this.params = params;
+		try {
+			System.out.printf("service: %s, executed by device: %s , parameters: ", servicename, serviceProvider);
+			if(params.size() == 0) {
+				System.out.println("[]");
+			}else {
+				for(Object p : params) {
+					System.out.printf("%s, ", p);
+				}
+				System.out.println("");
+				
+			}
+			Thread.sleep((int)(Math.random()*3000));
+		} catch (InterruptedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		return 1;
+	}
+
+	@Override
+	public String getServiceName() {
+		return serviceName;
+	}
+
+	@Override
+	public String getServiceProvider() {
+		return serviceProvider;
+	}
+
+	@Override
+	public List<Object> getParams() {
+		return params;
+	}
+
+	@Override
+	public Object executeService(String servicename, String serviceProvider, String submodelid, List<Object> params)
+			throws Exception {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+	
+
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java
new file mode 100644
index 0000000..76d0e8b
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java
@@ -0,0 +1,15 @@
+package org.eclipse.basyx.regression.support.processengine.stubs;
+
+public interface ICoilcar {
+	/**
+	 * a service that moves the coil-car to the expected position
+	 * @param position expected position
+	 * */
+	public int moveTo(int position);
+	
+	/**
+	 * a service that rises the lifter of the coil-car to the expected position
+	 * @param position expected position
+	 * */
+	public int liftTo(int position);
+}
diff --git a/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java
new file mode 100644
index 0000000..fd29ae6
--- /dev/null
+++ b/components/basys.components/regression/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java
@@ -0,0 +1,53 @@
+package org.eclipse.basyx.regression.support.processengine.submodel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+
+import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.operation.Operation;
+import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;
+import org.eclipse.basyx.regression.support.processengine.stubs.ICoilcar;
+
+
+public class DeviceSubmodelFactory {
+	public SubModel create(String id, ICoilcar coilcar) {
+		MetaModelElementFactory factory = new MetaModelElementFactory();
+		// create a single value property
+		Property property1 = factory.create(new Property(), 0);
+		property1.setId("currentPosition");
+		
+		Property property2 = factory.create(new Property(), 0);
+		property2.setId("lifterPosition");
+		
+		Property property3 = factory.create(new Property(), false);
+		property3.setId("physicalSpeed");
+		
+		// create 2 opertations
+		Operation op1 = factory.createOperation(new Operation(), (Function<Object[], Object>) (obj) -> {
+			return coilcar.liftTo((int)obj[0]);
+		});
+		op1.setId("liftTo");
+		
+		Operation op2 = factory.createOperation(new Operation(), (Function<Object[], Object> )(obj)->{
+			coilcar.moveTo((int)obj[0]);
+			return true;
+		});
+		op2.setId("moveTo");
+		
+		// create a list for defined operations
+		List<Operation> oplist = new ArrayList<>();
+		oplist.add(op1);
+		oplist.add(op2);
+		// create a list for defined properties
+		List<Property> propList = new ArrayList<>();
+		propList.add(property1);
+		propList.add(property2);
+		propList.add(property3);
+		// create the sub-model and add the property and operations to the sub-model
+		SubModel sm = factory.create(new SubModel(),  propList, oplist);
+		sm.setId(id);
+		return sm;
+	}
+}
diff --git a/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java b/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
new file mode 100644
index 0000000..03da65f
--- /dev/null
+++ b/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
@@ -0,0 +1,80 @@
+package org.eclipse.basyx.components.processengine.connector;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.Expression;
+import org.activiti.engine.delegate.JavaDelegate;
+import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
+import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+
+/**
+ * Java-Delegate is involved when the corresponding service-task of the BPMN-Model is executed. 
+ * It invokes the service-call of the defined service in the aas.
+ * 
+ * @author Zhang, Zai
+ * */
+public class DeviceServiceDelegate implements JavaDelegate {
+	
+	// name of the service that is used to navigate the service in the aas
+	private Expression serviceName;
+	
+	// Identify the device that provides the service
+	private Expression serviceProvider;
+	
+	// parameters required by the service. 
+	// All parameters are serialized as an array and stored in a Json string
+	private Expression serviceParameter;
+	
+	/* Device service-executor invokes the services defined in the aas
+	 * Only one instance is allowed
+	 * */
+	private static IDeviceServiceExecutor executor;
+	
+	// Instance of GSONTools used for JSON-serialisation
+	private GSONTools gson = new GSONTools(new DefaultTypeFactory());
+	
+	@Override
+	public void execute(DelegateExecution execution) {
+		
+		// get name of the service
+		String servicename = (String)serviceName.getValue(execution);
+		
+		// get the Json string of service parameters
+		String params = (String) serviceParameter.getValue(execution);
+		
+		// deserialize the Json-string to get the parameters in an array
+		@SuppressWarnings("unchecked")
+		
+		List<Object> paramarray = new ArrayList<>();
+		paramarray.addAll((Collection<Object>)gson.deserialize(params));
+		// get name of the current process step in the BPMN-Model
+		String processName = execution.getCurrentFlowElement().getName();
+		String deviceAASId = (String)serviceProvider.getValue(execution);
+		System.out.println("#######process instance: "+ execution.getProcessInstanceId()+" current activity: " + processName +" is executed by "+ deviceAASId);
+		
+		
+		try {
+			// invoke the specified service using service-executor
+			executor.executeService(servicename, deviceAASId, paramarray);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}	
+	
+	
+	public static void setDeviceServiceExecutor(IDeviceServiceExecutor ex) {
+		executor = ex;
+	}
+
+
+	public static IDeviceServiceExecutor getExecutor() {
+		return executor;
+	}
+	
+	
+}
diff --git a/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java b/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java
new file mode 100644
index 0000000..214db23
--- /dev/null
+++ b/components/basys.components/src/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java
@@ -0,0 +1,11 @@
+package org.eclipse.basyx.components.processengine.connector;
+
+import java.util.List;
+
+public interface IDeviceServiceExecutor {
+	public Object executeService( String servicename, String serviceProvider,String submodelid,  List<Object> params) throws Exception;
+	public Object executeService( String serviceName, String deviceid, List<Object> params) throws Exception;
+	public String getServiceName();
+	public String getServiceProvider();
+	public List<Object> getParams();
+}
diff --git a/examples/basys.examples/.settings/org.eclipse.wst.common.component b/examples/basys.examples/.settings/org.eclipse.wst.common.component
index e9654ef..e36038a 100644
--- a/examples/basys.examples/.settings/org.eclipse.wst.common.component
+++ b/examples/basys.examples/.settings/org.eclipse.wst.common.component
@@ -6,9 +6,6 @@
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/examples"/>

         <wb-resource deploy-path="/WEB-INF/classes" source-path="/servlets"/>

         <wb-resource deploy-path="/WEB-INF/classes" source-path="/support"/>

-        <dependent-module archiveName="basys.sdk-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/basys.sdk/basys.sdk">

-            <dependency-type>uses</dependency-type>

-        </dependent-module>

         <dependent-module archiveName="basys.components-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/basys.components/basys.components">

             <dependency-type>uses</dependency-type>

         </dependent-module>

diff --git a/examples/basys.examples/WebContent/META-INF/MANIFEST.MF b/examples/basys.examples/WebContent/META-INF/MANIFEST.MF
index 5e94951..58630c0 100644
--- a/examples/basys.examples/WebContent/META-INF/MANIFEST.MF
+++ b/examples/basys.examples/WebContent/META-INF/MANIFEST.MF
@@ -1,3 +1,2 @@
 Manifest-Version: 1.0

-Class-Path: 

 

diff --git a/examples/basys.examples/pom.xml b/examples/basys.examples/pom.xml
index 2f05b53..4715653 100644
--- a/examples/basys.examples/pom.xml
+++ b/examples/basys.examples/pom.xml
@@ -1,294 +1,286 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

-  <modelVersion>4.0.0</modelVersion>

-  <groupId>basys.examples</groupId>

-  <artifactId>basys.examples</artifactId>

-  <version>0.0.1-SNAPSHOT</version>

-  <packaging>jar</packaging>

-  <name>BaSys Examples</name>

-  

-  <repositories>

-	  <repository>

-	    <id>data-local</id>

-	    <name>data</name>

-	    <url>file://${project.basedir}/repo</url>

-	  </repository>

+<project xmlns="http://maven.apache.org/POM/4.0.0"

+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+	<modelVersion>4.0.0</modelVersion>

+	<groupId>basys.examples</groupId>

+	<artifactId>basys.examples</artifactId>

+	<version>0.0.1-SNAPSHOT</version>

+	<packaging>jar</packaging>

+	<name>BaSys Examples</name>

+

+	<repositories>

+		<repository>

+			<id>data-local</id>

+			<name>data</name>

+			<url>file://${project.basedir}/repo</url>

+		</repository>

 	</repositories>

 

-   <build>

-    <sourceDirectory></sourceDirectory>

-    

-     <resources>

-      <resource>

-       <directory>src</directory>

-		 <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-      <resource>

-       <directory>servlets</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-      <resource>

-       <directory>examples</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-      <resource>

-       <directory>directory</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-     </resources>

-    

-    <testSourceDirectory>

+	<build>

+		<sourceDirectory>src</sourceDirectory>

+

+		<testSourceDirectory>

     		${project.basedir}/examples

-    </testSourceDirectory>

-    

-    <plugins>

-      <plugin>

-        <artifactId>maven-compiler-plugin</artifactId>

-        <version>3.7.0</version>

-        <configuration>

-          <source>1.8</source>

-          <target>1.8</target>

-          <compilerArgument>-proc:none</compilerArgument>

-        </configuration>

-      </plugin>

-      

-	 <plugin>

-        <artifactId>maven-war-plugin</artifactId>

-        <version>3.0.0</version>

-    <!--     <configuration>

-          <warSourceDirectory>WebContent</warSourceDirectory>

-        </configuration> -->

-      </plugin> 

-      

-      <plugin>

-         <groupId>org.apache.maven.plugins</groupId>

-         <artifactId>maven-surefire-plugin</artifactId>

-         <!-- <version>2.12.1</version> -->

-         <version>2.4.2</version>

-          <configuration>

-    		<excludes>

-      			<exclude>**/*HTTP*</exclude>

-      			<exclude>**/*TCP*</exclude>

-    		</excludes>

-  		 </configuration>

-       </plugin>

-       

-       <plugin>

-		  <groupId>org.apache.maven.plugins</groupId>

-		  <artifactId>maven-failsafe-plugin</artifactId>

-		  <version>2.12.4</version>

-		  <configuration>

-		    <includes>

-		      <include>**/*HTTP*</include>

-		      <include>**/*TCP*</include>

-		    </includes>

-		  </configuration>

-		  <executions>

-		    <execution>

-		      <goals>

-		        <goal>integration-test</goal>

-		        <goal>verify</goal>

-		      </goals>

-		    </execution>

-		  </executions>

-		</plugin>   

-		

-		

-		<!-- Export Jar file to /examples package -->

-		<plugin>

-	      <groupId>org.apache.maven.plugins</groupId>

-	      <artifactId>maven-jar-plugin</artifactId>

-	      <version>2.3.1</version>

-	      <configuration>

-	        <outputDirectory>../../examples/basys.examples/repo/basys/examples/basys.examples/0.0.1-SNAPSHOT</outputDirectory>

-	      </configuration>

-	    </plugin>

-		

-    </plugins>

-  </build>

-  

-  <dependencies>

-	 

-		

+    	</testSourceDirectory>

+

+		<plugins>

+			<!-- Add sources for servlets and examples to sourceDirectory -->

+			<plugin>

+				<groupId>org.codehaus.mojo</groupId>

+				<artifactId>build-helper-maven-plugin</artifactId>

+				<version>3.0.0</version>

+				<executions>

+					<execution>

+						<id>attachServlets</id>

+						<phase>generate-sources</phase>

+						<goals>

+							<goal>add-source</goal>

+						</goals>

+						<configuration>

+							<sources>

+								<source>servlets</source>

+							</sources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>attachSupport</id>

+						<phase>generate-sources</phase>

+						<goals>

+							<goal>add-source</goal>

+						</goals>

+						<configuration>

+							<sources>

+								<source>examples</source>

+							</sources>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+

+

+			<plugin>

+				<artifactId>maven-compiler-plugin</artifactId>

+				<version>3.7.0</version>

+				<configuration>

+					<source>1.8</source>

+					<target>1.8</target>

+					<compilerArgument>-proc:none</compilerArgument>

+				</configuration>

+			</plugin>

+

+			<plugin>

+				<artifactId>maven-war-plugin</artifactId>

+				<version>3.0.0</version>

+				<!-- <configuration> <warSourceDirectory>WebContent</warSourceDirectory> 

+					</configuration> -->

+			</plugin>

+

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-surefire-plugin</artifactId>

+				<!-- <version>2.12.1</version> -->

+				<version>2.4.2</version>

+				<configuration>

+					<excludes>

+						<exclude>**/*HTTP*</exclude>

+						<exclude>**/*TCP*</exclude>

+					</excludes>

+				</configuration>

+			</plugin>

+

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-failsafe-plugin</artifactId>

+				<version>2.12.4</version>

+				<configuration>

+					<includes>

+						<include>**/*HTTP*</include>

+						<include>**/*TCP*</include>

+					</includes>

+				</configuration>

+				<executions>

+					<execution>

+						<goals>

+							<goal>integration-test</goal>

+							<goal>verify</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+		</plugins>

+	</build>

+

+	<dependencies>

 		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

-	      <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

-		  <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

+		<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

+		<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

 		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->

-		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina (Tomcat 8, not 9) -->

-		

+		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina 

+			(Tomcat 8, not 9) -->

 		<dependency>

-	  		<groupId>org.json</groupId>

-	  		<artifactId>json</artifactId>

-	  		<version>20180813</version>

-	  	<!-- 	<scope>provided</scope> -->

-	  	</dependency>

-		

-		<!--  Dependencies removed from Classpath -->

+			<groupId>org.json</groupId>

+			<artifactId>json</artifactId>

+			<version>20180813</version>

+			<!-- <scope>provided</scope> -->

+		</dependency>

+		<!-- Dependencies removed from Classpath -->

 		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->

 		<dependency>

-		    <groupId>org.postgresql</groupId>

-		    <artifactId>postgresql</artifactId>

-		    <version>42.2.2</version>

+			<groupId>org.postgresql</groupId>

+			<artifactId>postgresql</artifactId>

+			<version>42.2.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2.external/aopalliance-repackaged -->

 		<dependency>

-		    <groupId>org.glassfish.hk2.external</groupId>

-		    <artifactId>aopalliance-repackaged</artifactId>

-		    <version>2.5.0-b42</version>

+			<groupId>org.glassfish.hk2.external</groupId>

+			<artifactId>aopalliance-repackaged</artifactId>

+			<version>2.5.0-b42</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->

 		<dependency>

-		    <groupId>javax.enterprise</groupId>

-		    <artifactId>cdi-api</artifactId>

-		    <version>2.0</version>

-		    <scope>provided</scope>

+			<groupId>javax.enterprise</groupId>

+			<artifactId>cdi-api</artifactId>

+			<version>2.0</version>

+			<scope>provided</scope>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.el/el-api -->

 		<dependency>

-		    <groupId>javax.el</groupId>

-		    <artifactId>el-api</artifactId>

-		    <version>2.2</version>

+			<groupId>javax.el</groupId>

+			<artifactId>el-api</artifactId>

+			<version>2.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/hk2-api -->

 		<dependency>

-		    <groupId>org.glassfish.hk2</groupId>

-		    <artifactId>hk2-api</artifactId>

-		    <version>2.5.0</version>

+			<groupId>org.glassfish.hk2</groupId>

+			<artifactId>hk2-api</artifactId>

+			<version>2.5.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javassist/javassist -->

 		<dependency>

-		    <groupId>javassist</groupId>

-		    <artifactId>javassist</artifactId>

-		    <version>3.12.1.GA</version>

+			<groupId>javassist</groupId>

+			<artifactId>javassist</artifactId>

+			<version>3.12.1.GA</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->

 		<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->

 		<dependency>

-		    <groupId>javax.inject</groupId>

-		    <artifactId>javax.inject</artifactId>

-		    <version>1</version>

+			<groupId>javax.inject</groupId>

+			<artifactId>javax.inject</artifactId>

+			<version>1</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.json/javax.json-api -->

 		<dependency>

-		    <groupId>javax.json</groupId>

-		    <artifactId>javax.json-api</artifactId>

-		    <version>1.0</version>

+			<groupId>javax.json</groupId>

+			<artifactId>javax.json-api</artifactId>

+			<version>1.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->

 		<dependency>

-		    <groupId>javax.xml.bind</groupId>

-		    <artifactId>jaxb-api</artifactId>

-		    <version>2.3.0</version>

+			<groupId>javax.xml.bind</groupId>

+			<artifactId>jaxb-api</artifactId>

+			<version>2.3.0</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.interceptor/jboss-interceptors-api_1.1_spec -->

 		<dependency>

-		    <groupId>org.jboss.spec.javax.interceptor</groupId>

-		    <artifactId>jboss-interceptors-api_1.1_spec</artifactId>

-		    <version>1.0.1.Final</version>

+			<groupId>org.jboss.spec.javax.interceptor</groupId>

+			<artifactId>jboss-interceptors-api_1.1_spec</artifactId>

+			<version>1.0.1.Final</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->

 		<dependency>

-		    <groupId>javax.annotation</groupId>

-		    <artifactId>javax.annotation-api</artifactId>

-		    <version>1.3.2</version>

+			<groupId>javax.annotation</groupId>

+			<artifactId>javax.annotation-api</artifactId>

+			<version>1.3.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.osgi/org.osgi.core -->

 		<dependency>

-		    <groupId>org.osgi</groupId>

-		    <artifactId>org.osgi.core</artifactId>

-		    <version>4.2.0</version>

-		    <scope>provided</scope>

+			<groupId>org.osgi</groupId>

+			<artifactId>org.osgi.core</artifactId>

+			<version>4.2.0</version>

+			<scope>provided</scope>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/osgi-resource-locator -->

 		<dependency>

-		    <groupId>org.glassfish.hk2</groupId>

-		    <artifactId>osgi-resource-locator</artifactId>

-		    <version>1.0.1</version>

+			<groupId>org.glassfish.hk2</groupId>

+			<artifactId>osgi-resource-locator</artifactId>

+			<version>1.0.1</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->

 		<dependency>

-		    <groupId>javax.persistence</groupId>

-		    <artifactId>persistence-api</artifactId>

-		    <version>1.0.2</version>

+			<groupId>javax.persistence</groupId>

+			<artifactId>persistence-api</artifactId>

+			<version>1.0.2</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->

 		<dependency>

-		    <groupId>javax.validation</groupId>

-		    <artifactId>validation-api</artifactId>

-		    <version>2.0.1.Final</version>

+			<groupId>javax.validation</groupId>

+			<artifactId>validation-api</artifactId>

+			<version>2.0.1.Final</version>

 		</dependency>

 		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->

 		<dependency>

-		    <groupId>javax.servlet</groupId>

-		    <artifactId>javax.servlet-api</artifactId>

-		    <version>3.1.0</version>

-		    <scope>provided</scope>

+			<groupId>javax.servlet</groupId>

+			<artifactId>javax.servlet-api</artifactId>

+			<version>3.1.0</version>

+			<scope>provided</scope>

 		</dependency>

-		

+

 		<!-- https://mvnrepository.com/artifact/org.eclipse/yasson -->

 		<dependency>

-		    <groupId>org.eclipse</groupId>

-		    <artifactId>yasson</artifactId>

-		    <version>1.0.2</version>

+			<groupId>org.eclipse</groupId>

+			<artifactId>yasson</artifactId>

+			<version>1.0.2</version>

 		</dependency>

-		

-		<!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from local repository because jar cannot be found on maven central -->

+

+		<!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from 

+			local repository because jar cannot be found on maven central -->

 		<dependency>

-		    <groupId>javax.xml.xquery</groupId>

-		    <artifactId>xqj-api</artifactId>

-		    <version>1.0</version>

+			<groupId>javax.xml.xquery</groupId>

+			<artifactId>xqj-api</artifactId>

+			<version>1.0</version>

 		</dependency>

-		

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->

-		<!-- <dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>saxon-xqj</artifactId>

-		    <version>9.x</version>

-		</dependency> -->

-		

+		<!-- <dependency> <groupId>net.sf.saxon</groupId> <artifactId>saxon-xqj</artifactId> 

+			<version>9.x</version> </dependency> -->

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->

 		<dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>saxon-xqj</artifactId>

-		    <version>8.9</version>

+			<groupId>net.sf.saxon</groupId>

+			<artifactId>saxon-xqj</artifactId>

+			<version>8.9</version>

 		</dependency>

-				

-		

+

+

 		<!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->

 		<dependency>

-		    <groupId>net.sf.saxon</groupId>

-		    <artifactId>Saxon-HE</artifactId>

-		    <version>9.5.1-5</version>

+			<groupId>net.sf.saxon</groupId>

+			<artifactId>Saxon-HE</artifactId>

+			<version>9.5.1-5</version>

 		</dependency>

-		

-				

+

+

 		<dependency>

-		    <groupId>com.google.code.gson</groupId>

-		    <artifactId>gson</artifactId>

-		    <version>2.8.5</version>

+			<groupId>com.google.code.gson</groupId>

+			<artifactId>gson</artifactId>

+			<version>2.8.5</version>

 		</dependency>

-				

-	

-		<!-- Add BaSys SDK from local repository. Maven build of SDK must generate a jar and place it into the repository to update -->

+

+

+		<!-- Add BaSys SDK from local repository. Maven build of SDK must generate 

+			a jar and place it into the repository to update -->

 		<dependency>

 			<groupId>basys.sdk</groupId>

 			<artifactId>basys.sdk</artifactId>

 			<version>0.0.1-SNAPSHOT</version>

 		</dependency>

-		

-		<!-- Add BaSys components from local repository. Maven build of SDK must generate a jar and place it into the repository to update -->

+

+		<!-- Add BaSys components from local repository. Maven build of SDK must 

+			generate a jar and place it into the repository to update -->

 		<dependency>

 			<groupId>basys.components</groupId>

 			<artifactId>basys.components</artifactId>

 			<version>0.0.1-SNAPSHOT</version>

 		</dependency>

-

-  </dependencies>

+	</dependencies>

 </project>
\ No newline at end of file
diff --git a/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/_remote.repositories b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/_remote.repositories
new file mode 100644
index 0000000..f72247f
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/_remote.repositories
@@ -0,0 +1,5 @@
+#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
+#Thu Jul 18 09:15:58 CEST 2019
+basys.components-0.0.1-SNAPSHOT.jar>=
+basys.components-0.0.1-SNAPSHOT.pom>=
+basys.components-0.0.1-SNAPSHOT-sources.jar>=
diff --git a/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT-sources.jar b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT-sources.jar
new file mode 100644
index 0000000..893801d
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT-sources.jar
Binary files differ
diff --git a/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.jar b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000..0be50ee
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.jar
Binary files differ
diff --git a/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.pom b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.pom
new file mode 100644
index 0000000..f689340
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/basys.components-0.0.1-SNAPSHOT.pom
@@ -0,0 +1,382 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>basys.components</groupId>
+	<artifactId>basys.components</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<name>BaSys Components</name>
+
+	<repositories>
+		<repository>
+			<id>data-local</id>
+			<name>data</name>
+			<url>file://${project.basedir}/repo</url>
+		</repository>
+	</repositories>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+
+		<testSourceDirectory>
+    		${project.basedir}/regression/org/eclipse/basyx/regression
+    	</testSourceDirectory>
+
+		<plugins>
+			<!-- Add sources for servlets and regression-support to sourceDirectory -->
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>3.0.0</version>
+				<executions>
+					<execution>
+						<id>attachServlets</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>add-source</goal>
+						</goals>
+						<configuration>
+							<sources>
+								<source>servlets</source>
+							</sources>
+						</configuration>
+					</execution>
+					<execution>
+						<id>attachSupport</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>add-source</goal>
+						</goals>
+						<configuration>
+							<sources>
+								<source>regression/org/eclipse/basyx/regression/support</source>
+							</sources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.7.0</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<artifactId>maven-war-plugin</artifactId>
+				<version>3.0.0</version>
+				<!-- <configuration> <warSourceDirectory>WebContent</warSourceDirectory> 
+					</configuration> -->
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<!-- <version>2.12.1</version> -->
+				<version>2.4.2</version>
+				<configuration>
+					<excludes>
+						<exclude>**/*HTTP*</exclude>
+						<exclude>**/*TCP*</exclude>
+					</excludes>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-failsafe-plugin</artifactId>
+				<version>2.12.4</version>
+				<configuration>
+					<includes>
+						<include>**/*HTTP*</include>
+						<include>**/*TCP*</include>
+					</includes>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>integration-test</goal>
+							<goal>verify</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- Attach sources to jar file -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>3.1.0</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- Install jar file to /components and /examples package -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-install-plugin</artifactId>
+				<version>3.0.0-M1</version>
+				<configuration>
+					<artifactId>basys.components</artifactId>
+					<groupId>basys</groupId>
+					<version>0.0.1-SNAPSHOT</version>
+					<packaging>jar</packaging>
+				</configuration>
+				<executions>
+					<execution>
+						<id>installExamples</id>
+						<goals>
+							<goal>install-file</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<file>target/basys.components-0.0.1-SNAPSHOT.jar</file>
+							<localRepositoryPath>../../examples/basys.examples/repo/</localRepositoryPath>
+						</configuration>
+					</execution>
+					<execution>
+						<id>installExamplesSources</id>
+						<goals>
+							<goal>install-file</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<file>target/basys.components-0.0.1-SNAPSHOT-sources.jar</file>
+							<classifier>sources</classifier>
+							<localRepositoryPath>../../examples/basys.examples/repo/</localRepositoryPath>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
+		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina 
+			(Tomcat 8, not 9) -->
+		<dependency>
+			<groupId>org.apache.tomcat</groupId>
+			<artifactId>tomcat-catalina</artifactId>
+			<version>8.0.32</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
+		<dependency>
+			<groupId>javax.ws.rs</groupId>
+			<artifactId>javax.ws.rs-api</artifactId>
+			<version>2.1</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->
+		<dependency>
+			<groupId>org.glassfish.jersey.core</groupId>
+			<artifactId>jersey-client</artifactId>
+			<version>2.26-b03</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
+		<dependency>
+			<groupId>org.json</groupId>
+			<artifactId>json</artifactId>
+			<version>20180813</version>
+			<!-- <scope>provided</scope> -->
+		</dependency>
+		<!-- Dependencies removed from Classpath -->
+		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
+		<dependency>
+			<groupId>org.postgresql</groupId>
+			<artifactId>postgresql</artifactId>
+			<version>42.2.2</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2.external/aopalliance-repackaged -->
+		<dependency>
+			<groupId>org.glassfish.hk2.external</groupId>
+			<artifactId>aopalliance-repackaged</artifactId>
+			<version>2.5.0-b42</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->
+		<dependency>
+			<groupId>javax.enterprise</groupId>
+			<artifactId>cdi-api</artifactId>
+			<version>2.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.el/el-api -->
+		<dependency>
+			<groupId>javax.el</groupId>
+			<artifactId>el-api</artifactId>
+			<version>2.2</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/hk2-api -->
+		<dependency>
+			<groupId>org.glassfish.hk2</groupId>
+			<artifactId>hk2-api</artifactId>
+			<version>2.5.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javassist/javassist -->
+		<dependency>
+			<groupId>javassist</groupId>
+			<artifactId>javassist</artifactId>
+			<version>3.12.1.GA</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
+		<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
+		<dependency>
+			<groupId>javax.inject</groupId>
+			<artifactId>javax.inject</artifactId>
+			<version>1</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.json/javax.json-api -->
+		<dependency>
+			<groupId>javax.json</groupId>
+			<artifactId>javax.json-api</artifactId>
+			<version>1.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
+		<dependency>
+			<groupId>javax.xml.bind</groupId>
+			<artifactId>jaxb-api</artifactId>
+			<version>2.3.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.interceptor/jboss-interceptors-api_1.1_spec -->
+		<dependency>
+			<groupId>org.jboss.spec.javax.interceptor</groupId>
+			<artifactId>jboss-interceptors-api_1.1_spec</artifactId>
+			<version>1.0.1.Final</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
+		<dependency>
+			<groupId>javax.annotation</groupId>
+			<artifactId>javax.annotation-api</artifactId>
+			<version>1.3.2</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.osgi/org.osgi.core -->
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.core</artifactId>
+			<version>4.2.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.glassfish.hk2/osgi-resource-locator -->
+		<dependency>
+			<groupId>org.glassfish.hk2</groupId>
+			<artifactId>osgi-resource-locator</artifactId>
+			<version>1.0.1</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
+		<dependency>
+			<groupId>javax.persistence</groupId>
+			<artifactId>persistence-api</artifactId>
+			<version>1.0.2</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
+		<dependency>
+			<groupId>javax.validation</groupId>
+			<artifactId>validation-api</artifactId>
+			<version>2.0.1.Final</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.1.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/org.eclipse/yasson -->
+		<dependency>
+			<groupId>org.eclipse</groupId>
+			<artifactId>yasson</artifactId>
+			<version>1.0.2</version>
+		</dependency>
+<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->
+		<dependency>
+		    <groupId>org.activiti</groupId>
+		    <artifactId>activiti-engine</artifactId>
+		    <version>6.0.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-model -->
+		<dependency>
+		    <groupId>org.activiti</groupId>
+		    <artifactId>activiti-bpmn-model</artifactId>
+		    <version>6.0.0</version>
+		</dependency>
+		
+		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-layout -->
+		<dependency>
+		    <groupId>org.activiti</groupId>
+		    <artifactId>activiti-bpmn-layout</artifactId>
+		    <version>6.0.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
+		<dependency>
+		    <groupId>commons-io</groupId>
+		    <artifactId>commons-io</artifactId>
+		    <version>2.4</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
+		<dependency>
+		    <groupId>com.h2database</groupId>
+		    <artifactId>h2</artifactId>
+		    <version>1.4.197</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+			<version>1.7.5</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from 
+			local repository because jar cannot be found on maven central -->
+		<dependency>
+			<groupId>javax.xml.xquery</groupId>
+			<artifactId>xqj-api</artifactId>
+			<version>1.0</version>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->
+		<!-- <dependency> <groupId>net.sf.saxon</groupId> <artifactId>saxon-xqj</artifactId> 
+			<version>9.x</version> </dependency> -->
+
+		<!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->
+		<dependency>
+			<groupId>net.sf.saxon</groupId>
+			<artifactId>saxon-xqj</artifactId>
+			<version>8.9</version>
+		</dependency>
+
+
+		<!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->
+		<dependency>
+			<groupId>net.sf.saxon</groupId>
+			<artifactId>Saxon-HE</artifactId>
+			<version>9.5.1-5</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.google.code.gson</groupId>
+			<artifactId>gson</artifactId>
+			<version>2.8.5</version>
+		</dependency>
+
+		<dependency>
+			<groupId>basys</groupId>
+			<artifactId>basys.sdk</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git a/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/maven-metadata-local.xml b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/maven-metadata-local.xml
new file mode 100644
index 0000000..b6e5ff2
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/0.0.1-SNAPSHOT/maven-metadata-local.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+  <groupId>basys</groupId>
+  <artifactId>basys.components</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <localCopy>true</localCopy>
+    </snapshot>
+    <lastUpdated>20190718071558</lastUpdated>
+    <snapshotVersions>
+      <snapshotVersion>
+        <classifier>sources</classifier>
+        <extension>jar</extension>
+        <value>0.0.1-SNAPSHOT</value>
+        <updated>20190718071558</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>pom</extension>
+        <value>0.0.1-SNAPSHOT</value>
+        <updated>20190718071558</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>jar</extension>
+        <value>0.0.1-SNAPSHOT</value>
+        <updated>20190718071558</updated>
+      </snapshotVersion>
+    </snapshotVersions>
+  </versioning>
+</metadata>
diff --git a/examples/basys.examples/repo/basys/basys.components/maven-metadata-local.xml b/examples/basys.examples/repo/basys/basys.components/maven-metadata-local.xml
new file mode 100644
index 0000000..da19064
--- /dev/null
+++ b/examples/basys.examples/repo/basys/basys.components/maven-metadata-local.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>basys</groupId>
+  <artifactId>basys.components</artifactId>
+  <versioning>
+    <versions>
+      <version>0.0.1-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20190718071558</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/sdks/java/basys.sdk/build/classes/org/json/LICENSE b/sdks/java/basys.sdk/build/classes/org/json/LICENSE
new file mode 100644
index 0000000..02ee0ef
--- /dev/null
+++ b/sdks/java/basys.sdk/build/classes/org/json/LICENSE
@@ -0,0 +1,23 @@
+============================================================================
+
+Copyright (c) 2002 JSON.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The Software shall be used for Good, not Evil.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/sdks/java/basys.sdk/build/classes/org/json/README b/sdks/java/basys.sdk/build/classes/org/json/README
new file mode 100644
index 0000000..9783046
--- /dev/null
+++ b/sdks/java/basys.sdk/build/classes/org/json/README
@@ -0,0 +1,114 @@
+JSON in Java [package org.json]
+
+JSON is a light-weight, language independent, data interchange format.
+See http://www.JSON.org/
+
+The files in this package implement JSON encoders/decoders in Java.
+It also includes the capability to convert between JSON and XML, HTTP
+headers, Cookies, and CDL.
+
+This is a reference implementation. There is a large number of JSON packages
+in Java. Perhaps someday the Java community will standardize on one. Until
+then, choose carefully.
+
+The license includes this restriction: "The software shall be used for good,
+not evil." If your conscience cannot live with that, then choose a different
+package.
+
+The package compiles on Java 1.6-1.8.
+
+
+JSONObject.java: The JSONObject can parse text from a String or a JSONTokener
+to produce a map-like object. The object provides methods for manipulating its
+contents, and for producing a JSON compliant object serialization.
+
+JSONArray.java: The JSONArray can parse text from a String or a JSONTokener
+to produce a vector-like object. The object provides methods for manipulating
+its contents, and for producing a JSON compliant array serialization.
+
+JSONTokener.java: The JSONTokener breaks a text into a sequence of individual
+tokens. It can be constructed from a String, Reader, or InputStream.
+
+JSONException.java: The JSONException is the standard exception type thrown
+by this package.
+
+JSONPointer.java: Implementation of 
+[JSON Pointer (RFC 6901)](https://tools.ietf.org/html/rfc6901). Supports
+JSON Pointers both in the form of string representation and URI fragment
+representation.
+
+JSONString.java: The JSONString interface requires a toJSONString method,
+allowing an object to provide its own serialization.
+
+JSONStringer.java: The JSONStringer provides a convenient facility for
+building JSON strings.
+
+JSONWriter.java: The JSONWriter provides a convenient facility for building
+JSON text through a writer.
+
+
+CDL.java: CDL provides support for converting between JSON and comma
+delimited lists.
+
+Cookie.java: Cookie provides support for converting between JSON and cookies.
+
+CookieList.java: CookieList provides support for converting between JSON and
+cookie lists.
+
+HTTP.java: HTTP provides support for converting between JSON and HTTP headers.
+
+HTTPTokener.java: HTTPTokener extends JSONTokener for parsing HTTP headers.
+
+XML.java: XML provides support for converting between JSON and XML.
+
+JSONML.java: JSONML provides support for converting between JSONML and XML.
+
+XMLTokener.java: XMLTokener extends JSONTokener for parsing XML text.
+
+Unit tests are maintained in a separate project. Contributing developers can test 
+JSON-java pull requests with the code in this project: 
+https://github.com/stleary/JSON-Java-unit-test
+
+Numeric types in this package comply with ECMA-404: The JSON Data Interchange Format 
+(http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf) and 
+RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format 
+(https://tools.ietf.org/html/rfc7159#section-6). 
+This package fully supports Integer, Long, and Double Java types. Partial support 
+for BigInteger and BigDecimal values in JSONObject and JSONArray objects is provided 
+in the form of get(), opt(), and put() API methods.
+
+Although 1.6 compatibility is currently supported, it is not a project goal and may be
+removed in some future release.
+
+In compliance with RFC7159 page 10 section 9, the parser is more lax with what is valid
+JSON than the Generator. For Example, the tab character (U+0009) is allowed when reading
+JSON Text strings, but when output by the Generator, tab is properly converted to \t in
+the string. Other instances may occur where reading invalid JSON text does not cause an
+error to be generated. Malformed JSON Texts such as missing end " (quote) on strings or
+invalid number formats (1.2e6.3) will cause errors as such documents can not be read
+ reliably.
+
+Release history:
+20171018    Checkpoint for recent commits.
+
+20170516    Roll up recent commits.
+
+20160810    Revert code that was breaking opt*() methods.
+
+20160807    This release contains a bug in the JSONObject.opt*() and JSONArray.opt*() methods, 
+it is not recommended for use.
+Java 1.6 compatability fixed, JSONArray.toList() and JSONObject.toMap(),
+RFC4180 compatibility, JSONPointer, some exception fixes, optional XML type conversion. 
+Contains the latest code as of 7 Aug, 2016
+
+20160212    Java 1.6 compatibility, OSGi bundle. Contains the latest code as of 12 Feb, 2016.
+
+20151123    JSONObject and JSONArray initialization with generics. Contains the
+latest code as of 23 Nov, 2015.
+
+20150729    Checkpoint for Maven central repository release. Contains the latest code 
+as of 29 July, 2015. 
+
+JSON-java releases can be found by searching the Maven repository for groupId "org.json" 
+and artifactId "json". For example: 
+https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.json%22%20AND%20a%3A%22json%22
diff --git a/sdks/java/basys.sdk/pom.xml b/sdks/java/basys.sdk/pom.xml
index f1e2eba..4b652db 100644
--- a/sdks/java/basys.sdk/pom.xml
+++ b/sdks/java/basys.sdk/pom.xml
@@ -1,140 +1,223 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

-  <modelVersion>4.0.0</modelVersion>

-  <groupId>basys.sdk</groupId>

-  <artifactId>basys.sdk</artifactId>

-  <version>0.0.1-SNAPSHOT</version>

-  <packaging>jar</packaging>

-  <name>BaSyx SDK</name>

-  

-  <build>

-    <sourceDirectory>src</sourceDirectory>

-    <resources>

-      <resource>

-       <directory>src</directory>

-        <excludes>

-          <exclude>**/*.java</exclude>

-        </excludes>

-      </resource>

-    </resources>

-    

-    <testSourceDirectory>

-    	regression

-    </testSourceDirectory>

-    

- 

-   <!-- Compile Sources -->

-    <plugins>

-      <plugin>

-        <artifactId>maven-compiler-plugin</artifactId>

-        <version>3.7.0</version>

-        <configuration>

-          <source>1.8</source>

-          <target>1.8</target>

-        </configuration>

-      </plugin>

-      

-      

-      

-     <!-- Run Unit Tests -->

-      <plugin>

-         <groupId>org.apache.maven.plugins</groupId>

-         <artifactId>maven-surefire-plugin</artifactId>

-         <version>2.12.1</version>

-         <configuration>

-    		<excludes>

-      			<exclude>**/*HTTP*</exclude>

-      			<exclude>**/*TCP*</exclude>

-    		</excludes>

-  		 </configuration>

-     </plugin>

-	 

-	 <!-- Run Integration Tests -->

-	    <plugin>

-		  <groupId>org.apache.maven.plugins</groupId>

-		  <artifactId>maven-failsafe-plugin</artifactId>

-		  <version>2.12.4</version>

-		  <configuration>

-		    <includes>

-		      <include>**/*HTTP*</include>

-		      <include>**/*TCP*</include>

-		    </includes>

-		  </configuration>

-		  <executions>

-		    <execution>

-		      <goals>

-		        <goal>integration-test</goal>

-		        <goal>verify</goal>

-		      </goals>

-		    </execution>

-		  </executions>

-		</plugin>   

-		

-    </plugins>

-   

-  </build>

-  <dependencies>

-  	<dependency>

-    	<groupId>junit</groupId>

-    	<artifactId>junit</artifactId>

-   		<version>4.12</version>

-	</dependency>

-	<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

-	

-	<dependency>

-	    <groupId>com.google.code.gson</groupId>

-	    <artifactId>gson</artifactId>

-	    <version>2.8.5</version>

-	</dependency>

-	<dependency>

-	    <groupId>org.junit.jupiter</groupId>

-	    <artifactId>junit-jupiter-api</artifactId>

-	    <version>5.3.1</version>

-	</dependency>

-	<dependency>

-        <groupId>org.apache.derby</groupId>

-        <artifactId>derby</artifactId>

-        <version>10.14.2.0</version>

-      </dependency>

-      <dependency>

-        <groupId>javax.mail</groupId>

-        <artifactId>mail</artifactId>

-        <version>1.4</version>

-      </dependency>

-      <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

-	  <dependency>

-	    <groupId>javax.ws.rs</groupId>

-	    <artifactId>javax.ws.rs-api</artifactId>

-	    <version>2.1</version>

-	  </dependency>

-	  <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

-	<dependency>

-	    <groupId>org.glassfish.jersey.core</groupId>

-	    <artifactId>jersey-client</artifactId>

-	    <version>2.26-b03</version>

-	</dependency>

-	<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->

-	<dependency>

-    	<groupId>javax.servlet</groupId>

-    	<artifactId>javax.servlet-api</artifactId>

-    	<version>4.0.1</version>

-    	<scope>provided</scope>

-	</dependency>

-	<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina (Tomcat 8, not 9) -->

-	<dependency>

-	    <groupId>org.apache.tomcat</groupId>

-	    <artifactId>tomcat-catalina</artifactId>

-	    <version>8.0.32</version>

-	    

-	</dependency>	

-	<dependency>

-    	<groupId>org.eclipse.milo</groupId>

-    	<artifactId>sdk-client</artifactId>

-    	<version>0.3.1</version>

-	</dependency>

-	<dependency>

-    	<groupId>org.eclipse.milo</groupId>

-    	<artifactId>sdk-server</artifactId>

-    	<version>0.3.1</version>

-	</dependency>

- </dependencies>

+<project xmlns="http://maven.apache.org/POM/4.0.0"

+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+	<modelVersion>4.0.0</modelVersion>

+	<groupId>basys.sdk</groupId>

+	<artifactId>basys.sdk</artifactId>

+	<version>0.0.1-SNAPSHOT</version>

+	<packaging>jar</packaging>

+	<name>BaSyx SDK</name>

+

+

+	<build>

+		<sourceDirectory>src</sourceDirectory>

+

+		<testSourceDirectory>

+    		regression

+    	</testSourceDirectory>

+

+		<plugins>

+			<!-- Add sources for regression-support to sourceDirectory -->

+			<plugin>

+				<groupId>org.codehaus.mojo</groupId>

+				<artifactId>build-helper-maven-plugin</artifactId>

+				<version>3.0.0</version>

+				<executions>

+					<execution>

+						<id>attachSupport</id>

+						<phase>generate-sources</phase>

+						<goals>

+							<goal>add-source</goal>

+						</goals>

+						<configuration>

+							<sources>

+								<source>regression/org/eclipse/basyx/testsuite/support</source>

+							</sources>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+

+			<!-- Compile Sources with Java 8 -->

+			<plugin>

+				<artifactId>maven-compiler-plugin</artifactId>

+				<version>3.7.0</version>

+				<configuration>

+					<source>1.8</source>

+					<target>1.8</target>

+				</configuration>

+			</plugin>

+

+			<!-- Run Unit Tests -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-surefire-plugin</artifactId>

+				<version>2.12.1</version>

+			</plugin>

+

+			<!-- Run Integration Tests -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-failsafe-plugin</artifactId>

+				<version>2.12.4</version>

+				<configuration>

+					<includes>

+						<include>**/*HTTP*</include>

+						<include>**/*TCP*</include>

+					</includes>

+				</configuration>

+				<executions>

+					<execution>

+						<goals>

+							<goal>integration-test</goal>

+							<goal>verify</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+

+			<!-- Attach sources to jar file -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-source-plugin</artifactId>

+				<version>3.1.0</version>

+				<executions>

+					<execution>

+						<id>attach-sources</id>

+						<goals>

+							<goal>jar</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+

+			<!-- Install jar file to /components and /examples package -->

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-install-plugin</artifactId>

+				<version>3.0.0-M1</version>

+				<configuration>

+					<artifactId>basys.sdk</artifactId>

+					<groupId>basys</groupId>

+					<version>0.0.1-SNAPSHOT</version>

+					<packaging>jar</packaging>

+				</configuration>

+				<executions>

+					<execution>

+						<id>installComponents</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.sdk-0.0.1-SNAPSHOT.jar</file>

+							<localRepositoryPath>../../../components/basys.components/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+					<execution>

+						<id>installComponentsSources</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.sdk-0.0.1-SNAPSHOT-sources.jar</file>

+							<classifier>sources</classifier>

+							<localRepositoryPath>../../../components/basys.components/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+					<execution>

+						<id>installExamples</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.sdk-0.0.1-SNAPSHOT.jar</file>

+							<localRepositoryPath>../../../examples/basys.examples/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+					<execution>

+						<id>installExamplesSources</id>

+						<goals>

+							<goal>install-file</goal>

+						</goals>

+						<phase>install</phase>

+						<configuration>

+							<file>target/basys.sdk-0.0.1-SNAPSHOT-sources.jar</file>

+							<classifier>sources</classifier>

+							<localRepositoryPath>../../../examples/basys.examples/repo/</localRepositoryPath>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+

+		</plugins>

+	</build>

+

+

+	<dependencies>

+		<dependency>

+			<groupId>junit</groupId>

+			<artifactId>junit</artifactId>

+			<version>4.12</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

+		<dependency>

+			<groupId>com.google.code.gson</groupId>

+			<artifactId>gson</artifactId>

+			<version>2.8.5</version>

+		</dependency>

+		<dependency>

+			<groupId>org.junit.jupiter</groupId>

+			<artifactId>junit-jupiter-api</artifactId>

+			<version>5.3.1</version>

+		</dependency>

+		<dependency>

+			<groupId>org.apache.derby</groupId>

+			<artifactId>derby</artifactId>

+			<version>10.14.2.0</version>

+		</dependency>

+		<dependency>

+			<groupId>javax.mail</groupId>

+			<artifactId>mail</artifactId>

+			<version>1.4</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->

+		<dependency>

+			<groupId>javax.ws.rs</groupId>

+			<artifactId>javax.ws.rs-api</artifactId>

+			<version>2.1</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->

+		<dependency>

+			<groupId>org.glassfish.jersey.core</groupId>

+			<artifactId>jersey-client</artifactId>

+			<version>2.26-b03</version>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->

+		<dependency>

+			<groupId>javax.servlet</groupId>

+			<artifactId>javax.servlet-api</artifactId>

+			<version>4.0.1</version>

+			<scope>provided</scope>

+		</dependency>

+		<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina 

+			(Tomcat 8, not 9) -->

+		<dependency>

+			<groupId>org.apache.tomcat</groupId>

+			<artifactId>tomcat-catalina</artifactId>

+			<version>8.0.32</version>

+		</dependency>

+		<dependency>

+			<groupId>org.eclipse.milo</groupId>

+			<artifactId>sdk-client</artifactId>

+			<version>0.3.1</version>

+		</dependency>

+		<dependency>

+			<groupId>org.eclipse.milo</groupId>

+			<artifactId>sdk-server</artifactId>

+			<version>0.3.1</version>

+		</dependency>

+	</dependencies>

 </project>
\ No newline at end of file