diff --git a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
index 87f9c0c..e6e7325 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
@@ -49,7 +49,6 @@
 import javax.ws.rs.core.MediaType;
 import javax.xml.transform.TransformerException;
 
-import org.camunda.bpm.engine.RuntimeService;
 import org.onap.clamp.clds.dao.CldsDao;
 import org.onap.clamp.clds.model.CldsTemplate;
 import org.onap.clamp.clds.model.ValueItem;
@@ -90,8 +89,7 @@
 
     @Autowired
     private CldsDao        cldsDao;
-    @Autowired
-    private RuntimeService runtimeService;
+
     @Autowired
     private XslTransformer cldsBpmnTransformer;
 
diff --git a/src/test/java/org/onap/clamp/clds/it/CldsDaoIT.java b/src/test/java/org/onap/clamp/clds/it/CldsDaoIT.java
new file mode 100644
index 0000000..bd41964
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/CldsDaoIT.java
@@ -0,0 +1,149 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ *                             reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import javax.ws.rs.NotFoundException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.dao.CldsDao;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.CldsModel;
+import org.onap.clamp.clds.model.CldsTemplate;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Test CldsDAO calls through CldsModel and CldsEvent. This really test the DB
+ * and stored procedures.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
+public class CldsDaoIT extends AbstractIT {
+
+    @Autowired
+    public CldsDao cldsDao;
+
+    private String bpmnText;
+    private String imageText;
+    private String bpmnPropText;
+
+    @Before
+    public void setupBefore() throws IOException {
+        bpmnText = ResourceFileUtil.getResourceAsString("example/dao/bpmn-template.xml");
+        imageText = ResourceFileUtil.getResourceAsString("example/dao/image-template.xml");
+        bpmnPropText = ResourceFileUtil.getResourceAsString("example/dao/bpmn-prop.json");
+    }
+
+    @Test
+    public void testModelSave() throws IOException {
+        // Add the template first
+        CldsTemplate newTemplate = new CldsTemplate();
+        newTemplate.setName("test-template");
+
+        newTemplate.setBpmnText(bpmnText);
+        newTemplate.setImageText(imageText);
+
+        // Save the template in DB
+        cldsDao.setTemplate(newTemplate, "user");
+        // Test if it's well there
+        CldsTemplate newTemplateRead = cldsDao.getTemplate("test-template");
+        assertEquals(bpmnText, newTemplateRead.getBpmnText());
+        assertEquals(imageText, newTemplateRead.getImageText());
+
+        // Save the model
+        CldsModel newModel = new CldsModel();
+        newModel.setName("test-model");
+
+        newModel.setBpmnText(bpmnText);
+        newModel.setImageText(imageText);
+        newModel.setPropText(bpmnPropText);
+        newModel.setControlNamePrefix("ClosedLoop-");
+        newModel.setTemplateName("test-template");
+        newModel.setTemplateId(newTemplate.getId());
+        newModel.setDocText(newTemplate.getPropText());
+        newModel.setDocId(newTemplate.getPropId());
+        // Save the model in DB
+        cldsDao.setModel(newModel, "user");
+        // Test if the model can be retrieved
+        CldsModel newCldsModel = cldsDao.getModelTemplate("test-model");
+        assertEquals(bpmnText, newCldsModel.getBpmnText());
+        assertEquals(imageText, newCldsModel.getImageText());
+        assertEquals(bpmnPropText, newCldsModel.getPropText());
+
+    }
+
+    @Test(expected = NotFoundException.class)
+    public void testGetModelNotFound() {
+        CldsModel.retrieve(cldsDao, "test-model-not-found", false);
+    }
+
+    @Test(expected = NotFoundException.class)
+    public void testGetTemplateNotFound() {
+        CldsTemplate.retrieve(cldsDao, "test-template-not-found", false);
+    }
+
+    @Test
+    public void testInsEvent() {
+        // Add the template first
+        CldsTemplate newTemplate = new CldsTemplate();
+        newTemplate.setName("test-template-for-event");
+
+        newTemplate.setBpmnText(bpmnText);
+        newTemplate.setImageText(imageText);
+
+        newTemplate.save(cldsDao, "user");
+
+        // Test if it's well there
+        CldsTemplate newTemplateRead = CldsTemplate.retrieve(cldsDao, "test-template-for-event", false);
+        assertEquals(bpmnText, newTemplateRead.getBpmnText());
+        assertEquals(imageText, newTemplateRead.getImageText());
+
+        // Save the model
+        CldsModel newModel = new CldsModel();
+        newModel.setName("test-model-for-event");
+
+        newModel.setBpmnText(bpmnText);
+        newModel.setImageText(imageText);
+        newModel.setPropText(bpmnPropText);
+        newModel.setControlNamePrefix("ClosedLoop-");
+        newModel.setTemplateName("test-template-for-event");
+        newModel.setTemplateId(newTemplate.getId());
+        newModel.setDocText(newTemplate.getPropText());
+        newModel.setDocId(newTemplate.getPropId());
+
+        CldsEvent.insEvent(cldsDao, newModel, "user", CldsEvent.ACTION_RESTART, CldsEvent.ACTION_STATE_COMPLETED,
+                "process-instance-id");
+    }
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeIT.java b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
index fc13270..4f0ebb4 100644
--- a/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
@@ -25,7 +25,6 @@
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
 import org.onap.clamp.clds.AbstractIT;
 import org.onap.clamp.clds.client.req.DcaeReq;
 import org.onap.clamp.clds.model.CldsEvent;
@@ -33,13 +32,16 @@
 import org.onap.clamp.clds.util.ResourceFileUtil;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
- * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
+ * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE
+ * Delegates in test.
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class DcaeIT extends AbstractIT {
 
     @Test
@@ -49,8 +51,8 @@
         String modelName = "example-model";
         String controlName = "ClosedLoop-FRWL-SIG-1582f840-2881-11e6-b4ec-005056a9d756";
 
-        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT,
-                true, modelBpmnProp, modelProp);
+        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp,
+                modelProp);
         String dcaeReq = DcaeReq.format(refProp, prop);
 
         System.out.println("dcaeReq=" + dcaeReq);
diff --git a/src/test/java/org/onap/clamp/clds/it/HttpsIT.java b/src/test/java/org/onap/clamp/clds/it/HttpsIT.java
index ff63033..98319b4 100644
--- a/src/test/java/org/onap/clamp/clds/it/HttpsIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/HttpsIT.java
@@ -50,8 +50,7 @@
 import org.springframework.web.client.RestTemplate;
 
 /**
- * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE
- * Delegates in test.
+ * Test HTTP and HTTPS settings + redirection of HTTP to HTTPS.
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
index 69df972..09f1efe 100644
--- a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
@@ -48,6 +48,7 @@
 import org.skyscreamer.jsonassert.JSONAssert;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -56,6 +57,7 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class PolicyClientIT extends AbstractIT {
     String modelProp;
     String modelBpmnProp;
diff --git a/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
index c3b35ee..525f9cb 100644
--- a/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
@@ -39,6 +39,7 @@
 import org.onap.clamp.clds.model.CldsSdcServiceDetail;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -49,9 +50,10 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class PropJsonBuilderIT extends AbstractIT {
 
-    private String globalPropsPartial;
+    private String       globalPropsPartial;
     private ObjectMapper mapper;
 
     /**
@@ -86,8 +88,8 @@
     private void sampleJsonObject() throws JsonProcessingException {
 
         /**
-         * Create three JSON Objects objectNode1, objectNode2, objectNode3.
-         * Add all these three objects in the array
+         * Create three JSON Objects objectNode1, objectNode2, objectNode3. Add
+         * all these three objects in the array
          */
         ObjectNode objectNode1 = mapper.createObjectNode();
         objectNode1.put("bookName", "Java");
@@ -124,9 +126,8 @@
     private String createEmptySharedObject() throws JsonProcessingException {
 
         /**
-         * Empty Object initialization.
-         * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
-         * "": "" } }
+         * Empty Object initialization. "": { "vf": { "": "" }, "location": {
+         * "": "" }, "alarmCondition": { "": "" } }
          */
         ObjectNode emptyObjectNode = mapper.createObjectNode();
         emptyObjectNode.put("", "");
@@ -144,8 +145,8 @@
         emptyServiceObjectNode.putPOJO("", samArrayNode);
 
         /**
-         * Object initialization.
-         * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
+         * Object initialization. "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1":
+         * "DCAE_CLAMP_DEMO3" }
          *
          */
         ObjectNode dcaeClampDemo3Node = mapper.createObjectNode();
@@ -157,9 +158,8 @@
         vfObjectNode2.putPOJO("vf", vfArrayNode);
 
         /**
-         * Object initialization.
-         * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
-         * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
+         * Object initialization. "location": { "SNDGCA64": "San Diego SAN3",
+         * "ALPRGAED": "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
          */
         ObjectNode sandiegoLocationNode = mapper.createObjectNode();
         sandiegoLocationNode.put("SNDGCA64", "San Diego SAN3");
@@ -173,10 +173,10 @@
         locationObjectNode2.putPOJO("location", locationArrayNode);
 
         /**
-         * Object initialization.
-         * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
-         * "A Fallback Operation will soon be started",
-         * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+         * Object initialization. "alarmCondition": {
+         * "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation
+         * will soon be started", "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto
+         * Export Backup Failed",
          */
         ObjectNode alamrCondition1 = mapper.createObjectNode();
         alamrCondition1.put("A+Fallback+Operation+will+soon+be+started", "A Fallback Operation will soon be started");
@@ -206,8 +206,7 @@
         byServiceBasicObjetNode.putPOJO("byService", byServiceBasicArrayNode);
 
         /**
-         * Object initialization.
-         * "byVf": { "": { "vfc": { "": "" },
+         * Object initialization. "byVf": { "": { "vfc": { "": "" },
          * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
          */
         ObjectNode vfCObjectNode = mapper.createObjectNode();
@@ -240,9 +239,8 @@
     private String createTestEmptySharedObject() throws IOException {
 
         /**
-         * Object initialization.
-         * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
-         * "": "" } }
+         * Object initialization. "": { "vf": { "": "" }, "location": { "": ""
+         * }, "alarmCondition": { "": "" } }
          */
         ObjectNode emptyObjectNode = mapper.createObjectNode();
         emptyObjectNode.put("", "");
@@ -254,8 +252,8 @@
         emptyServiceObjectNode.putPOJO("", vfObjectNode);
 
         /**
-         * Object initialization.
-         * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
+         * Object initialization. "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1":
+         * "DCAE_CLAMP_DEMO3" }
          *
          */
         ObjectNode vfObjectNode2 = mapper.createObjectNode();
@@ -265,9 +263,8 @@
         vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
 
         /**
-         * Object initialization.
-         * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
-         * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
+         * Object initialization. "location": { "SNDGCA64": "San Diego SAN3",
+         * "ALPRGAED": "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
          */
         // ObjectNode sandiegoLocationNode = mapper.createObjectNode();
         // sandiegoLocationNode.put("SNDGCA64","San Diego SAN3");
@@ -277,10 +274,10 @@
         vfObjectNode2.putPOJO("location", locationJsonNode);
 
         /**
-         * Object initialization.
-         * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
-         * "A Fallback Operation will soon be started",
-         * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+         * Object initialization. "alarmCondition": {
+         * "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation
+         * will soon be started", "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto
+         * Export Backup Failed",
          */
         // ObjectNode alamrCondition1 = mapper.createObjectNode();
         // alamrCondition1.put("A+Fallback+Operation+will+soon+be+started","A
@@ -295,8 +292,7 @@
         byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
 
         /**
-         * Object initialization.
-         * "byVf": { "": { "vfc": { "": "" },
+         * Object initialization. "byVf": { "": { "vfc": { "": "" },
          * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
          */
         ObjectNode vfCObjectNode = mapper.createObjectNode();
@@ -316,9 +312,8 @@
 
     private String createCldsSharedObject(CldsSdcServiceDetail CldsSdcServiceDetail) throws IOException {
         /**
-         * Object initialization.
-         * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
-         * "": "" } }
+         * Object initialization. "": { "vf": { "": "" }, "location": { "": ""
+         * }, "alarmCondition": { "": "" } }
          */
         ObjectNode emptyObjectNode = mapper.createObjectNode();
         emptyObjectNode.put("", "");
@@ -330,8 +325,8 @@
         emptyServiceObjectNode.putPOJO("", vfObjectNode);
 
         /**
-         * Object initialization.
-         * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
+         * Object initialization. "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1":
+         * "DCAE_CLAMP_DEMO3" }
          *
          */
         ObjectNode vfObjectNode2 = mapper.createObjectNode();
@@ -341,9 +336,8 @@
         vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
 
         /**
-         * Object initialization.
-         * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
-         * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
+         * Object initialization. "location": { "SNDGCA64": "San Diego SAN3",
+         * "ALPRGAED": "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
          */
         ObjectNode sandiegoLocationNode = mapper.createObjectNode();
         sandiegoLocationNode.put("SNDGCA64", "San Diego SAN3");
@@ -351,10 +345,10 @@
         vfObjectNode2.putPOJO("location", sandiegoLocationNode);
 
         /**
-         * Object initialization.
-         * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
-         * "A Fallback Operation will soon be started",
-         * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+         * Object initialization. "alarmCondition": {
+         * "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation
+         * will soon be started", "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto
+         * Export Backup Failed",
          */
         ObjectNode alamrCondition1 = mapper.createObjectNode();
         alamrCondition1.put("A+Fallback+Operation+will+soon+be+started", "A Fallback Operation will soon be started");
@@ -365,8 +359,7 @@
         byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
 
         /**
-         * Object initialization.
-         * "byVf": { "": { "vfc": { "": "" },
+         * Object initialization. "byVf": { "": { "vfc": { "": "" },
          * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
          */
 
diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropIT.java b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java
index c6a5de2..473ce4a 100644
--- a/src/test/java/org/onap/clamp/clds/it/RefPropIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java
@@ -32,6 +32,7 @@
 import org.junit.runner.RunWith;
 import org.onap.clamp.clds.AbstractIT;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -39,12 +40,14 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class RefPropIT extends AbstractIT {
 
     /**
      * Test getting prop value as a JSON Node / template.
      *
-     * @throws IOException when JSON parsing fails
+     * @throws IOException
+     *             when JSON parsing fails
      */
     @Test
     public void testJsonTemplate() throws IOException {
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java
index 2995b6c..dce6c90 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java
@@ -41,14 +41,15 @@
 import org.onap.clamp.clds.model.CldsServiceData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
- * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE
- * Delegates in test.
+ * Test SDC Catalog Service class by mocking the SDC answers.
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class SdcCatalogServicesIT extends AbstractIT {
     @Autowired
     private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices();
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcIT.java b/src/test/java/org/onap/clamp/clds/it/SdcIT.java
index da9e5af..025420f 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcIT.java
@@ -26,7 +26,6 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
 import org.onap.clamp.clds.AbstractIT;
 import org.onap.clamp.clds.client.SdcCatalogServices;
 import org.onap.clamp.clds.client.req.SdcReq;
@@ -36,16 +35,18 @@
 import org.onap.clamp.clds.util.ResourceFileUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
- * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
+ * Test SDC Blueprint formater.
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class SdcIT extends AbstractIT {
     @Autowired
-    private RefProp refProp;
+    private RefProp            refProp;
 
     @Autowired
     private SdcCatalogServices sdcCatalogServices;
@@ -62,14 +63,13 @@
         String modelName = "example-model06";
         String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
         String docText = ResourceFileUtil.getResourceAsString("example/templateProp.json");
-        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT,
-                true, modelBpmnProp, modelProp);
+        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp,
+                modelProp);
         String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
         System.out.println("blueprint=" + blueprint);
-        //assertEquals(blueprint, "");
+        // assertEquals(blueprint, "");
     }
 
-
     @Test
     public void testTcaBlueprint() throws Exception {
         String modelProp = ResourceFileUtil.getResourceAsString("example/modelPropForPolicy.json");
@@ -77,10 +77,10 @@
         String modelName = "example-model06";
         String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
         String docText = ResourceFileUtil.getResourceAsString("example/templatePropForTca.json");
-        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT,
-                true, modelBpmnProp, modelProp);
+        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp,
+                modelProp);
         String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
         System.out.println("blueprint=" + blueprint);
-        //assertEquals(blueprint, "");
+        // assertEquals(blueprint, "");
     }
 }
diff --git a/src/test/resources/application-no-camunda.properties b/src/test/resources/application-no-camunda.properties
new file mode 100644
index 0000000..dbf0e5b
--- /dev/null
+++ b/src/test/resources/application-no-camunda.properties
@@ -0,0 +1,158 @@
+###
+# ============LICENSE_START=======================================================
+# ONAP CLAMP
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+#                             reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END============================================
+# ===================================================================
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+###
+
+info.build.artifact=@project.artifactId@
+info.build.name=@project.name@
+info.build.description=@project.description@
+info.build.version=@project.version@
+
+### Set the port for HTTP or HTTPS protocol (Controlled by Spring framework, only one at a time).
+### (See below for the parameter 'server.http.port' if you want to have both enabled) 
+### To have only HTTP, keep the lines server.ssl.* commented
+### To have only HTTPS enabled, uncomment the server.ssl.* lines and specify a right keystore location
+server.port=10443
+### Settings for HTTPS (this automatically enables the HTTPS on the port 'server.port') 
+server.ssl.key-store=classpath:https/keystore-test.jks
+server.ssl.key-store-password=testpass
+server.ssl.key-password=testpass
+
+### In order to be user friendly when HTTPS is enabled, 
+### you can add another HTTP port that will be automatically redirected to HTTPS
+### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
+#server.http-to-https-redirection.port=10080
+
+### HTTP Example:
+###--------------
+### server.port=8080
+
+### HTTPS Example:
+### --------------
+### server.port=8443
+### server.ssl.key-store=file:/tmp/mykey.jks
+### server.ssl.key-store-password=mypass
+### server.ssl.key-password=mypass
+
+### HTTP (Redirected to HTTPS) and HTTPS Example:
+### --------------------------------------------
+### server.port=8443           <-- The HTTPS port
+### server.ssl.key-store=file:/tmp/mykey.jks
+### server.ssl.key-store-password=mypass
+### server.ssl.key-password=mypass
+### server.http-to-https-redirection.port=8090  <-- The HTTP port
+
+server.contextPath=/
+#Modified engine-rest applicationpath
+spring.jersey.application-path=/engine-rest
+spring.profiles.active=clamp-default,clamp-spring-authentication
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+
+#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept
+#com.att.ajsc.common.interceptors.PreInterceptor.url=/**
+#com.att.ajsc.common.interceptors.PostInterceptor.url=/**
+
+#Servlet context parameters
+server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
+
+camel.springboot.consumer-template-cache-size=1000
+camel.springboot.producer-template-cache-size=1000
+camel.springboot.jmx-enabled=true
+camel.defaultthreadpool.poolsize=10
+camel.defaultthreadpool.maxpoolsize=20
+camel.defaultthreadpool.maxqueuesize=1000
+camel.defaultthreadpool.keepaliveTime=60
+camel.defaultthreadpool.rejectpolicy=CallerRuns
+
+kubernetes.namespace=com-att-ajsc
+
+#server.port=0
+
+#Camunda Process Engine DataSource connection Details
+spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.camunda.username=camunda
+spring.datasource.camunda.password=ndMSpw4CAM
+spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.camunda.validationQuery=SELECT 1
+spring.datasource.camunda.validationQueryTimeout=20000
+spring.datasource.camunda.validationInterval=60000
+spring.datasource.camunda.testWhileIdle = true
+# Automatically test whether a connection provided is good or not
+spring.datasource.camunda.testOnBorrow=true
+
+#Camunda application properties
+#Camunda history level
+camunda.bpm.history-level=auto
+camunda.bpm.enabled=false
+camunda.bpm.auto-deployment-enabled=false
+camunda.bpm.job-execution.active=false
+camunda.bpm.job-execution.enabled=false
+camunda.bpm.management.health.camunda.enabled=false
+camunda.bpm.metrics.enabled=false
+
+#clds datasource connection details
+spring.datasource.cldsdb.driver-class-name=org.mariadb.jdbc.Driver
+spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.cldsdb.username=clds
+spring.datasource.cldsdb.password=sidnnd83K
+spring.datasource.cldsdb.driverClassName=com.mysql.jdbc.Driver
+spring.datasource.cldsdb.validationQuery=SELECT 1
+spring.datasource.cldsdb.validationQueryTimeout=20000
+spring.datasource.cldsdb.validationInterval=60000
+spring.datasource.cldsdb.testWhileIdle = true
+# Automatically test whether a connection provided is good or not
+spring.datasource.cldsdb.testOnBorrow=true
+
+#Async Executor default Parameters
+async.core.pool.size=10
+async.max.pool.size=20
+async.queue.capacity=500
+
+org.onap.clamp.config.dcae.url=http://localhost:9000/closedloop-dcae-services
+
+#GRM Edge endpoint details
+service.name=ajsc6camundademo
+service.version=1.0.0.0
+routeoffer=TEST
+#Update with your application name
+application.name=AJSC6CAMUNDA
+
+org.onap.clamp.config.files.cldsReference=classpath:/clds/clds-reference.properties
+org.onap.clamp.config.files.cldsPolicyConfig=classpath:/clds/clds-policy-config.properties
+org.onap.clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
+org.onap.clamp.config.files.globalClds=classpath:/clds/globalClds.properties
+
+#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case !
+CLDS_PERMISSION_TYPE_CL=permission-type-cl
+CLDS_PERMISSION_TYPE_CL_MANAGE=permission-type-cl-manage
+CLDS_PERMISSION_TYPE_CL_EVENT=permission-type-cl-event
+CLDS_PERMISSION_TYPE_FILTER_VF=permission-type-filter-vf
+CLDS_PERMISSION_TYPE_TEMPLATE=permission-type-template
+#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties
+CLDS_PERMISSION_INSTANCE=dev
\ No newline at end of file
diff --git a/src/test/resources/example/dao/bpmn-prop.json b/src/test/resources/example/dao/bpmn-prop.json
new file mode 100644
index 0000000..f2bfc7d
--- /dev/null
+++ b/src/test/resources/example/dao/bpmn-prop.json
@@ -0,0 +1,54 @@
+{
+	"Holmes_1m8n1s9": [
+		{
+			"name": "correlationalLogic",
+			"value": "uktukk"
+		}
+	],
+	"Policy_19c1hms": {
+		"policy1": [
+			{
+				"name": "pname",
+				"value": "policy1"
+			},
+			{
+				"name": "pid",
+				"value": "0"
+			},
+			{
+				"name": "timeout",
+				"value": "345"
+			},
+			{
+				"policyConfigurations": [
+					[
+						{
+							"name": "maxRetries",
+							"value": [
+								"3"
+							]
+						},
+						{
+							"name": "retryTimeLimit",
+							"value": [
+								"180"
+							]
+						},
+						{
+							"name": "_id",
+							"value": [
+								"JmAZRQx"
+							]
+						},
+						{
+							"name": "parentPolicy",
+							"value": [
+								""
+							]
+						}
+					]
+				]
+			}
+		]
+	}
+}
\ No newline at end of file
diff --git a/src/test/resources/example/dao/bpmn-template.xml b/src/test/resources/example/dao/bpmn-template.xml
new file mode 100644
index 0000000..5aa133a
--- /dev/null
+++ b/src/test/resources/example/dao/bpmn-template.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn">
+  <bpmn:process id="Process_1" isExecutable="false">
+    <bpmn:startEvent id="StartEvent_1">
+      <bpmn:outgoing>SequenceFlow_0mshiwd</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:collector id="Collector_1i63yo1">
+      <bpmn:incoming>SequenceFlow_0mshiwd</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0z37chw</bpmn:outgoing>
+    </bpmn:collector>
+    <bpmn:stringMatch id="StringMatch_1g5af0z">
+      <bpmn:incoming>SequenceFlow_0z37chw</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1io8zzg</bpmn:outgoing>
+    </bpmn:stringMatch>
+    <bpmn:vesCollector id="VesCollector_1s3sgbh">
+      <bpmn:incoming>SequenceFlow_1io8zzg</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0yenh9m</bpmn:outgoing>
+    </bpmn:vesCollector>
+    <bpmn:holmes id="Holmes_1m8n1s9">
+      <bpmn:incoming>SequenceFlow_0yenh9m</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1gq21be</bpmn:outgoing>
+    </bpmn:holmes>
+    <bpmn:tCA id="TCA_11n5nl9">
+      <bpmn:incoming>SequenceFlow_1gq21be</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_14phr7v</bpmn:outgoing>
+    </bpmn:tCA>
+    <bpmn:policy id="Policy_19c1hms">
+      <bpmn:incoming>SequenceFlow_14phr7v</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1q2yngv</bpmn:outgoing>
+    </bpmn:policy>
+    <bpmn:endEvent id="EndEvent_0z8t6ek">
+      <bpmn:incoming>SequenceFlow_1q2yngv</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0mshiwd" sourceRef="StartEvent_1" targetRef="Collector_1i63yo1" />
+    <bpmn:sequenceFlow id="SequenceFlow_0z37chw" sourceRef="Collector_1i63yo1" targetRef="StringMatch_1g5af0z" />
+    <bpmn:sequenceFlow id="SequenceFlow_1io8zzg" sourceRef="StringMatch_1g5af0z" targetRef="VesCollector_1s3sgbh" />
+    <bpmn:sequenceFlow id="SequenceFlow_0yenh9m" sourceRef="VesCollector_1s3sgbh" targetRef="Holmes_1m8n1s9" />
+    <bpmn:sequenceFlow id="SequenceFlow_1gq21be" sourceRef="Holmes_1m8n1s9" targetRef="TCA_11n5nl9" />
+    <bpmn:sequenceFlow id="SequenceFlow_14phr7v" sourceRef="TCA_11n5nl9" targetRef="Policy_19c1hms" />
+    <bpmn:sequenceFlow id="SequenceFlow_1q2yngv" sourceRef="Policy_19c1hms" targetRef="EndEvent_0z8t6ek" />
+  </bpmn:process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
+        <dc:Bounds x="50" y="162" width="36" height="36" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Collector_1i63yo1_di" bpmnElement="Collector_1i63yo1">
+        <dc:Bounds x="216" y="152" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="StringMatch_1g5af0z_di" bpmnElement="StringMatch_1g5af0z">
+        <dc:Bounds x="378" y="140" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="VesCollector_1s3sgbh_di" bpmnElement="VesCollector_1s3sgbh">
+        <dc:Bounds x="552" y="140" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Holmes_1m8n1s9_di" bpmnElement="Holmes_1m8n1s9">
+        <dc:Bounds x="702" y="140" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="TCA_11n5nl9_di" bpmnElement="TCA_11n5nl9">
+        <dc:Bounds x="878" y="140" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Policy_19c1hms_di" bpmnElement="Policy_19c1hms">
+        <dc:Bounds x="1031" y="140" width="120" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0z8t6ek_di" bpmnElement="EndEvent_0z8t6ek">
+        <dc:Bounds x="1231" y="162" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1204" y="198" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0mshiwd_di" bpmnElement="SequenceFlow_0mshiwd">
+        <di:waypoint xsi:type="dc:Point" x="86" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="151" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="151" y="192" />
+        <di:waypoint xsi:type="dc:Point" x="216" y="192" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="106" y="176" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0z37chw_di" bpmnElement="SequenceFlow_0z37chw">
+        <di:waypoint xsi:type="dc:Point" x="336" y="192" />
+        <di:waypoint xsi:type="dc:Point" x="357" y="192" />
+        <di:waypoint xsi:type="dc:Point" x="357" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="378" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="312" y="176" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1io8zzg_di" bpmnElement="SequenceFlow_1io8zzg">
+        <di:waypoint xsi:type="dc:Point" x="498" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="480" y="170" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0yenh9m_di" bpmnElement="SequenceFlow_0yenh9m">
+        <di:waypoint xsi:type="dc:Point" x="672" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="702" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="642" y="170" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1gq21be_di" bpmnElement="SequenceFlow_1gq21be">
+        <di:waypoint xsi:type="dc:Point" x="822" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="878" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="805" y="170" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_14phr7v_di" bpmnElement="SequenceFlow_14phr7v">
+        <di:waypoint xsi:type="dc:Point" x="998" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="1031" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="969.5" y="170" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1q2yngv_di" bpmnElement="SequenceFlow_1q2yngv">
+        <di:waypoint xsi:type="dc:Point" x="1151" y="180" />
+        <di:waypoint xsi:type="dc:Point" x="1231" y="180" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1146" y="170" width="90" height="20" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/src/test/resources/example/dao/image-template.xml b/src/test/resources/example/dao/image-template.xml
new file mode 100644
index 0000000..d7af2aa
--- /dev/null
+++ b/src/test/resources/example/dao/image-template.xml
@@ -0,0 +1,448 @@
+<?xml version="1.0" encoding="utf-8"?><!-- created with bpmn-js / http://bpmn.io --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+	width="1229" height="104" viewBox="44 134 1229 104" version="1.1">
+	<defs>
+		<marker viewBox="0 0 20 20" markerWidth="10" markerHeight="10"
+			orient="auto" refX="11" refY="10" id="markerSj7j5bqgxx">
+			<path d="M 1 5 L 11 10 L 1 15 Z"
+				style="stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;"
+				fill="#000000" />
+		</marker>
+		<marker viewBox="0 0 20 20" markerWidth="20" markerHeight="20"
+			orient="auto" refX="6" refY="6" id="markerSj7j5bqgxz">
+			<circle cx="6" cy="6" r="3.5"
+				style="stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;"
+				fill="#ffffff" stroke="#000000" />
+		</marker>
+		<marker viewBox="0 0 20 20" markerWidth="20" markerHeight="20"
+			orient="auto" refX="8.5" refY="5" id="markerSj7j5bqgx11">
+			<path d="m 1 5 l 0 -3 l 7 3 l -7 3 z"
+				style="stroke-width: 1; stroke-linecap: butt; stroke-dasharray: 10000, 1;"
+				fill="#ffffff" stroke="#000000" />
+		</marker>
+		<marker viewBox="0 0 20 20" markerWidth="10" markerHeight="10"
+			orient="auto" refX="11" refY="10" id="markerSj7j5bqgx13">
+			<path d="M 1 5 L 11 10 L 1 15"
+				style="stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;"
+				fill="#ffffff" stroke="#000000" />
+		</marker>
+		<marker viewBox="0 0 20 20" markerWidth="10" markerHeight="10"
+			orient="auto" refX="-1" refY="10" id="markerSj7j5bqgx15">
+			<path d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
+				style="stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;"
+				fill="#ffffff" stroke="#000000" />
+		</marker>
+		<marker viewBox="0 0 20 20" markerWidth="10" markerHeight="10"
+			orient="auto" refX="-5" refY="10" id="markerSj7j5bqgx17">
+			<path d="M 1 4 L 5 16"
+				style="stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;"
+				fill="#000000" stroke="#000000" />
+		</marker>
+	</defs>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="StartEvent_1"
+			transform="matrix(1,0,0,1,50,162)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="48"
+				height="48"></rect>
+			<g class="djs-visual">
+				<circle cx="18" cy="18" r="18" style="stroke-width: 2;"
+					stroke="#000000" fill="#ffffff"></circle>
+			</g>
+			<rect x="0" y="0" width="36" height="36"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="StartEvent_1_label"
+			transform="matrix(1,0,0,1,23,198)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="Collector_1i63yo1"
+			transform="matrix(1,0,0,1,216,152)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<polyline points="120,80 120,20 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<polyline points="20,0 20,80 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="35.5" y="43.5">Collector</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="StringMatch_1g5af0z"
+			transform="matrix(1,0,0,1,378,140)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<polyline points="0,20 120,20 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="27.5" y="43.5">StringMatch</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="VesCollector_1s3sgbh"
+			transform="matrix(1,0,0,1,552,140)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<polyline points="120,80 120,20 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<polyline points="20,0 20,80 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;">
+					<tspan x="5" y="14">V</tspan>
+				</text>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;">
+					<tspan x="5" y="26">E</tspan>
+				</text>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;">
+					<tspan x="5" y="38">S</tspan>
+				</text>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="25.5" y="43.5">VesCollector</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="Holmes_1m8n1s9"
+			transform="matrix(1,0,0,1,702,140)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<circle cx="15" cy="15" r="10" style="stroke-width: 1;"
+					stroke="#000000" fill="#ffffff"></circle>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;">
+					<tspan x="11" y="20">H</tspan>
+				</text>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="39" y="43.5">Holmes</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="TCA_11n5nl9"
+			transform="matrix(1,0,0,1,878,140)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<polyline points="0,60 120,60 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="48" y="43.5">TCA</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="Policy_19c1hms"
+			transform="matrix(1,0,0,1,1031,140)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="132"
+				height="92"></rect>
+			<g class="djs-visual">
+				<rect x="0" y="0" width="120" height="80" rx="0" ry="0"
+					style="stroke-width: 2;" stroke="#000000" fill="#ffffff"></rect>
+				<polyline points="0,40 60,0 " style="stroke-width: 2;"
+					fill="none" stroke="#000000"></polyline>
+				<text style="font-family: Arial,sans-serif; font-size: 12px;"
+					class=" djs-label">
+					<tspan x="43.5" y="43.5">Policy</tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="120" height="80"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="EndEvent_0z8t6ek"
+			transform="matrix(1,0,0,1,1231,162)" style="display: block;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="48"
+				height="48"></rect>
+			<g class="djs-visual">
+				<circle cx="18" cy="18" r="18" style="stroke-width: 4;"
+					stroke="#000000" fill="#ffffff"></circle>
+			</g>
+			<rect x="0" y="0" width="36" height="36"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="EndEvent_0z8t6ek_label"
+			transform="matrix(1,0,0,1,1204,198)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_0mshiwd"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="80" y="174" width="142"
+				height="24"></rect>
+			<g class="djs-visual">
+				<path d="m  86,180L151,180 L151,192 L216,192 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="86,180 151,180 151,192 216,192 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_0mshiwd_label"
+			transform="matrix(1,0,0,1,106,176)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_0z37chw"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="330" y="174" width="54"
+				height="24"></rect>
+			<g class="djs-visual">
+				<path d="m  336,192L357,192 L357,180 L378,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="336,192 357,192 357,180 378,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_0z37chw_label"
+			transform="matrix(1,0,0,1,312,176)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_1io8zzg"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="492" y="174" width="66"
+				height="12"></rect>
+			<g class="djs-visual">
+				<path d="m  498,180L552,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="498,180 552,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_1io8zzg_label"
+			transform="matrix(1,0,0,1,480,170)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_0yenh9m"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="666" y="174" width="42"
+				height="12"></rect>
+			<g class="djs-visual">
+				<path d="m  672,180L702,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="672,180 702,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_0yenh9m_label"
+			transform="matrix(1,0,0,1,642,170)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_1gq21be"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="816" y="174" width="68"
+				height="12"></rect>
+			<g class="djs-visual">
+				<path d="m  822,180L878,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="822,180 878,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_1gq21be_label"
+			transform="matrix(1,0,0,1,805,170)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_14phr7v"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="992" y="174" width="45"
+				height="12"></rect>
+			<g class="djs-visual">
+				<path d="m  998,180L1031,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="998,180 1031,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_14phr7v_label"
+			transform="matrix(1,0,0,1,969.5,170)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-connection" data-element-id="SequenceFlow_1q2yngv"
+			style="display: block;">
+			<rect fill="none" class="djs-outline" x="1145" y="174" width="92"
+				height="12"></rect>
+			<g class="djs-visual">
+				<path d="m  1151,180L1231,180 "
+					style="stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj7j5bqgxx&quot;);"
+					fill="none" stroke="#000000"></path>
+			</g>
+			<polyline points="1151,180 1231,180 " style="stroke-opacity: 0; stroke-width: 15;"
+				fill="none" stroke="#ffffff" class="djs-hit"></polyline>
+		</g>
+	</g>
+	<g class="djs-group" xmlns="http://www.w3.org/2000/svg">
+		<g class="djs-element djs-shape" data-element-id="SequenceFlow_1q2yngv_label"
+			transform="matrix(1,0,0,1,1146,170)" style="display: none;">
+			<rect fill="none" class="djs-outline" x="-6" y="-6" width="102"
+				height="32"></rect>
+			<g class="djs-visual">
+				<text style="font-family: Arial,sans-serif; font-size: 11px;"
+					class=" djs-label">
+					<tspan x="45" y="0"></tspan>
+				</text>
+			</g>
+			<rect x="0" y="0" width="90" height="20"
+				style="stroke-opacity: 0; stroke-width: 15;" fill="none" stroke="#ffffff"
+				class="djs-hit"></rect>
+		</g>
+	</g>
+</svg>
\ No newline at end of file
