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
