diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
index 22b3ba0..02e27ea 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -24,69 +24,65 @@
 package org.onap.clamp.clds.model.prop;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
-import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.onap.clamp.clds.util.ResourceFileUtil;
 
-
 /**
  * Test org.onap.clamp.ClampDesigner.model.prop package using ModelProperties.
  */
 public class ModelPropertiesTest {
 
-    @Test
-    public void testJsonParse() throws IOException {
-        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
-        String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
-        String modName = "example-model-name";
-        String controlName = "example-control-name";
-
-        ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
-        Assert.assertEquals(modName, prop.getModelName());
-        Assert.assertEquals(controlName, prop.getControlName());
-        Assert.assertEquals(null, prop.getActionCd());
-        Global global = prop.getGlobal();
-        Assert.assertEquals("0f983e18-4603-4bb4-a98c-e29691fb16a1", global.getService());
-        Assert.assertEquals("[SNDGCA64]", global.getLocation().toString());
-        Assert.assertEquals("[6c7aaec2-59eb-41d9-8681-b7f976ab668d]", global.getResourceVf().toString());
-        StringMatch sm = prop.getType(StringMatch.class);
-        Assert.assertEquals("StringMatch_", sm.getId());
-        Policy policy = prop.getType(Policy.class);
-        Assert.assertEquals("Policy_", policy.getId());
-        Assert.assertEquals(null, policy.getTopicPublishes());
-        Assert.assertEquals(null, policy.getTopicSubscribes());
-
-        Tca tca = prop.getType(Tca.class);
-        Assert.assertEquals("Narra", tca.getTcaItems().get(0).getTcaName());
-        Assert.assertEquals(Integer.valueOf(4), tca.getTcaItems().get(0).getTcaThreshholds().get(0).getThreshhold());
+    @Before
+    public void registerNewClasses() {
+        ModelProperties.registerModelElement(Holmes.class, Holmes.getType());
     }
 
     @Test
-    public void testPolicy() throws IOException {
+    public void testHolmes() throws IOException {
 
-        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnPropForPolicy.json");
-        System.out.println(modelBpmnProp);
+        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/modelBpmnProp.json");
+        String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/modelBpmn.json");
 
-        String modelProp = ResourceFileUtil.getResourceAsString("example/modelPropForPolicy.json");
-        System.out.println(modelProp);
-        ModelProperties prop = new ModelProperties("example-model-name", "example-control-name",
-                null, true, modelBpmnProp, modelProp);
-        System.out.println("attempting prop.getGlobal()...");
-        Global global = prop.getGlobal();
-        System.out.println("attempting prop.getStringMatch()...");
+        ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
+                modelBpmnProp);
+
         StringMatch stringMatch = prop.getType(StringMatch.class);
-        if (stringMatch.isFound()) {
-            System.out.println("stringMatch json object is present...");
-            assertEquals("1", stringMatch.getResourceGroups().get(0).getPolicyId());
-        }
-        System.out.println("attempting prop.getPolicy()...");
+        assertTrue(stringMatch.isFound());
+        assertEquals("1505133578560", stringMatch.getResourceGroups().get(0).getGroupNumber());
+        assertEquals("0", stringMatch.getResourceGroups().get(0).getPolicyId());
+        assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().size());
+        List<String> aaiMathcingFields = new ArrayList<String>();
+        aaiMathcingFields.add("complex.city");
+        assertEquals(aaiMathcingFields,
+                stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getaaiMatchingFields());
+        assertEquals("1600", stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getAgeLimit());
+        assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getStringSet().size());
+
+        Collector collector = prop.getType(Collector.class);
+        assertTrue(collector.isFound());
+        assertEquals("DCAE-COLLECTOR-UCSNMP", collector.getTopicPublishes());
+
         Policy policy = prop.getType(Policy.class);
-        if (policy.isFound()) {
-            System.out.println("policy json object is present...");
-            assertEquals("1", policy.getPolicyChains().get(0).getPolicyId());
-        }
+        assertTrue(policy.isFound());
+        assertEquals(1, policy.getPolicyChains().size());
+        assertEquals("0", policy.getPolicyChains().get(0).getPolicyId());
+        assertEquals(1, policy.getPolicyChains().get(0).getPolicyItems().size());
+
+        Tca tca = prop.getType(Tca.class);
+        assertTrue(tca.isFound());
+        assertEquals(1, tca.getTcaItems().size());
+        assertEquals(0, tca.getTcaItems().get(0).getTcaThreshholds().size());
+
+        Holmes holmes = prop.getType(Holmes.class);
+        assertTrue(holmes.isFound());
+        assertEquals("policy1", holmes.getOperationalPolicy());
+        assertEquals("blabla", holmes.getCorrelationLogic());
     }
 }
\ No newline at end of file
diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json
new file mode 100644
index 0000000..4737174
--- /dev/null
+++ b/src/test/resources/example/model-properties/modelBpmn.json
@@ -0,0 +1,38 @@
+{
+	"collector": [
+		{
+			"id": "Collector_1c72ct5",
+			"from": "StartEvent_1"
+		}
+	],
+	"stringMatch": [
+		{
+			"id": "StringMatch_05arstl",
+			"from": "Collector_1c72ct5"
+		}
+	],
+	"policy": [
+		{
+			"id": "Policy_0honxgv",
+			"from": "TCA_1jy9to4"
+		}
+	],
+	"tca": [
+		{
+			"id": "TCA_1jy9to4",
+			"from": "Holmes_0i4n2mm"
+		}
+	],
+	"holmes": [
+		{
+			"id": "Holmes_0i4n2mm",
+			"from": "VesCollector_0orydnh"
+		}
+	],
+	"vesCollector": [
+		{
+			"id": "VesCollector_0orydnh",
+			"from": "StringMatch_05arstl"
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
new file mode 100644
index 0000000..7e799aa
--- /dev/null
+++ b/src/test/resources/example/model-properties/modelBpmnProp.json
@@ -0,0 +1,188 @@
+{
+	"Collector_1c72ct5": [
+		{
+			"name": "topicPublishes",
+			"value": "DCAE-COLLECTOR-UCSNMP"
+		}
+	],
+	"StringMatch_05arstl": {
+		"group1": [
+			{
+				"name": "rgname",
+				"value": "1505133578560"
+			},
+			{
+				"name": "rgfriendlyname",
+				"value": "group1"
+			},
+			{
+				"name": "policyName",
+				"value": "policy1"
+			},
+			{
+				"name": "policyId",
+				"value": "0"
+			},
+			{
+				"serviceConfigurations": [
+					[
+						{
+							"name": "aaiMatchingFields",
+							"value": [
+								"complex.city"
+							]
+						},
+						{
+							"name": "aaiSendFields",
+							"value": [
+								"cloud-region.identity-url"
+							]
+						},
+						{
+							"name": "timeWindow",
+							"value": [
+								"0"
+							]
+						},
+						{
+							"name": "ageLimit",
+							"value": [
+								"1600"
+							]
+						},
+						{
+							"name": "createClosedLoopEventId",
+							"value": [
+								"Initial"
+							]
+						},
+						{
+							"name": "outputEventName",
+							"value": [
+								""
+							]
+						},
+						{
+							"stringSet": [
+								{
+									
+								},
+								{
+									"name": "eventSeverity",
+									"value": [
+										"NORMAL"
+									]
+								},
+								{
+									"name": "eventSourceType",
+									"value": [
+										""
+									]
+								}
+							]
+						}
+					]
+				]
+			}
+		]
+	},
+	"Policy_0honxgv": {
+		"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": [
+								"dGLuNqg"
+							]
+						},
+						{
+							"name": "parentPolicy",
+							"value": [
+								""
+							]
+						}
+					]
+				]
+			}
+		]
+	},
+	"TCA_1jy9to4": {
+		"tca1": [
+			{
+				"name": "tname",
+				"value": "tca1"
+			},
+			{
+				"name": "tuuid",
+				"value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3"
+			},
+			{
+				"name": "tnfc",
+				"value": ""
+			},
+			{
+				"name": "tcaEnab",
+				"value": "on"
+			},
+			{
+				"name": "tcaPol",
+				"value": "policy1"
+			},
+			{
+				"name": "tcaPolId",
+				"value": "0"
+			},
+			{
+				"name": "tcaInt",
+				"value": "1"
+			},
+			{
+				"name": "tcaSev",
+				"value": "NORMAL"
+			},
+			{
+				"name": "tcaVio",
+				"value": "1"
+			},
+			{
+				"serviceConfigurations": []
+			}
+		]
+	},
+	"Holmes_0i4n2mm": [
+		{
+			"name": "correlationalLogic",
+			"value": "blabla"
+		},
+		{
+			"name": "operationalPolicy",
+			"value": "policy1"
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties
index b30f6aa..d34f028 100644
--- a/src/test/resources/https/https-test.properties
+++ b/src/test/resources/https/https-test.properties
@@ -64,7 +64,6 @@
 #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
@@ -93,35 +92,42 @@
 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.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true
 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.validationInterval=30000
 spring.datasource.camunda.testWhileIdle = true
+spring.datasource.camunda.minIdle = 0
+spring.datasource.camunda.initialSize=0
 # Automatically test whether a connection provided is good or not
 spring.datasource.camunda.testOnBorrow=true
+spring.datasource.camunda.ignoreExceptionOnPreLoad=true
+
 
 #Camunda application properties
 #Camunda history level
-camunda.bpm.history-level=auto
+camunda.bpm.history-level=none
+camunda.bpm.database.type=mariadb
+camunda.bpm.database.schema-update=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.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true
 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.validationInterval=30000
 spring.datasource.cldsdb.testWhileIdle = true
+spring.datasource.cldsdb.minIdle = 0
+spring.datasource.cldsdb.initialSize=0
 # Automatically test whether a connection provided is good or not
 spring.datasource.cldsdb.testOnBorrow=true
+spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
 
 #Async Executor default Parameters
 async.core.pool.size=10
