Remove Camunda and replace by Camel

The camunda has been replaced by Camel so that DB could be removed. 
Also the unit tests has been reworked and maven dependencies have been
changed

Issue-ID: CLAMP-85
Change-Id: I781c3c83cecbdae3535c7e036e62ae83c6b6852f
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
diff --git a/extra/docker/clamp/clamp.env b/extra/docker/clamp/clamp.env
index e5936e3..41585ab 100644
--- a/extra/docker/clamp/clamp.env
+++ b/extra/docker/clamp/clamp.env
@@ -1 +1,4 @@
-SPRING_APPLICATION_JSON={"spring.datasource.camunda.url":"jdbc:mariadb:sequential://db:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647","spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"}
\ No newline at end of file
+SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647",
+"org.onap.clamp.config.files.cldsPolicyConfig":"classpath:/clds/clds-policy-config.properties",
+"org.onap.clamp.config.files.cldsReference":"classpath:/clds/clds-reference.properties"
+}
\ No newline at end of file
diff --git a/extra/sql/bulkload/clds-create-db-objects.sql b/extra/sql/bulkload/clds-create-db-objects.sql
index 3312daf..78a1f7a 100644
--- a/extra/sql/bulkload/clds-create-db-objects.sql
+++ b/extra/sql/bulkload/clds-create-db-objects.sql
@@ -2,13 +2,6 @@
 # Create CLDS database objects (tables, etc.)
 #
 #
-CREATE DATABASE `camundabpm`;
-USE `camundabpm`;
-DROP USER 'camunda';
-CREATE USER 'camunda';
-GRANT ALL on camundabpm.* to 'camunda' identified by 'ndMSpw4CAM' with GRANT OPTION;
-FLUSH PRIVILEGES;
-
 CREATE DATABASE `cldsdb4`;
 USE `cldsdb4`;
 DROP USER 'clds';
diff --git a/pom.xml b/pom.xml
index bb2534d..b0890a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,12 +66,13 @@
 				<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
 				<docker.mariadb.port.host>3306</docker.mariadb.port.host>
+				<docker.http-cache.port.host>2080</docker.http-cache.port.host>
 				<project.scm.id>git-server</project.scm.id>
 				<java.version>1.8</java.version>
 
 				<eelf.core.version>1.0.0</eelf.core.version>
 				<camel.version>2.20.1</camel.version>
-				<springboot.version>1.5.9.RELEASE</springboot.version>
+				<springboot.version>1.5.10.RELEASE</springboot.version>
 
 				<sonar.language>java</sonar.language>
 				<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@ -85,6 +86,8 @@
 				<skip.docker.build>true</skip.docker.build>
 				<skip.docker.push>true</skip.docker.push>
 				<skip.staging.artifacts>false</skip.staging.artifacts>
+				<http.proxy></http.proxy>
+
 		</properties>
 
 		<distributionManagement>
@@ -153,14 +156,6 @@
 								<type>pom</type>
 								<scope>import</scope>
 						</dependency>
-						<!-- Camunda BOM -->
-						<dependency>
-								<groupId>org.camunda.bpm</groupId>
-								<artifactId>camunda-bom</artifactId>
-								<version>7.6.0</version>
-								<scope>import</scope>
-								<type>pom</type>
-						</dependency>
 						<!-- Camel BOM -->
 						<dependency>
 								<groupId>org.apache.camel</groupId>
@@ -182,7 +177,6 @@
 				<dependency>
 						<groupId>org.apache.camel</groupId>
 						<artifactId>camel-spring-boot-starter</artifactId>
-
 				</dependency>
 				<dependency>
 						<groupId>org.apache.camel</groupId>
@@ -190,7 +184,7 @@
 				</dependency>
 				<dependency>
 						<groupId>org.apache.camel</groupId>
-						<artifactId>camel-cxf-starter</artifactId>
+						<artifactId>camel-servlet-starter</artifactId>
 				</dependency>
 				<!-- Spring famework -->
 				<dependency>
@@ -202,8 +196,9 @@
 						<artifactId>spring-boot-starter-tomcat</artifactId>
 				</dependency>
 				<dependency>
-						<groupId>org.springframework.boot</groupId>
-						<artifactId>spring-boot-starter-jersey</artifactId>
+						<groupId>com.paypal.springboot</groupId>
+						<artifactId>resteasy-spring-boot-starter</artifactId>
+						<version>2.3.4-RELEASE</version>
 				</dependency>
 				<dependency>
 						<groupId>org.springframework</groupId>
@@ -221,18 +216,28 @@
 						<groupId>org.springframework.boot</groupId>
 						<artifactId>spring-boot-starter-test</artifactId>
 						<scope>test</scope>
+						<exclusions>
+								<exclusion>
+										<groupId>com.vaadin.external.google</groupId>
+										<artifactId>android-json</artifactId>
+								</exclusion>
+						</exclusions>
 				</dependency>
-
-				<!-- For CAmunda -->
+				<!-- Others dependencies -->
 				<dependency>
-						<groupId>org.camunda.bpm.extension.springboot</groupId>
-						<artifactId>camunda-bpm-spring-boot-starter</artifactId>
-						<version>2.0.0</version>
+						<groupId>ch.qos.logback</groupId>
+						<artifactId>logback-core</artifactId>
+						<version>1.2.3</version>
 				</dependency>
 				<dependency>
-						<groupId>org.camunda.bpm.extension.springboot</groupId>
-						<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
-						<version>2.0.0</version>
+						<groupId>ch.qos.logback</groupId>
+						<artifactId>logback-classic</artifactId>
+						<version>1.2.3</version>
+				</dependency>
+				<dependency>
+						<groupId>commons-dbcp</groupId>
+						<artifactId>commons-dbcp</artifactId>
+						<version>1.4</version>
 				</dependency>
 				<dependency>
 						<groupId>commons-io</groupId>
@@ -266,11 +271,6 @@
 						<artifactId>junit</artifactId>
 				</dependency>
 				<dependency>
-						<groupId>org.mockito</groupId>
-						<artifactId>mockito-all</artifactId>
-						<version>1.9.5</version>
-				</dependency>
-				<dependency>
 						<groupId>com.fasterxml.jackson.core</groupId>
 						<artifactId>jackson-core</artifactId>
 				</dependency>
@@ -770,13 +770,42 @@
 																</ports>
 														</run>
 												</image>
+												<image>
+														<name>python:2</name>
+														<alias>python</alias>
+														<run>
+																<hostname>python</hostname>
+																<volumes>
+																		<bind>
+																				<volume>${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app</volume>
+																				<volume>${project.basedir}/src/test/resources/http-cache/sdc-example/:/usr/src/http-cache-app/data-cache</volume>
+																		</bind>
+																</volumes>
+																<wait>
+																		<tcp>
+																				<ports>
+																						<port>8080</port>
+																				</ports>
+																				<mode>direct</mode>
+																		</tcp>
+																		<time>120000</time>
+																</wait>
+																<ports>
+																		<port>${docker.http-cache.port.host}:8080</port>
+																</ports>
+																<workingDir>/usr/src/http-cache-app</workingDir>
+																<cmd>
+																		<shell>./start_http_cache.sh ${http.proxy}</shell>
+																</cmd>
+														</run>
+												</image>
 										</images>
 										<skip>${skipITs}</skip>
 								</configuration>
 
 								<executions>
 										<execution>
-												<id>mariadb-start-for-it</id>
+												<id>docker-start-for-it</id>
 												<phase>pre-integration-test</phase>
 												<goals>
 														<goal>start</goal>
@@ -786,7 +815,7 @@
 												</configuration>
 										</execution>
 										<execution>
-												<id>mariadb-stop-for-it</id>
+												<id>docker-stop-for-it</id>
 												<phase>post-integration-test</phase>
 												<goals>
 														<goal>stop</goal>
diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java
index 2727535..281a87c 100644
--- a/src/main/java/org/onap/clamp/clds/Application.java
+++ b/src/main/java/org/onap/clamp/clds/Application.java
@@ -26,6 +26,7 @@
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
+import org.apache.camel.component.servlet.CamelHttpTransportServlet;
 import org.apache.catalina.connector.Connector;
 import org.onap.clamp.clds.model.prop.Holmes;
 import org.onap.clamp.clds.model.prop.ModelProperties;
@@ -41,6 +42,7 @@
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
 import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.boot.web.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -89,6 +91,19 @@
     }
 
     /**
+     * This method is used to declare the camel servlet.
+     * 
+     * @return A servlet bean
+     */
+    @Bean
+    public ServletRegistrationBean camelServletRegistrationBean() {
+        ServletRegistrationBean registration = new ServletRegistrationBean(new CamelHttpTransportServlet(),
+                "/restservices/clds/v2");
+        registration.setName("CamelServlet");
+        return registration;
+    }
+
+    /**
      * This method is used by Spring to create the servlet container factory.
      * 
      * @return The TomcatEmbeddedServletContainerFactory just created
diff --git a/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java
new file mode 100644
index 0000000..66cd1f5
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2018 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.camel;
+
+import org.apache.camel.ExchangeProperty;
+
+/**
+ * This interface describes the CamelProxy parameters that must be passed to the
+ * Camel flow.
+ */
+public interface CamelProxy {
+
+    /**
+     * This method is called when invoking a camel flow.
+     * 
+     * @param actionCommand
+     *            The action coming from the Clamp UI (like SUBMIT, UPDATE,
+     *            DELETE, ...)
+     * @param modelProperties
+     *            The Model properties created based on the BPMN Json and
+     *            Properties Json
+     * @param modelBpmnProperties
+     *            The Json with all the properties describing the flow
+     * @param modelName
+     *            The model name
+     * @param controlName
+     *            The control loop name
+     * @param docText
+     *            The Global properties JSON containing YAML (coming from CLamp
+     *            template)
+     * @param isTest
+     *            Is a test or not (flag coming from the UI)
+     * @param userId
+     *            The user ID coming from the UI
+     * @param isInsertTestEvent
+     *            Is a test or not (flag coming from the UI)
+     * @return A string containing the result of the Camel flow execution
+     */
+    String submit(@ExchangeProperty("actionCd") String actionCommand,
+            @ExchangeProperty("modelProp") String modelProperties,
+            @ExchangeProperty("modelBpmnProp") String modelBpmnProperties,
+            @ExchangeProperty("modelName") String modelName, @ExchangeProperty("controlName") String controlName,
+            @ExchangeProperty("docText") String docText, @ExchangeProperty("isTest") boolean isTest,
+            @ExchangeProperty("userid") String userId,
+            @ExchangeProperty("isInsertTestEvent") boolean isInsertTestEvent);
+}
diff --git a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
index 4886b0d..dcc3189 100644
--- a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,40 +26,44 @@
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.dao.CldsDao;
 import org.onap.clamp.clds.model.CldsEvent;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Create CLDS Event.
  */
-public class CldsEventDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(CldsEventDelegate.class);
+@Component
+public class CldsEventDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsEventDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private CldsDao                   cldsDao;
+    private CldsDao cldsDao;
 
     /**
      * Insert event using process variables.
      *
-     * @param execution
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) {
-        String controlName = (String) execution.getVariable("controlName");
-        String actionCd = (String) execution.getVariable("actionCd");
-        String actionStateCd = (String) execution.getVariable("actionStateCd");
+    @Handler
+    public void execute(Exchange camelExchange) {
+        String controlName = (String) camelExchange.getProperty("controlName");
+        String actionCd = (String) camelExchange.getProperty("actionCd");
+        String actionStateCd = (String) camelExchange.getProperty("actionStateCd");
         // Flag indicate whether it is triggered by Validation Test button from
         // UI
-        boolean isTest = (boolean) execution.getVariable("isTest");
-        boolean isInsertTestEvent = (boolean) execution.getVariable("isInsertTestEvent");
-        String userid = (String) execution.getVariable("userid");
+        boolean isTest = (boolean) camelExchange.getProperty("isTest");
+        boolean isInsertTestEvent = (boolean) camelExchange.getProperty("isInsertTestEvent");
+        String userid = (String) camelExchange.getProperty("userid");
         // do not insert events for test actions unless flag set to insert them
         if (!isTest || isInsertTestEvent) {
             // won't really have userid here...
-            CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, execution.getProcessInstanceId());
+            CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, camelExchange.getExchangeId());
         }
     }
 }
diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
index b8863e0..6053a0d 100644
--- a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
@@ -35,24 +35,26 @@
 import org.onap.clamp.clds.model.refprop.RefProp;

 import org.onap.clamp.clds.util.LoggingUtils;

 import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.stereotype.Component;

 

 /**

  * This class implements the communication with DCAE for the service

  * deployments.

- *

  */

+@Component

 public class DcaeDispatcherServices {

-    protected static final EELFLogger logger                       = EELFManager.getInstance()

-            .getLogger(DcaeDispatcherServices.class);

-    protected static final EELFLogger metricsLogger                = EELFManager.getInstance().getMetricsLogger();

+

+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeDispatcherServices.class);

+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();

     @Autowired

-    private RefProp                   refProp;

-    private static final String       STATUS_URL_LOG               = "Status URL extracted: ";

-    private static final String       DCAE_URL_PREFIX              = "/dcae-deployments/";

-    private static final String       DCAE_URL_PROPERTY_NAME       = "DCAE_DISPATCHER_URL";

-    public static final String        DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";

-    private static final String       DCAE_LINK_FIELD              = "links";

-    private static final String       DCAE_STATUS_FIELD            = "status";

+    private RefProp refProp;

+    private static final String STATUS_URL_LOG = "Status URL extracted: ";

+    private static final String DCAE_URL_PREFIX = "/dcae-deployments/";

+    private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL";

+    private static final String DCAE_REQUEST_FAILED_LOG = "RequestFailed - responseStr=";

+    public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";

+    private static final String DCAE_LINK_FIELD = "links";

+    private static final String DCAE_STATUS_FIELD = "status";

 

     /**

      * Delete the deployment on DCAE.

@@ -76,7 +78,7 @@
             LoggingUtils.setResponseContext("0", "Delete deployments success", this.getClass().getName());

             return statusUrl;

         } catch (Exception e) {

-        	//Log StatusCode during exception in metrics log 

+            // Log StatusCode during exception in metrics log

             LoggingUtils.setResponseContext("900", "Delete deployments failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Delete deployments error");

             logger.error("Exception occurred during Delete Deployment Operation with DCAE", e);

@@ -93,7 +95,6 @@
      * @param statusUrl

      *            The URL provided by a previous DCAE Query

      * @return The status

-     * 

      */

     public String getOperationStatus(String statusUrl) {

         // Assigning processing status to monitor operation status further

@@ -111,7 +112,7 @@
             LoggingUtils.setResponseContext("0", "Get operation status success", this.getClass().getName());

             opStatus = status;

         } catch (Exception e) {

-        	//Log StatusCode during exception in metrics log 

+            // Log StatusCode during exception in metrics log

             LoggingUtils.setResponseContext("900", "Get operation status failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Get operation status error");

             logger.error("Exception occurred during getOperationStatus Operation with DCAE", e);

@@ -124,7 +125,6 @@
 

     /**

      * This method send a getDeployments operation to DCAE.

-     * 

      */

     public void getDeployments() {

         Date startTime = new Date();

@@ -134,7 +134,7 @@
             DcaeHttpConnectionManager.doDcaeHttpQuery(url, "GET", null, null);

             LoggingUtils.setResponseContext("0", "Get deployments success", this.getClass().getName());

         } catch (Exception e) {

-        	//Log StatusCode during exception in metrics log 

+            // Log StatusCode during exception in metrics log

             LoggingUtils.setResponseContext("900", "Get deployments failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Get deployments error");

             logger.error("Exception occurred during getDeployments Operation with DCAE", e);

@@ -174,7 +174,7 @@
             LoggingUtils.setResponseContext("0", "Create new deployment failed", this.getClass().getName());

             return statusUrl;

         } catch (Exception e) {

-        	//Log StatusCode during exception in metrics log 

+            // Log StatusCode during exception in metrics log

             LoggingUtils.setResponseContext("900", "Create new deployment failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Create new deployment error");

             logger.error("Exception occurred during createNewDeployment Operation with DCAE", e);

@@ -212,7 +212,7 @@
             LoggingUtils.setResponseContext("0", "Delete existing deployment success", this.getClass().getName());

             return statusUrl;

         } catch (Exception e) {

-        	//Log StatusCode during exception in metrics log 

+            // Log StatusCode during exception in metrics log

             LoggingUtils.setResponseContext("900", "Delete existing deployment failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Delete existing deployment error");

             logger.error("Exception occurred during deleteExistingDeployment Operation with DCAE", e);

diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
index 94ebaca..4dfe089 100644
--- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
@@ -50,10 +50,12 @@
 import org.onap.clamp.clds.model.refprop.RefProp;

 import org.onap.clamp.clds.util.LoggingUtils;

 import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.stereotype.Component;

 

 /**

  * This class implements the communication with DCAE for the service inventory.

  */

+@Component

 public class DcaeInventoryServices {

 

     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);

@@ -107,12 +109,12 @@
             dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION);

             LoggingUtils.setResponseContext("0", "Set inventory success", this.getClass().getName());

         } catch (JsonProcessingException e) {

-        	LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());

-        	LoggingUtils.setErrorContext("900", "Set inventory error");

+            LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());

+            LoggingUtils.setErrorContext("900", "Set inventory error");

             logger.error("Error during JSON decoding", e);

         } catch (IOException ex) {

-        	LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());

-        	LoggingUtils.setErrorContext("900", "Set inventory error");

+            LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());

+            LoggingUtils.setErrorContext("900", "Set inventory error");

             logger.error("Error during DCAE communication", ex);

         } finally {

             LoggingUtils.setTimeContext(startTime, new Date());

@@ -209,7 +211,7 @@
      *            The vf UUID

      * @return The DCAE inventory type id

      */

-    public String createUpdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,

+    public String createupdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,

             String asdcServiceId, String asdcResourceId) {

         Date startTime = new Date();

         LoggingUtils.setTargetContext("DCAE", "createDCAEServiceType");

@@ -237,20 +239,22 @@
             Object obj0 = parser.parse(responseStr);

             JSONObject jsonObj = (JSONObject) obj0;

             typeId = (String) jsonObj.get("typeId"); // need to save this

-                                                            // as

-                                                            // service_type_id

-                                                            // in model table

+                                                     // as

+                                                     // service_type_id

+                                                     // in model table

         } catch (IOException | ParseException e) {

             logger.error("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e);

             throw new BadRequestException("Exception occurred during createupdateDCAEServiceType Operation with DCAE",

                     e);

         } finally {

-        	if(typeId != null) {

-        		LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success", this.getClass().getName());

-        	} else {

-        		LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed", this.getClass().getName());

+            if (typeId != null) {

+                LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success",

+                        this.getClass().getName());

+            } else {

+                LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed",

+                        this.getClass().getName());

                 LoggingUtils.setErrorContext("900", "Create update DCAE ServiceType error");

-        	}

+            }

             LoggingUtils.setTimeContext(startTime, new Date());

             metricsLogger.info("createupdateDCAEServiceType complete");

         }

diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
index aaa4a2c..3465598 100644
--- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,41 +28,45 @@
 
 import java.util.UUID;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.model.prop.Holmes;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.refprop.RefProp;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Send Holmes info to policy api.
  */
-public class HolmesPolicyDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class);
+@Component
+public class HolmesPolicyDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private PolicyClient              policyClient;
+    private PolicyClient policyClient;
     @Autowired
-    private RefProp                   refProp;
+    private RefProp refProp;
 
     /**
      * Perform activity. Send Holmes info to policy api.
      *
-     * @param execution
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) {
+    @Handler
+    public void execute(Exchange camelExchange) {
         String holmesPolicyRequestUuid = UUID.randomUUID().toString();
-        execution.setVariable("holmesPolicyRequestUuid", holmesPolicyRequestUuid);
-        ModelProperties prop = ModelProperties.create(execution);
+        camelExchange.setProperty("holmesPolicyRequestUuid", holmesPolicyRequestUuid);
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Holmes holmes = prop.getType(Holmes.class);
         if (holmes.isFound()) {
             String responseMessage = policyClient.sendBasePolicyInOther(formatHolmesConfigBody(prop, holmes),
                     holmes.getConfigPolicyName(), prop, holmesPolicyRequestUuid);
             if (responseMessage != null) {
-                execution.setVariable("holmesPolicyResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("holmesPolicyResponseMessage", responseMessage.getBytes());
             }
         }
     }
diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
index 72db328..28da148 100644
--- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,34 +26,34 @@
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
-import java.io.IOException;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.model.prop.Holmes;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Delete Holmes Policy via policy api.
  */
-public class HolmesPolicyDeleteDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance()
-            .getLogger(HolmesPolicyDeleteDelegate.class);
+@Component
+public class HolmesPolicyDeleteDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDeleteDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private PolicyClient              policyClient;
+    private PolicyClient policyClient;
 
     /**
      * Perform activity. Delete Holmes Policy via policy api.
      *
-     * @param execution
-     * @throws IOException
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) {
-        ModelProperties prop = ModelProperties.create(execution);
+    @Handler
+    public void execute(Exchange camelExchange) {
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Holmes holmes = prop.getType(Holmes.class);
         if (holmes.isFound()) {
             prop.setCurrentModelElementId(holmes.getId());
diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
index e2d16c5..77d7680 100644
--- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
@@ -29,8 +29,8 @@
 import java.io.UnsupportedEncodingException;
 import java.util.Map;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.OperationalPolicyReq;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.model.prop.ModelProperties;
@@ -41,41 +41,42 @@
 import org.onap.policy.api.AttributeType;
 import org.onap.policy.controlloop.policy.builder.BuilderException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Send Operational Policy info to policy api. It uses the policy code to define
  * the model and communicate with it. See also the PolicyClient class.
- * 
  */
-public class OperationalPolicyDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance()
-            .getLogger(OperationalPolicyDelegate.class);
+@Component
+public class OperationalPolicyDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(OperationalPolicyDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     /**
      * Automatically injected by Spring, define in CldsConfiguration as a bean.
      */
     @Autowired
-    private PolicyClient              policyClient;
+    private PolicyClient policyClient;
     /**
      * Automatically injected by Spring, define in CldsConfiguration as a bean.
      */
     @Autowired
-    private RefProp                   refProp;
+    private RefProp refProp;
 
     /**
      * Perform activity. Send Operational Policy info to policy api.
      *
-     * @param execution
-     *            The DelegateExecution
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      * @throws BuilderException
      *             In case of issues with OperationalPolicyReq
      * @throws UnsupportedEncodingException
      *             In case of issues with the Charset encoding
      */
-    @Override
-    public void execute(DelegateExecution execution) throws BuilderException, UnsupportedEncodingException {
+    @Handler
+    public void execute(Exchange camelExchange) throws BuilderException, UnsupportedEncodingException {
         String responseMessage = null;
-        ModelProperties prop = ModelProperties.create(execution);
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Policy policy = prop.getType(Policy.class);
         if (policy.isFound()) {
             for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
@@ -84,7 +85,7 @@
                 responseMessage = policyClient.sendBrmsPolicy(attributes, prop, LoggingUtils.getRequestId());
             }
             if (responseMessage != null) {
-                execution.setVariable("operationalPolicyResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("operationalPolicyResponseMessage", responseMessage.getBytes());
             }
         }
     }
diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
index 2bca639..4dd2040 100644
--- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,35 +26,36 @@
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
-import java.io.IOException;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.prop.Policy;
 import org.onap.clamp.clds.model.prop.PolicyChain;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Delete Operational Policy via policy api.
  */
-public class OperationalPolicyDeleteDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance()
+@Component
+public class OperationalPolicyDeleteDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance()
             .getLogger(OperationalPolicyDeleteDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private PolicyClient              policyClient;
+    private PolicyClient policyClient;
 
     /**
      * Perform activity. Delete Operational Policy via policy api.
      *
-     * @param execution
-     * @throws IOException
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) {
-        ModelProperties prop = ModelProperties.create(execution);
+    @Handler
+    public void execute(Exchange camelExchange) {
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Policy policy = prop.getType(Policy.class);
         prop.setCurrentModelElementId(policy.getId());
         String responseMessage = "";
@@ -64,7 +65,7 @@
                 responseMessage = policyClient.deleteBrms(prop);
             }
             if (responseMessage != null) {
-                execution.setVariable("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
             }
         }
     }
diff --git a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
index b582349..e21bfce 100644
--- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,82 +26,88 @@
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
+import java.io.IOException;
+import java.security.GeneralSecurityException;
 import java.util.List;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
+import org.apache.commons.codec.DecoderException;
 import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
 import org.onap.clamp.clds.client.req.sdc.SdcReq;
 import org.onap.clamp.clds.model.DcaeEvent;
+import org.onap.clamp.clds.model.prop.Global;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.refprop.RefProp;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Send control loop model to dcae proxy.
  */
-public class SdcSendReqDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
+@Component
+public class SdcSendReqDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private SdcReq                    sdcReq;
+    private SdcCatalogServices sdcCatalogServices;
     @Autowired
-    private RefProp                   refProp;
+    private SdcReq sdcReq;
     @Autowired
-    private SdcCatalogServices        sdcCatalogServices;
-    private String                    baseUrl;
-    private String                    artifactType;
-    private String                    locationArtifactType;
-    private String                    artifactLabel;
-    private String                    locationArtifactLabel;
+    private RefProp refProp;
 
     /**
      * Perform activity. Send to sdc proxy.
      *
-     * @param execution
+     * @param camelExchange
+     *            The camel object that contains all fields
+     * @throws DecoderException
+     *             In case of issues with password decryption
+     * @throws GeneralSecurityException
+     *             In case of issues with password decryption
+     * @throws IOException
+     *             In case of issues with file opening
      */
-    @Override
-    public void execute(DelegateExecution execution) throws Exception {
-        String userid = (String) execution.getVariable("userid");
-        logger.info("userid=" + userid);
-        String docText = new String((byte[]) execution.getVariable("docText"));
-        String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
-        execution.setVariable("artifactName", artifactName);
-        getSdcAttributes((String) execution.getVariable("controlName"));
-        ModelProperties prop = ModelProperties.create(execution);
-        String bluprintPayload = sdcReq.formatBlueprint(prop, docText);
+    @Handler
+    public void execute(Exchange camelExchange) throws GeneralSecurityException, DecoderException, IOException {
+        String controlName = (String) camelExchange.getProperty("controlName");
+        String baseUrl = refProp.getStringValue("sdc.serviceUrl");
+        String artifactLabel = sdcReq
+                .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
+        String locationArtifactLabel = sdcReq
+                .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
+        String artifactType = refProp.getStringValue("sdc.artifactType");
+        String locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
+        String userid = (String) camelExchange.getProperty("userid");
+        String docText = (String) camelExchange.getProperty("docText");
+        String artifactName = (String) camelExchange.getProperty("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
+        camelExchange.setProperty("artifactName", artifactName);
+        ModelProperties prop = ModelProperties.create(camelExchange);
+        String bluprintPayload;
+        bluprintPayload = sdcReq.formatBlueprint(prop, docText);
         // no need to upload blueprint for Holmes, thus blueprintPayload for
         // Holmes is empty
         if (!bluprintPayload.isEmpty()) {
             String formattedSdcReq = sdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
             if (formattedSdcReq != null) {
-                execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
+                camelExchange.setProperty("formattedArtifactReq", formattedSdcReq.getBytes());
             }
-            List<String> sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
+            Global globalProps = prop.getGlobal();
+            if (globalProps != null && globalProps.getService() != null) {
+                String serviceInvariantUUID = globalProps.getService();
+                camelExchange.setProperty("serviceInvariantUUID", serviceInvariantUUID);
+            }
+            List<String> sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl);
             String sdcLocationsPayload = sdcReq.formatSdcLocationsReq(prop, artifactName);
-            String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
+            String locationArtifactName = (String) camelExchange.getProperty("controlName") + "-location.json";
             String formattedSdcLocationReq = sdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
                     locationArtifactLabel, locationArtifactType);
             if (formattedSdcLocationReq != null) {
-                execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
+                camelExchange.setProperty("formattedLocationReq", formattedSdcLocationReq.getBytes());
             }
             sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
                     artifactName, locationArtifactName);
         }
     }
-
-    /**
-     * Method to get sdc service values from properties file.
-     * 
-     * @param controlName
-     */
-    private void getSdcAttributes(String controlName) {
-        baseUrl = refProp.getStringValue("sdc.serviceUrl");
-        artifactLabel = sdcReq
-                .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
-        locationArtifactLabel = sdcReq
-                .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
-        artifactType = refProp.getStringValue("sdc.artifactType");
-        locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
-    }
 }
diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
index 035e64a..2657a03 100644
--- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,44 +28,46 @@
 
 import java.util.UUID;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.prop.Tca;
 import org.onap.clamp.clds.model.refprop.RefProp;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Send Tca info to policy api.
- *
- *
  */
-public class TcaPolicyDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class);
+@Component
+public class TcaPolicyDelegate {
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private RefProp                   refProp;
+    private RefProp refProp;
     @Autowired
-    private PolicyClient              policyClient;
+    private PolicyClient policyClient;
 
     /**
      * Perform activity. Send Tca info to policy api.
      *
-     * @param execution
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) throws Exception {
+    @Handler
+    public void execute(Exchange camelExchange) {
         String tcaPolicyRequestUuid = UUID.randomUUID().toString();
-        execution.setVariable("tcaPolicyRequestUuid", tcaPolicyRequestUuid);
-        ModelProperties prop = ModelProperties.create(execution);
+        camelExchange.setProperty("tcaPolicyRequestUuid", tcaPolicyRequestUuid);
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Tca tca = prop.getType(Tca.class);
         if (tca.isFound()) {
             String policyJson = TcaRequestFormatter.createPolicyJson(refProp, prop);
             String responseMessage = policyClient.sendMicroServiceInOther(policyJson, prop);
             if (responseMessage != null) {
-                execution.setVariable("tcaPolicyResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("tcaPolicyResponseMessage", responseMessage.getBytes());
             }
         }
     }
diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
index e88b720..c2aa303 100644
--- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,46 +23,44 @@
 
 package org.onap.clamp.clds.client;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
 import org.onap.clamp.clds.client.req.policy.PolicyClient;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.prop.Tca;
 import org.springframework.beans.factory.annotation.Autowired;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+import org.springframework.stereotype.Component;
 
 /**
  * Delete Tca Policy via policy api.
- *
- *
  */
-public class TcaPolicyDeleteDelegate implements JavaDelegate {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class);
-    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+@Component
+public class TcaPolicyDeleteDelegate {
 
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class);
+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    private PolicyClient            policyClient;
+    private PolicyClient policyClient;
 
     /**
      * Perform activity. Delete Tca Policy via policy api.
      *
-     * @param execution
+     * @param camelExchange
+     *            The Camel Exchange object containing the properties
      */
-    @Override
-    public void execute(DelegateExecution execution) throws Exception {
-
-        ModelProperties prop = ModelProperties.create(execution);
+    @Handler
+    public void execute(Exchange camelExchange) {
+        ModelProperties prop = ModelProperties.create(camelExchange);
         Tca tca = prop.getType(Tca.class);
         if (tca.isFound()) {
             prop.setCurrentModelElementId(tca.getId());
-
             String responseMessage = policyClient.deleteMicrosService(prop);
             if (responseMessage != null) {
-                execution.setVariable("tcaPolicyDeleteResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("tcaPolicyDeleteResponseMessage", responseMessage.getBytes());
             }
         }
     }
-
 }
diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
index b4cad94..0460033 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
@@ -57,23 +57,26 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
 
 /**
  * Policy utility methods - specifically, send the policy.
  */
+@Component
 public class PolicyClient {
-    protected static final String     POLICY_PREFIX_BASE            = "Config_";
-    protected static final String     LOG_POLICY_PREFIX             = "Response is ";
+
+    protected static final String POLICY_PREFIX_BASE = "Config_";
+    protected static final String LOG_POLICY_PREFIX = "Response is ";
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class);
-    protected static final EELFLogger metricsLogger                 = EELFManager.getInstance().getMetricsLogger();
-    protected static final String     POLICY_MSTYPE_PROPERTY_NAME   = "policy.ms.type";
-    protected static final String     POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name";
+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+    protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type";
+    protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name";
     @Value("${org.onap.clamp.config.files.cldsPolicyConfig:'classpath:/clds/clds-policy-config.properties'}")
-    protected String                  cldsPolicyConfigFile;
+    protected String cldsPolicyConfigFile;
     @Autowired
-    protected ApplicationContext      appContext;
+    protected ApplicationContext appContext;
     @Autowired
-    protected RefProp                 refProp;
+    protected RefProp refProp;
 
     /**
      * Perform BRMS policy type.
@@ -229,19 +232,19 @@
                 responseMessage = response.getResponseMessage();
             }
         } catch (Exception e) {
-        	LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
-        	LoggingUtils.setErrorContext("900", "Policy send error");
+            LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
+            LoggingUtils.setErrorContext("900", "Policy send error");
             logger.error("Exception occurred during policy communication", e);
             throw new PolicyClientException("Exception while communicating with Policy", e);
         }
         logger.info(LOG_POLICY_PREFIX + responseMessage);
         LoggingUtils.setTimeContext(startTime, new Date());
         if (response.getResponseCode() == 200) {
-        	LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName());
+            LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName());
             logger.info("Policy send successful");
             metricsLogger.info("Policy send success");
         } else {
-        	LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
+            LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
             logger.warn("Policy send failed: " + responseMessage);
             metricsLogger.info("Policy send failure");
             throw new BadRequestException("Policy send failed: " + responseMessage);
@@ -278,25 +281,25 @@
         PolicyChangeResponse response;
         String responseMessage = "";
         try {
-        	LoggingUtils.setTargetContext("Policy", "pushPolicy");
+            LoggingUtils.setTargetContext("Policy", "pushPolicy");
             logger.info("Attempting to push policy...");
             response = getPolicyEngine().pushPolicy(pushPolicyParameters);
             if (response != null) {
                 responseMessage = response.getResponseMessage();
             }
         } catch (Exception e) {
-        	LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
+            LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
             LoggingUtils.setErrorContext("900", "Policy push error");
             logger.error("Exception occurred during policy communication", e);
             throw new PolicyClientException("Exception while communicating with Policy", e);
         }
         logger.info(LOG_POLICY_PREFIX + responseMessage);
         if (response != null && (response.getResponseCode() == 200 || response.getResponseCode() == 204)) {
-        	LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName());
+            LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName());
             logger.info("Policy push successful");
             metricsLogger.info("Policy push success");
         } else {
-        	LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
+            LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
             logger.warn("Policy push failed: " + responseMessage);
             metricsLogger.info("Policy push failure");
             throw new BadRequestException("Policy push failed: " + responseMessage);
@@ -350,7 +353,7 @@
     private PolicyEngine getPolicyEngine() {
         PolicyEngine policyEngine;
         try {
-            policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getFile().getAbsolutePath());
+            policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getURL().getPath());
         } catch (IOException e1) {
             throw new PolicyClientException("Exception when opening policy config file", e1);
         } catch (PolicyEngineException e) {
@@ -399,7 +402,6 @@
      *
      * @param prop
      *            The ModelProperties
-     *
      * @return The response message from policy
      */
     protected String deletePolicy(ModelProperties prop, String policyType) {
diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
index 6684f1a..45dbf81 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
@@ -60,7 +60,6 @@
 import org.apache.http.HttpHeaders;

 import org.onap.clamp.clds.exception.SdcCommunicationException;

 import org.onap.clamp.clds.model.CldsAlarmCondition;

-import org.onap.clamp.clds.model.CldsDBServiceCache;

 import org.onap.clamp.clds.model.CldsSdcArtifact;

 import org.onap.clamp.clds.model.CldsSdcResource;

 import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;

@@ -76,23 +75,25 @@
 import org.onap.clamp.clds.util.CryptoUtils;

 import org.onap.clamp.clds.util.LoggingUtils;

 import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.stereotype.Component;

 

+@Component

 public class SdcCatalogServices {

 

     private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcCatalogServices.class);

     private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();

-    private static final String       RESOURCE_VF_TYPE              = "VF";

-    private static final String       RESOURCE_VFC_TYPE             = "VFC";

-    private static final String       RESOURCE_CVFC_TYPE            = "CVFC";

+    private static final String RESOURCE_VF_TYPE = "VF";

+    private static final String RESOURCE_VFC_TYPE = "VFC";

+    private static final String RESOURCE_CVFC_TYPE = "CVFC";

     private static final String SDC_REQUESTID_PROPERTY_NAME = "sdc.header.requestId";

-    private static final String       SDC_METADATA_URL_PREFIX       = "/metadata";

-    private static final String       SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";

-    private static final String       SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";

-    private static final String       SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";

-    private static final String       SDC_INSTANCE_ID_CLAMP         = "CLAMP-Tool";

-    private static final String       RESOURCE_URL_PREFIX           = "resources";

+    private static final String SDC_METADATA_URL_PREFIX = "/metadata";

+    private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";

+    private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";

+    private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";

+    private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool";

+    private static final String RESOURCE_URL_PREFIX = "resources";

     @Autowired

-    private RefProp                   refProp;

+    private RefProp refProp;

 

     /**

      * Return SDC id and pw as a HTTP Basic Auth string (for example: Basic

@@ -131,7 +132,7 @@
         LoggingUtils.setTargetContext("SDC", "getSdcServicesInformation");

         try {

             String url = baseUrl;

-            if (uuid != null) {

+            if (uuid != null && !uuid.isEmpty()) {

                 url = baseUrl + "/" + uuid + SDC_METADATA_URL_PREFIX;

             }

             URL urlObj = new URL(url);

@@ -142,7 +143,7 @@
             conn.setRequestProperty(refProp.getStringValue(SDC_REQUESTID_PROPERTY_NAME), LoggingUtils.getRequestId());

             conn.setRequestMethod("GET");

             String resp = getResponse(conn);

-            logger.info(resp);

+            logger.debug("Services list received from SDC:" + resp);

             // metrics log

             LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName());

             return resp;

@@ -333,7 +334,6 @@
         }

     }

 

-

     // upload artifact to sdc based on serviceUUID and resource name on url

     private String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) {

         // Verify whether it is triggered by Validation Test button from UI

@@ -422,23 +422,11 @@
         }

     }

 

-    public CldsDBServiceCache getCldsDbServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData) {

-        try {

-            CldsDBServiceCache cldsDbServiceCache = new CldsDBServiceCache();

-            cldsDbServiceCache.setCldsDataInstream(cldsServiceData);

-            cldsDbServiceCache.setInvariantId(cldsServiceData.getServiceInvariantUUID());

-            cldsDbServiceCache.setServiceId(cldsServiceData.getServiceUUID());

-            return cldsDbServiceCache;

-        } catch (IOException e) {

-            logger.error("Exception when getting service in cache", e);

-            throw new SdcCommunicationException("Exception when getting service in cache", e);

-        }

-    }

-

     /**

      * Check if the SDC Info in cache has expired.

      * 

      * @param cldsServiceData

+     *            The object representing the service data

      * @return boolean flag

      * @throws GeneralSecurityException

      *             In case of issues with the decryting the encrypted password

@@ -447,23 +435,25 @@
      */

     public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData)

             throws GeneralSecurityException, DecoderException {

-        boolean expired = false;

         if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) {

             String cachedServiceUuid = cldsServiceData.getServiceUUID();

             String latestServiceUuid = getServiceUuidFromServiceInvariantId(cldsServiceData.getServiceInvariantUUID());

-            String defaultRecordAge = refProp.getStringValue("CLDS_SERVICE_CACHE_MAX_SECONDS");

-            if ((!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null

-                    && cldsServiceData.getAgeOfRecord() > Long.parseLong(defaultRecordAge))) {

-                expired = true;

+            String configuredMaxAge = refProp.getStringValue("clds.service.cache.invalidate.after.seconds");

+            if (configuredMaxAge == null) {

+                logger.warn(

+                        "clds.service.cache.invalidate.after.seconds NOT set in clds-reference.properties file, taking 60s as default");

+                configuredMaxAge = "60";

             }

+            return (!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null

+                    && cldsServiceData.getAgeOfRecord() > Long.parseLong(configuredMaxAge));

         } else {

-            expired = true;

+            return true;

         }

-        return expired;

     }

 

     /**

-     * Get the Service Data with Alarm Conditions for a given invariantServiceUuid.

+     * Get the Service Data with Alarm Conditions for a given

+     * invariantServiceUuid.

      * 

      * @param invariantServiceUuid

      * @return The CldsServiceData

@@ -510,8 +500,7 @@
                     cldsServiceData.setCldsVfs(cldsVfDataList);

                     // For each vf in the list , add all vfc's

                     getAllVfcForVfList(cldsVfDataList, catalogUrl);

-                    logger.info("value of cldsServiceData:" + cldsServiceData);

-                    logger.info("value of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());

+                    logger.info("Invariant Service ID of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());

                 }

             }

         }

@@ -606,17 +595,17 @@
 

     private void handleVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {

         CldsVfcData currCldsVfcData = new CldsVfcData();

-                    TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");

-                    TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");

-                    currCldsVfcData.setVfcName(vfcResourceName.textValue());

-                    currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());

-                    cldsVfcDataList.add(currCldsVfcData);

+        TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");

+        TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");

+        currCldsVfcData.setVfcName(vfcResourceName.textValue());

+        currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());

+        cldsVfcDataList.add(currCldsVfcData);

     }

 

     private void handleCVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {

         handleVFCtypeNode(currVfcNode, cldsVfcDataList);

-                    cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));

-                }

+        cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));

+    }

 

     private List<CldsVfcData> getVFCfromCVFC(String resourceUUID) {

         String catalogUrl = refProp.getStringValue(SDC_CATALOG_URL_PROPERTY_NAME);

@@ -786,7 +775,6 @@
         cldsAlarmConditionList.add(cldsAlarmCondition);

     }

 

-

     // Get the responses for the current artifact from the artifacts URL.

     private String getResponsesFromArtifactUrl(String artifactsUrl) {

         String hostUrl = refProp.getStringValue("sdc.hostUrl");

@@ -802,9 +790,9 @@
      * Service to services/resources/artifacts from sdc.Pass alarmConditions as

      * true to get alarm conditons from artifact url and else it is false

      * 

-     * @param url The URL to trigger

+     * @param url

+     *            The URL to trigger

      * @return The String containing the payload

-     * 

      */

     public String getCldsServicesOrResourcesBasedOnURL(String url) {

         Date startTime = new Date();

@@ -832,12 +820,12 @@
             logger.error("Exception occurred during query to SDC", e);

             return "";

         } catch (DecoderException e) {

-        	LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());

+            LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Get sdc resources error");

             logger.error("Exception when attempting to decode the Hex string", e);

             throw new SdcCommunicationException("Exception when attempting to decode the Hex string", e);

         } catch (GeneralSecurityException e) {

-        	LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());

+            LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());

             LoggingUtils.setErrorContext("900", "Get sdc resources error");

             logger.error("Exception when attempting to decrypt the encrypted password", e);

             throw new SdcCommunicationException("Exception when attempting to decrypt the encrypted password", e);

@@ -901,7 +889,7 @@
             byIdObjectNode.putPOJO("byAlertDescription", alertDescObjectNodeByAlert);

             globalPropsJson = decodeGlobalProp(globalProps, mapper);

             globalPropsJson.putPOJO("shared", byIdObjectNode);

-            logger.info("value of objNode:" + globalPropsJson);

+            logger.info("Global properties JSON created with SDC info:" + globalPropsJson);

         } else {

             /**

              * to create json with total properties when no serviceUUID passed

diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
index d4b5b08..3fb53a3 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,8 +25,6 @@
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -42,7 +40,6 @@
 import java.util.Map.Entry;
 
 import org.apache.commons.codec.DecoderException;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter;
 import org.onap.clamp.clds.model.CldsSdcResource;
 import org.onap.clamp.clds.model.CldsSdcServiceDetail;
@@ -51,15 +48,20 @@
 import org.onap.clamp.clds.model.prop.Tca;
 import org.onap.clamp.clds.model.refprop.RefProp;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * Construct a Sdc request given CLDS objects.
  */
+@Component
 public class SdcReq {
-    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(SdcReq.class);
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
     @Autowired
-    protected RefProp                 refProp;
+    private SdcCatalogServices sdcCatalogServices;
+    @Autowired
+    protected RefProp refProp;
 
     /**
      * Format the Blueprint from a Yaml
@@ -68,17 +70,11 @@
      *            The ModelProperties describing the clds model
      * @param docText
      *            The Yaml file that must be converted
-     *
      * @return A String containing the BluePrint
-     * @throws JsonParseException
-     *             In case of issues
-     * @throws JsonMappingException
-     *             In case of issues
      * @throws IOException
      *             In case of issues
      */
-    public String formatBlueprint(ModelProperties prop, String docText)
-            throws JsonParseException, JsonMappingException, IOException {
+    public String formatBlueprint(ModelProperties prop, String docText) throws IOException {
         String yamlvalue = getYamlvalue(docText);
         String updatedBlueprint = "";
         Tca tca = prop.getType(Tca.class);
@@ -96,7 +92,6 @@
      *            The ModelProperties describing the clds model
      * @param artifactName
      *            The name of the artifact
-     *
      * @return SDC Locations request in the JSON Format
      */
     public String formatSdcLocationsReq(ModelProperties prop, String artifactName) {
@@ -127,11 +122,8 @@
      * @param artifactType
      *            The type of the artifact
      * @return formatted SDC Request
-     * @throws IOException
-     *             In case of issues
      */
-    public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType)
-            throws IOException {
+    public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType) {
         logger.info("artifact=" + payloadData);
         String base64Artifact = Base64.getEncoder().encodeToString(payloadData.getBytes(StandardCharsets.UTF_8));
         return "{ \n" + "\"payloadData\" : \"" + base64Artifact + "\",\n" + "\"artifactLabel\" : \"" + artifactLabel
@@ -144,46 +136,47 @@
      * To get List of urls for all vfresources
      *
      * @param prop
+     *            The model properties JSON describing the closed loop flow
      * @param baseUrl
-     * @param sdcCatalogServices
-     * @param execution
-     * @return
+     *            The URL to trigger
+     * @return A list of Service URL
      * @throws GeneralSecurityException
      *             In case of issues when decrypting the password
      * @throws DecoderException
      *             In case of issues when decoding the Hex String
      */
-    public List<String> getSdcReqUrlsList(ModelProperties prop, String baseUrl, SdcCatalogServices sdcCatalogServices,
-            DelegateExecution execution) throws GeneralSecurityException, DecoderException {
-        // TODO : refact and regroup with very similar code
+    public List<String> getSdcReqUrlsList(ModelProperties prop, String baseUrl)
+            throws GeneralSecurityException, DecoderException {
         List<String> urlList = new ArrayList<>();
         Global globalProps = prop.getGlobal();
-        if (globalProps != null) {
-            if (globalProps.getService() != null) {
-                String serviceInvariantUUID = globalProps.getService();
-                execution.setVariable("serviceInvariantUUID", serviceInvariantUUID);
-                List<String> resourceVfList = globalProps.getResourceVf();
-                String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
-                String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(serviceUUID);
-                CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices
-                        .getCldsSdcServiceDetailFromJson(sdcServicesInformation);
-                if (cldsSdcServiceDetail != null && resourceVfList != null) {
-                    List<CldsSdcResource> cldsSdcResourcesList = cldsSdcServiceDetail.getResources();
-                    if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) {
-                        for (CldsSdcResource CldsSdcResource : cldsSdcResourcesList) {
-                            if (CldsSdcResource != null && CldsSdcResource.getResoucreType() != null
-                                    && CldsSdcResource.getResoucreType().equalsIgnoreCase("VF")
-                                    && resourceVfList.contains(CldsSdcResource.getResourceInvariantUUID())) {
-                                String normalizedResourceInstanceName = normalizeResourceInstanceName(
-                                        CldsSdcResource.getResourceInstanceName());
-                                String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/"
-                                        + normalizedResourceInstanceName + "/artifacts";
-                                urlList.add(svcUrl);
-                            }
+        if (globalProps != null && globalProps.getService() != null) {
+            String serviceInvariantUUID = globalProps.getService();
+            List<String> resourceVfList = globalProps.getResourceVf();
+            String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
+            CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices
+                    .getCldsSdcServiceDetailFromJson(sdcCatalogServices.getSdcServicesInformation(serviceUUID));
+            if (cldsSdcServiceDetail != null && resourceVfList != null) {
+                List<CldsSdcResource> cldsSdcResourcesList = cldsSdcServiceDetail.getResources();
+                if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) {
+                    for (CldsSdcResource cldsSdcResource : cldsSdcResourcesList) {
+                        if (cldsSdcResource != null && cldsSdcResource.getResoucreType() != null
+                                && cldsSdcResource.getResoucreType().equalsIgnoreCase("VF")
+                                && resourceVfList.contains(cldsSdcResource.getResourceInvariantUUID())) {
+                            String normalizedResourceInstanceName = normalizeResourceInstanceName(
+                                    cldsSdcResource.getResourceInstanceName());
+                            String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/"
+                                    + normalizedResourceInstanceName + "/artifacts";
+                            urlList.add(svcUrl);
+                        } else {
+                            logger.warn("The VF Resource invariant UUID (" + cldsSdcResource.getResourceInvariantUUID()
+                                    + ") has not been found in the Service (Invariant ID:" + serviceInvariantUUID
+                                    + ")VF resource list");
                         }
                     }
                 }
             }
+        } else {
+            logger.warn("GlobalProperties json is empty, skipping getSdcReqUrlsList and returning empty list");
         }
         return urlList;
     }
@@ -201,16 +194,18 @@
     }
 
     /**
-     * Method to get yaml/template properties value from json
+     * Method to get yaml/template properties value from json.
      *
-     * @param docText
-     * @return
+     * @param jsonGlobal
+     *            The Json containing a Yaml file
+     * @return The yaml extracted from the JSON
      * @throws IOException
+     *             In case of issues with the Json parser
      */
-    public String getYamlvalue(String docText) throws IOException {
+    protected String getYamlvalue(String jsonGlobal) throws IOException {
         ObjectMapper objectMapper = new ObjectMapper();
         String yamlFileValue = "";
-        ObjectNode root = objectMapper.readValue(docText, ObjectNode.class);
+        ObjectNode root = objectMapper.readValue(jsonGlobal, ObjectNode.class);
         Iterator<Entry<String, JsonNode>> entryItr = root.fields();
         while (entryItr.hasNext()) {
             Entry<String, JsonNode> entry = entryItr.next();
diff --git a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java
deleted file mode 100644
index 3790e23..0000000
--- a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*-
- * ============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.config;
-
-import java.security.GeneralSecurityException;
-
-import javax.sql.DataSource;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-
-@Configuration
-public class CamundaEngineConfiguration {
-    /**
-     * Camunda Identity database DataSource configuration
-     * 
-     * @return
-     * @throws GeneralSecurityException
-     *             In case of issue during the decoding of the password
-     */
-    @Primary
-    @Bean(name = "camundaBpmDataSource")
-    @ConfigurationProperties(prefix = "spring.datasource.camunda")
-    public DataSource dataSource() {
-        return new EncodedPasswordBasicDataSource();
-    }
-}
diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
index b99d3a9..ae97041 100644
--- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
@@ -26,21 +26,7 @@
 import javax.sql.DataSource;
 import javax.xml.transform.TransformerConfigurationException;
 
-import org.onap.clamp.clds.client.CldsEventDelegate;
-import org.onap.clamp.clds.client.DcaeDispatcherServices;
-import org.onap.clamp.clds.client.DcaeInventoryServices;
-import org.onap.clamp.clds.client.HolmesPolicyDelegate;
-import org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.OperationalPolicyDelegate;
-import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.SdcSendReqDelegate;
-import org.onap.clamp.clds.client.TcaPolicyDelegate;
-import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.req.policy.PolicyClient;
-import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
-import org.onap.clamp.clds.client.req.sdc.SdcReq;
 import org.onap.clamp.clds.dao.CldsDao;
-import org.onap.clamp.clds.model.refprop.RefProp;
 import org.onap.clamp.clds.transform.XslTransformer;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.config.PropertiesFactoryBean;
@@ -85,74 +71,4 @@
         xslTransformer.setXslResourceName("xsl/clds-bpmn-transformer.xsl");
         return xslTransformer;
     }
-
-    @Bean
-    public RefProp getRefProp() {
-        return new RefProp();
-    }
-
-    @Bean
-    public SdcReq getSdcReq() {
-        return new SdcReq();
-    }
-
-    @Bean
-    public PolicyClient getPolicyClient() {
-        return new PolicyClient();
-    }
-
-    @Bean(name = "cldsEventDelegate")
-    public CldsEventDelegate getCldsEventDelegate() {
-        return new CldsEventDelegate();
-    }
-
-    @Bean(name = "sdcSendReqDelegate")
-    public SdcSendReqDelegate getSdcSendReqDelegate() {
-        return new SdcSendReqDelegate();
-    }
-
-    @Bean(name = "operationalPolicyDelegate")
-    public OperationalPolicyDelegate getOperationalPolicyDelegate() {
-        return new OperationalPolicyDelegate();
-    }
-
-    @Bean(name = "operationalPolicyDeleteDelegate")
-    public OperationalPolicyDeleteDelegate getOperationalPolicyDeleteDelegate() {
-        return new OperationalPolicyDeleteDelegate();
-    }
-
-    @Bean(name = "sdcCatalogServices")
-    public SdcCatalogServices getSdcCatalogServices() {
-        return new SdcCatalogServices();
-    }
-
-    @Bean(name = "dcaeDispatcherServices")
-    public DcaeDispatcherServices getDcaeDispatcherServices() {
-        return new DcaeDispatcherServices();
-    }
-
-    @Bean(name = "dcaeInventoryServices")
-    public DcaeInventoryServices getDcaeInventoryServices() {
-        return new DcaeInventoryServices();
-    }
-
-    @Bean(name = "tcaPolicyDelegate")
-    public TcaPolicyDelegate getTcaPolicyDelegate() {
-        return new TcaPolicyDelegate();
-    }
-
-    @Bean(name = "tcaPolicyDeleteDelegate")
-    public TcaPolicyDeleteDelegate getTcaPolicyDeleteDelegate() {
-        return new TcaPolicyDeleteDelegate();
-    }
-
-    @Bean(name = "holmesPolicyDelegate")
-    public HolmesPolicyDelegate getHolmesPolicyDelegate() {
-        return new HolmesPolicyDelegate();
-    }
-
-    @Bean(name = "holmesPolicyDeleteDelegate")
-    public HolmesPolicyDeleteDelegate getHolmesPolicyDeleteDelegate() {
-        return new HolmesPolicyDeleteDelegate();
-    }
 }
\ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java
new file mode 100644
index 0000000..3a6a816
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2018 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.exception;
+
+/**
+ * New exception to CldsDelegate errors.
+ */
+public class CldsDelegateException extends RuntimeException {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -2705212640916671093L;
+
+    /**
+     * This constructor can be used to create a new CldsDelegateException.
+     * 
+     * @param message
+     *            A string message detailing the problem
+     * @param e
+     *            The exception sent by the code
+     */
+    public CldsDelegateException(String message, Throwable e) {
+        super(message, e);
+    }
+
+    /**
+     * This constructor can be used to create a new CldsDelegateException. Use
+     * this constructor only if you are creating a new exception stack, not if
+     * an exception was already raised by another code.
+     *
+     * @param message
+     *            A string message detailing the problem
+     */
+    public CldsDelegateException(String message) {
+        super(message);
+    }
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
index fae5e58..dca93e4 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,7 +25,6 @@
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -37,7 +36,7 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.apache.camel.Exchange;
 import org.onap.clamp.clds.exception.ModelBpmnException;
 import org.onap.clamp.clds.model.CldsEvent;
 import org.onap.clamp.clds.model.CldsModel;
@@ -47,22 +46,21 @@
  * Parse model properties.
  */
 public class ModelProperties {
-    protected static final EELFLogger                                 logger              = EELFManager.getInstance()
-            .getLogger(CldsService.class);
-    protected static final EELFLogger                                 auditLogger         = EELFManager.getInstance()
-            .getAuditLogger();
-    private ModelBpmn                                                 modelBpmn;
-    private JsonNode                                                  modelJson;
-    private final String                                              modelName;
-    private final String                                              controlName;
-    private final String                                              actionCd;
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsService.class);
+    protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+    private ModelBpmn modelBpmn;
+    private JsonNode modelJson;
+    private final String modelName;
+    private final String controlName;
+    private final String actionCd;
     // Flag indicate whether it is triggered by Validation Test button from UI
-    private final boolean                                             testOnly;
-    private Global                                                    global;
-    private final Map<String, AbstractModelElement>                   modelElements       = new ConcurrentHashMap<>();
-    private String                                                    currentModelElementId;
-    private String                                                    policyUniqueId;
-    private static final Object                                       lock                = new Object();
+    private final boolean testOnly;
+    private Global global;
+    private final Map<String, AbstractModelElement> modelElements = new ConcurrentHashMap<>();
+    private String currentModelElementId;
+    private String policyUniqueId;
+    private static final Object lock = new Object();
     private static Map<Class<? extends AbstractModelElement>, String> modelElementClasses = new ConcurrentHashMap<>();
     static {
         synchronized (lock) {
@@ -107,11 +105,9 @@
 
     /**
      * This method is meant to ensure that one ModelElement instance exists for
-     * each ModelElement class.
-     *
-     * As new ModelElement classes could have been registered after
-     * instantiation of this ModelProperties, we need to build the missing
-     * ModelElement instances.
+     * each ModelElement class. As new ModelElement classes could have been
+     * registered after instantiation of this ModelProperties, we need to build
+     * the missing ModelElement instances.
      */
     private final void instantiateMissingModelElements() {
         if (modelElementClasses.size() != modelElements.size()) {
@@ -160,20 +156,21 @@
     }
 
     /**
-     * Create ModelProperties for Camunda Delegate.
+     * Create ModelProperties extracted from a CamelExchange.
      *
-     * @param execution
-     * @return
-     * @throws JsonProcessingException
-     * @throws IOException
+     * @param camelExchange
+     *            The camel Exchange object that contains all info provided to
+     *            the flow
+     * @return A model Properties created from the parameters found in
+     *         camelExchange object
      */
-    public static ModelProperties create(DelegateExecution execution) {
-        String modelProp = new String((byte[]) execution.getVariable("modelProp"));
-        String modelBpmnProp = (String) execution.getVariable("modelBpmnProp");
-        String modelName = (String) execution.getVariable("modelName");
-        String controlName = (String) execution.getVariable("controlName");
-        String actionCd = (String) execution.getVariable("actionCd");
-        boolean isTest = (boolean) execution.getVariable("isTest");
+    public static ModelProperties create(Exchange camelExchange) {
+        String modelProp = (String) camelExchange.getProperty("modelProp");
+        String modelBpmnProp = (String) camelExchange.getProperty("modelBpmnProp");
+        String modelName = (String) camelExchange.getProperty("modelName");
+        String controlName = (String) camelExchange.getProperty("controlName");
+        String actionCd = (String) camelExchange.getProperty("actionCd");
+        boolean isTest = (boolean) camelExchange.getProperty("isTest");
         return new ModelProperties(modelName, controlName, actionCd, isTest, modelBpmnProp, modelProp);
     }
 
diff --git a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
index 5965a41..f0cf71c 100644
--- a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
+++ b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,18 +25,22 @@
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.annotation.PostConstruct;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.io.Resource;
-
-import javax.annotation.PostConstruct;
-import java.io.IOException;
-import java.util.Properties;
+import org.springframework.stereotype.Component;
 
 /**
  * Holds reference properties.
  */
+@Component
 public class RefProp {
 
     @Autowired
@@ -103,5 +107,4 @@
         ObjectMapper objectMapper = new ObjectMapper();
         return objectMapper.readValue(getStringValue(key1, key2), JsonNode.class);
     }
-
 }
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java
index 1238236..a139de1 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java
@@ -56,11 +56,11 @@
 import javax.ws.rs.core.MediaType;
 import javax.xml.transform.TransformerException;
 
+import org.apache.camel.Produce;
 import org.apache.commons.codec.DecoderException;
 import org.apache.commons.lang3.StringUtils;
-import org.camunda.bpm.engine.RuntimeService;
-import org.camunda.bpm.engine.runtime.ProcessInstance;
 import org.json.simple.parser.ParseException;
+import org.onap.clamp.clds.camel.CamelProxy;
 import org.onap.clamp.clds.client.DcaeDispatcherServices;
 import org.onap.clamp.clds.client.DcaeInventoryServices;
 import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
@@ -101,6 +101,8 @@
 @Path("/clds")
 public class CldsService extends SecureServiceBase {
 
+    @Produce(uri = "direct:processSubmit")
+    private CamelProxy camelProxy;
     protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger();
     @Autowired
     private ApplicationContext appContext;
@@ -138,8 +140,6 @@
     @Autowired
     private CldsDao cldsDao;
     @Autowired
-    private RuntimeService runtimeService;
-    @Autowired
     private XslTransformer cldsBpmnTransformer;
     @Autowired
     private RefProp refProp;
@@ -410,7 +410,7 @@
                 cldsPermissionInstance, actionCd);
         isAuthorized(permisionManage);
         isAuthorizedForVf(model);
-        String userid = getUserId();
+        String userId = getUserId();
         String actionStateCd = CldsEvent.ACTION_STATE_INITIATED;
         String processDefinitionKey = "clds-process-action-wf";
         logger.info("PUT actionCd={}", actionCd);
@@ -420,7 +420,7 @@
         logger.info("PUT test={}", test);
         logger.info("PUT bpmnText={}", model.getBpmnText());
         logger.info("PUT propText={}", model.getPropText());
-        logger.info("PUT userid={}", userid);
+        logger.info("PUT userId={}", userId);
         logger.info("PUT getTypeId={}", model.getTypeId());
         logger.info("PUT deploymentId={}", model.getDeploymentId());
         if (model.getTemplateName() != null) {
@@ -462,7 +462,7 @@
         logger.info("PUT isInsertTestEvent={}", isInsertTestEvent);
         // determine if requested action is permitted
         model.validateAction(actionCd);
-        // input variables to camunda process
+        // input variables for Camel process
         Map<String, Object> variables = new HashMap<>();
         variables.put("actionCd", actionCd);
         variables.put("modelProp", prop.getBytes());
@@ -471,18 +471,18 @@
         variables.put("controlName", controlName);
         variables.put("docText", docText.getBytes());
         variables.put("isTest", isTest);
-        variables.put("userid", userid);
+        variables.put("userid", userId);
         variables.put("isInsertTestEvent", isInsertTestEvent);
         logger.info("modelProp - " + prop);
         logger.info("docText - " + docText);
+        // ModelProperties modelProperties = new ModelProperties(modelName,
+        // controlName, actionCd, isTest, modelBpmnProp, modelProp);
         try {
-            // start camunda process
-            ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
-            // log process info
-            logger.info("Started processDefinitionId={}, processInstanceId={}", pi.getProcessDefinitionId(),
-                    pi.getProcessInstanceId());
+            String result = camelProxy.submit(actionCd, prop, bpmnJson, modelName, controlName, docText, isTest, userId,
+                    isInsertTestEvent);
+            logger.info("Starting Camel flow on request, result is: ", result);
         } catch (SdcCommunicationException | PolicyClientException | BadRequestException e) {
-            logger.error("Exception occured during invoking bpmn process", e);
+            logger.error("Exception occured during invoking Camel process", e);
             throw new CldsConfigException(e.getMessage(), e);
         }
         // refresh model info from db (get fresh event info)
@@ -605,39 +605,26 @@
      *             In case of issues with the decryting the encrypted password
      * @throws DecoderException
      *             In case of issues with the decoding of the Hex String
+     * @throws IOException
+     *             In case of issue to convert CldsServiceCache to InputStream
      */
     @GET
     @Path("/properties/{serviceInvariantUUID}")
     @Produces(MediaType.APPLICATION_JSON)
     public String getSdcPropertiesByServiceUUIDForRefresh(
             @PathParam("serviceInvariantUUID") String serviceInvariantUUID,
-            @DefaultValue("false") @QueryParam("refresh") String refresh)
-            throws GeneralSecurityException, DecoderException {
+            @DefaultValue("false") @QueryParam("refresh") boolean refresh)
+            throws GeneralSecurityException, DecoderException, IOException {
         Date startTime = new Date();
         LoggingUtils.setRequestContext("CldsService: GET sdc properties by uuid", getPrincipalName());
         CldsServiceData cldsServiceData = new CldsServiceData();
         cldsServiceData.setServiceInvariantUUID(serviceInvariantUUID);
-        boolean isCldsSdcDataExpired = true;
-        // To getcldsService information from database cache using invariantUUID
-        // only when refresh = false
-        if (refresh != null && refresh.equalsIgnoreCase("false")) {
-            cldsServiceData = cldsServiceData.getCldsServiceCache(cldsDao, serviceInvariantUUID);
-            // If cldsService is available in database Cache , verify is data
-            // expired or not
-            if (cldsServiceData != null) {
-                isCldsSdcDataExpired = sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData);
-            }
+        if (!refresh) {
+            cldsServiceData = cldsDao.getCldsServiceCache(serviceInvariantUUID);
         }
-        // If user Requested for refresh or database cache expired , get all
-        // data from sdc api.
-        if ((refresh != null && refresh.equalsIgnoreCase("true")) || isCldsSdcDataExpired) {
+        if (sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData)) {
             cldsServiceData = sdcCatalogServices.getCldsServiceDataWithAlarmConditions(serviceInvariantUUID);
-            CldsDBServiceCache cldsDBServiceCache = sdcCatalogServices
-                    .getCldsDbServiceCacheUsingCldsServiceData(cldsServiceData);
-            if (cldsDBServiceCache != null && cldsDBServiceCache.getInvariantId() != null
-                    && cldsDBServiceCache.getServiceId() != null) {
-                cldsServiceData.setCldsServiceCache(cldsDao, cldsDBServiceCache);
-            }
+            cldsDao.setCldsServiceCache(new CldsDBServiceCache(cldsServiceData));
         }
         // filter out VFs the user is not authorized for
         cldsServiceData.filterVfs(this);
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsUser.java b/src/main/java/org/onap/clamp/clds/service/CldsUser.java
index 3dfeaeb..fa7a738 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsUser.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsUser.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License"); 
@@ -29,9 +29,8 @@
  * The class represents the CldsUser that can be extracted from cldsusers.json.
  */
 public class CldsUser {
-
-    private String user;
-    private String password;
+    private String                    user;
+    private String                    password;
     private SecureServicePermission[] permissions;
 
     /**
diff --git a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java
similarity index 78%
rename from src/main/java/org/onap/clamp/clds/service/JerseyConfig.java
rename to src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java
index 0ffe410..d6e74ae 100644
--- a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java
+++ b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java
@@ -23,19 +23,12 @@
 
 package org.onap.clamp.clds.service;
 
-import org.glassfish.jersey.server.ResourceConfig;
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
 import org.springframework.stereotype.Component;
 
 @Component
-public class JerseyConfig extends ResourceConfig {
-
-    public JerseyConfig() {
-        registerEndpoints();
-    }
-
-    private void registerEndpoints() {
-        register(CldsService.class);
-        register(UserService.class);
-        register(CldsTemplateService.class);
-    }
+@ApplicationPath("/restservices/clds/v1")
+public class JaxrsApplication extends Application {
 }
\ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java b/src/main/java/org/onap/clamp/clds/util/LogMessages.java
similarity index 66%
copy from src/main/java/org/onap/clamp/clds/service/JerseyConfig.java
copy to src/main/java/org/onap/clamp/clds/util/LogMessages.java
index 0ffe410..8088786 100644
--- a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java
+++ b/src/main/java/org/onap/clamp/clds/util/LogMessages.java
@@ -2,40 +2,34 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 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.
+ * 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
+ * 
+ * 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.service;
+package org.onap.clamp.clds.util;
 
-import org.glassfish.jersey.server.ResourceConfig;
-import org.springframework.stereotype.Component;
+import com.att.eelf.i18n.EELFResolvableErrorEnum;
+import com.att.eelf.i18n.EELFResourceManager;
 
-@Component
-public class JerseyConfig extends ResourceConfig {
+public enum LogMessages implements EELFResolvableErrorEnum {
+    LOGSERVICE_HELLO_MESSAGE, LOGSERVICE_EMAIL_ERROR, LOGSERVICE_EMAIL_CLASS, LOGSERVICE_EMAIL_CLASS_NULL, PROCESS_INSTANCE_ID;
 
-    public JerseyConfig() {
-        registerEndpoints();
+    static {
+        EELFResourceManager.loadMessageBundle("logmessages");
     }
-
-    private void registerEndpoints() {
-        register(CldsService.class);
-        register(UserService.class);
-        register(CldsTemplateService.class);
-    }
-}
\ No newline at end of file
+}
diff --git a/src/main/resources/META-INF/processes.xml b/src/main/resources/META-INF/processes.xml
deleted file mode 100644
index 921a102..0000000
--- a/src/main/resources/META-INF/processes.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ============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.
-  -->
-
-<process-application
-	xmlns="http://www.camunda.org/schema/1.0/ProcessApplication" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-	<process-archive name="clds-process-archive">
-		<process-engine>default</process-engine>
-		<resource>bpmn/clds-process-action.bpmn</resource>
-		<properties>
-			<property name="isDeleteUponUndeploy">true</property>
-			<property name="isScanForProcessDefinitions">false</property>
-		</properties>
-	</process-archive>
-
-</process-application>
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1db0875..dd4ea6d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -62,8 +62,6 @@
 

 server.contextPath=/

 #Modified engine-rest applicationpath

-#camel.component.servlet.mapping.context-path=/restservices/clds/v1/*

-spring.jersey.application-path=/restservices/clds/v1

 spring.profiles.active=clamp-default,clamp-spring-authentication

 

 #The max number of active threads in this pool

@@ -78,34 +76,15 @@
 

 camel.springboot.consumer-template-cache-size=1000

 camel.springboot.producer-template-cache-size=1000

-camel.springboot.jmx-enabled=true

+camel.springboot.jmx-enabled=false

 camel.defaultthreadpool.poolsize=10

 camel.defaultthreadpool.maxpoolsize=20

 camel.defaultthreadpool.maxqueuesize=1000

 camel.defaultthreadpool.keepaliveTime=60

 camel.defaultthreadpool.rejectpolicy=CallerRuns

-

-#server.port=0

-#Camunda Process Engine DataSource connection Details

-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver

-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647

-spring.datasource.camunda.username=camunda

-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e

-spring.datasource.camunda.validationQuery=SELECT 1

-spring.datasource.camunda.validationQueryTimeout=20000

-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.database.type=mariadb

-camunda.bpm.database.schema-update=true

+#camel.springboot.xmlRoutes = false

+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml

+#camel.springboot.typeConversion = false

 

 #clds datasource connection details

 spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver

diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn
deleted file mode 100644
index 11edc07..0000000
--- a/src/main/resources/bpmn/clds-process-action.bpmn
+++ /dev/null
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_-A31MBMpEea185sFktMJ7Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
-  <bpmn2:collaboration id="_Collaboration_2">
-    <bpmn2:participant id="_Participant_2" name="Process Action" processRef="clds-process-action-wf" />
-  </bpmn2:collaboration>
-  <bpmn2:process id="clds-process-action-wf" name="CLDS Process Action Workflow" isExecutable="true">
-    <bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
-      <bpmn2:lane id="Lane_1" name="Submit or Resubmit">
-        <bpmn2:flowNodeRef>ExclusiveGateway_2</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>EndEvent_1</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>insEvent</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>ExclusiveGateway_3</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendOpPolicyReqDistribute</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>ServiceTask_0x8ypxf</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendTcaReqDistribute</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendHolmesReqDistribute</bpmn2:flowNodeRef>
-      </bpmn2:lane>
-      <bpmn2:lane id="Lane_5" name="Delete">
-        <bpmn2:flowNodeRef>sendTcaReqDelete</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendOpPolicyReqDelete</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendHolmesReqDelete</bpmn2:flowNodeRef>
-      </bpmn2:lane>
-      <bpmn2:lane id="Lane_4" name="Update">
-        <bpmn2:flowNodeRef>sendOpPolicyReqUpdate</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendTcaReqUpdate</bpmn2:flowNodeRef>
-        <bpmn2:flowNodeRef>sendHolmesReqUpdate</bpmn2:flowNodeRef>
-      </bpmn2:lane>
-      <bpmn2:lane id="Lane_6" name="Stop">
-        <bpmn2:flowNodeRef>sendOpPolicyReqStop</bpmn2:flowNodeRef>
-      </bpmn2:lane>
-      <bpmn2:lane id="Lane_7" name="Restart">
-        <bpmn2:flowNodeRef>sendOpPolicyReqRestart</bpmn2:flowNodeRef>
-      </bpmn2:lane>
-    </bpmn2:laneSet>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_2">
-      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_27</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_31</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_1xlfq66</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ExclusiveGateway_2" targetRef="ServiceTask_0x8ypxf">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'SUBMIT' || actionCd == 'RESUBMIT' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:endEvent id="EndEvent_1">
-      <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
-    </bpmn2:endEvent>
-    <bpmn2:serviceTask id="insEvent" name="Insert Event to indicate that the action was completed" camunda:delegateExpression="${cldsEventDelegate}">
-      <bpmn2:extensionElements>
-        <camunda:inputOutput>
-          <camunda:inputParameter name="actionStateCd">SENT</camunda:inputParameter>
-        </camunda:inputOutput>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_16" name="" sourceRef="insEvent" targetRef="EndEvent_1" />
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_3">
-      <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_28</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_30</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_32</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ExclusiveGateway_3" targetRef="insEvent" />
-    <bpmn2:serviceTask id="sendOpPolicyReqDistribute" name="Send Operation Policy Request [Submit]" camunda:delegateExpression="${operationalPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_1tu9g11</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="sendOpPolicyReqDistribute" targetRef="ExclusiveGateway_3" />
-    <bpmn2:serviceTask id="sendOpPolicyReqUpdate" name="Send Operation Policy Request [Update]" camunda:delegateExpression="${operationalPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_0ejpmee</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqUpdate">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'UPDATE' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_28" name="" sourceRef="sendOpPolicyReqUpdate" targetRef="ExclusiveGateway_3" />
-    <bpmn2:serviceTask id="sendOpPolicyReqStop" name="Send Operation Policy Request [Stop]" camunda:delegateExpression="${operationalPolicyDeleteDelegate}">
-      <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="ExclusiveGateway_2" targetRef="sendOpPolicyReqStop">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'STOP' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_30" name="" sourceRef="sendOpPolicyReqStop" targetRef="ExclusiveGateway_3" />
-    <bpmn2:serviceTask id="sendOpPolicyReqRestart" name="Send Operation Policy Request [Restart]" camunda:delegateExpression="${operationalPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_31</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_32</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_31" name="" sourceRef="ExclusiveGateway_2" targetRef="sendOpPolicyReqRestart">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'RESTART' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_32" name="" sourceRef="sendOpPolicyReqRestart" targetRef="ExclusiveGateway_3" />
-    <bpmn2:startEvent id="StartEvent_1">
-      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
-    </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="ExclusiveGateway_2" />
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="sendOpPolicyReqDelete" targetRef="ExclusiveGateway_3" />
-    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqDelete">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'DELETE' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0w39hon" sourceRef="ServiceTask_0x8ypxf" targetRef="sendTcaReqDistribute" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1xlfq66" sourceRef="ExclusiveGateway_2" targetRef="ServiceTask_0x8ypxf">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'SUBMIT' || actionCd == 'RESUBMIT' }]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:serviceTask id="ServiceTask_0x8ypxf" name="Send to SDC [Submit]" camunda:delegateExpression="${sdcSendReqDelegate}">
-      <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_1xlfq66</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0w39hon</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1rga27p" sourceRef="sendTcaReqDistribute" targetRef="sendHolmesReqDistribute" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0tpegxf" sourceRef="sendTcaReqDelete" targetRef="sendHolmesReqDelete" />
-    <bpmn2:serviceTask id="sendTcaReqDelete" name="Send Tca Micro Service request to Policy [Delete]" camunda:delegateExpression="${tcaPolicyDeleteDelegate}">
-      <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0tpegxf</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1kegg6u" sourceRef="sendTcaReqUpdate" targetRef="sendHolmesReqUpdate" />
-    <bpmn2:serviceTask id="sendTcaReqDistribute" name="Send Tca Micro Service request to Policy [Submit]" camunda:delegateExpression="${tcaPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_0w39hon</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1rga27p</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1tu9g11" sourceRef="sendHolmesReqDistribute" targetRef="sendOpPolicyReqDistribute" />
-    <bpmn2:serviceTask id="sendHolmesReqDistribute" name="Send Holmes Micro Service request to Policy [Submit]" camunda:delegateExpression="${holmesPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_1rga27p</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1tu9g11</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:serviceTask id="sendOpPolicyReqDelete" name="Send Operation Policy Request [Delete]" camunda:delegateExpression="${operationalPolicyDeleteDelegate}">
-      <bpmn2:incoming>SequenceFlow_1mtizad</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:serviceTask id="sendHolmesReqDelete" name="Send Holmes Micro Service request to Policy [Delete]" camunda:delegateExpression="${holmesPolicyDeleteDelegate}">
-      <bpmn2:incoming>SequenceFlow_0tpegxf</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1mtizad</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1mtizad" sourceRef="sendHolmesReqDelete" targetRef="sendOpPolicyReqDelete" />
-    <bpmn2:serviceTask id="sendTcaReqUpdate" name="Send Tca Micro Service request to Policy [Update]" camunda:delegateExpression="${tcaPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1kegg6u</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:serviceTask id="sendHolmesReqUpdate" name="Send Holmes Micro Service request to Policy [Update]" camunda:delegateExpression="${holmesPolicyDelegate}">
-      <bpmn2:incoming>SequenceFlow_1kegg6u</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0ejpmee</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_0ejpmee" sourceRef="sendHolmesReqUpdate" targetRef="sendOpPolicyReqUpdate" />
-  </bpmn2:process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="_Collaboration_2">
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_4" bpmnElement="StartEvent_1">
-        <dc:Bounds x="72" y="220" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="90" y="261" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_104" bpmnElement="EndEvent_1">
-        <dc:Bounds x="1320" y="216" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1338" y="257" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_6" bpmnElement="sendOpPolicyReqDistribute">
-        <dc:Bounds x="912" y="89" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_7" bpmnElement="insEvent">
-        <dc:Bounds x="1188" y="194" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_ServiceTask_7" targetElement="_BPMNShape_EndEvent_104">
-        <di:waypoint xsi:type="dc:Point" x="1288" y="234" />
-        <di:waypoint xsi:type="dc:Point" x="1320" y="234" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1295" y="234" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_Participant_2" bpmnElement="_Participant_2" isHorizontal="true">
-        <dc:Bounds x="0" y="0" width="1369" height="833" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_Lane_2" bpmnElement="Lane_1" isHorizontal="true">
-        <dc:Bounds x="30" y="0" width="1339" height="289" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_Lane_6" bpmnElement="Lane_5" isHorizontal="true">
-        <dc:Bounds x="30" y="288" width="1339" height="197" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_3" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
-        <dc:Bounds x="144" y="212" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="169" y="267" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_4" targetElement="_BPMNShape_ExclusiveGateway_3">
-        <di:waypoint xsi:type="dc:Point" x="108" y="238" />
-        <di:waypoint xsi:type="dc:Point" x="126" y="238" />
-        <di:waypoint xsi:type="dc:Point" x="126" y="237" />
-        <di:waypoint xsi:type="dc:Point" x="144" y="237" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="128" y="237" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_4" bpmnElement="ExclusiveGateway_3" isMarkerVisible="true">
-        <dc:Bounds x="1104" y="208" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1129" y="263" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ExclusiveGateway_4" targetElement="_BPMNShape_ServiceTask_7">
-        <di:waypoint xsi:type="dc:Point" x="1154" y="233" />
-        <di:waypoint xsi:type="dc:Point" x="1188" y="234" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1175" y="234" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ServiceTask_6" targetElement="_BPMNShape_ExclusiveGateway_4">
-        <di:waypoint xsi:type="dc:Point" x="1012" y="130" />
-        <di:waypoint xsi:type="dc:Point" x="1057" y="130" />
-        <di:waypoint xsi:type="dc:Point" x="1057" y="233" />
-        <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1027" y="178.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_12" bpmnElement="sendOpPolicyReqDelete">
-        <dc:Bounds x="831" y="385" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_Lane_9" bpmnElement="Lane_4" isHorizontal="true">
-        <dc:Bounds x="30" y="484" width="1339" height="117" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_15" bpmnElement="sendOpPolicyReqUpdate">
-        <dc:Bounds x="912" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_08pqhb3_di">
-        <di:waypoint xsi:type="dc:Point" x="169" y="262" />
-        <di:waypoint xsi:type="dc:Point" x="169" y="540" />
-        <di:waypoint xsi:type="dc:Point" x="496" y="540" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="139" y="398" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_28" sourceElement="_BPMNShape_ServiceTask_15" targetElement="_BPMNShape_ExclusiveGateway_4">
-        <di:waypoint xsi:type="dc:Point" x="1012" y="539" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="538" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="233" />
-        <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1028" y="382.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_Lane_10" bpmnElement="Lane_6" isHorizontal="true">
-        <dc:Bounds x="30" y="600" width="1339" height="117" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_16" bpmnElement="sendOpPolicyReqStop">
-        <dc:Bounds x="912" y="619" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_29" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_16">
-        <di:waypoint xsi:type="dc:Point" x="169" y="262" />
-        <di:waypoint xsi:type="dc:Point" x="169" y="659" />
-        <di:waypoint xsi:type="dc:Point" x="912" y="659" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="139" y="457.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_30" bpmnElement="SequenceFlow_30" sourceElement="_BPMNShape_ServiceTask_16" targetElement="_BPMNShape_ExclusiveGateway_4">
-        <di:waypoint xsi:type="dc:Point" x="1012" y="658" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="658" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="233" />
-        <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1028" y="442.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_Lane_11" bpmnElement="Lane_7" isHorizontal="true">
-        <dc:Bounds x="30" y="716" width="1339" height="117" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_17" bpmnElement="sendOpPolicyReqRestart">
-        <dc:Bounds x="912" y="735" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_31" bpmnElement="SequenceFlow_31" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_17">
-        <di:waypoint xsi:type="dc:Point" x="169" y="262" />
-        <di:waypoint xsi:type="dc:Point" x="169" y="775" />
-        <di:waypoint xsi:type="dc:Point" x="912" y="775" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="139" y="515.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_32" bpmnElement="SequenceFlow_32" sourceElement="_BPMNShape_ServiceTask_17" targetElement="_BPMNShape_ExclusiveGateway_4">
-        <di:waypoint xsi:type="dc:Point" x="1012" y="775" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="775" />
-        <di:waypoint xsi:type="dc:Point" x="1058" y="234" />
-        <di:waypoint xsi:type="dc:Point" x="1105" y="234" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1028" y="501.5" width="90" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_0y2gwy4_di">
-        <di:waypoint xsi:type="dc:Point" x="169" y="262" />
-        <di:waypoint xsi:type="dc:Point" x="169" y="425" />
-        <di:waypoint xsi:type="dc:Point" x="496" y="425" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="139" y="333.5" width="90" height="20" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_0x8ypxf_di" bpmnElement="ServiceTask_0x8ypxf">
-        <dc:Bounds x="204" y="89" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0w39hon_di" bpmnElement="SequenceFlow_0w39hon">
-        <di:waypoint xsi:type="dc:Point" x="304" y="129" />
-        <di:waypoint xsi:type="dc:Point" x="546" y="129" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="380" y="114" width="90" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1xlfq66_di" bpmnElement="SequenceFlow_1xlfq66">
-        <di:waypoint xsi:type="dc:Point" x="169" y="212" />
-        <di:waypoint xsi:type="dc:Point" x="169" y="129" />
-        <di:waypoint xsi:type="dc:Point" x="204" y="129" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="184" y="170.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1rga27p_di" bpmnElement="SequenceFlow_1rga27p">
-        <di:waypoint xsi:type="dc:Point" x="646" y="129" />
-        <di:waypoint xsi:type="dc:Point" x="729" y="129" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="642.5" y="104" width="90" height="20" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_1r1brt6_di" bpmnElement="sendTcaReqDistribute">
-        <dc:Bounds x="546" y="89" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0tpegxf_di" bpmnElement="SequenceFlow_0tpegxf">
-        <di:waypoint xsi:type="dc:Point" x="596" y="425" />
-        <di:waypoint xsi:type="dc:Point" x="665" y="425" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="585.5" y="400" width="90" height="20" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_0y2gwy4_di" bpmnElement="sendTcaReqDelete">
-        <dc:Bounds x="495.71500000000003" y="385" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1kegg6u_di" bpmnElement="SequenceFlow_1kegg6u">
-        <di:waypoint xsi:type="dc:Point" x="596" y="540" />
-        <di:waypoint xsi:type="dc:Point" x="688" y="540" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="597" y="515" width="90" height="20" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_08pqhb3_di" bpmnElement="sendTcaReqUpdate">
-        <dc:Bounds x="496" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_1a6a3ro_di" bpmnElement="sendHolmesReqDistribute">
-        <dc:Bounds x="729" y="89" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1tu9g11_di" bpmnElement="SequenceFlow_1tu9g11">
-        <di:waypoint xsi:type="dc:Point" x="829" y="129" />
-        <di:waypoint xsi:type="dc:Point" x="912" y="129" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="870.5" y="108" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_1234ame_di" bpmnElement="sendHolmesReqDelete">
-        <dc:Bounds x="665" y="385" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1mtizad_di" bpmnElement="SequenceFlow_1mtizad">
-        <di:waypoint xsi:type="dc:Point" x="765" y="425" />
-        <di:waypoint xsi:type="dc:Point" x="831" y="425" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="798" y="404" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_17vvyrl_di" bpmnElement="sendHolmesReqUpdate">
-        <dc:Bounds x="688" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0ejpmee_di" bpmnElement="SequenceFlow_0ejpmee">
-        <di:waypoint xsi:type="dc:Point" x="788" y="540" />
-        <di:waypoint xsi:type="dc:Point" x="912" y="540" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="850" y="519" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
diff --git a/src/main/resources/clds/camel/flexible-flow.xml b/src/main/resources/clds/camel/flexible-flow.xml
new file mode 100644
index 0000000..7a3ebdb
--- /dev/null
+++ b/src/main/resources/clds/camel/flexible-flow.xml
@@ -0,0 +1,36 @@
+<routes xmlns="http://camel.apache.org/schema/spring">
+		<route id="submit">
+				<from uri="direct:processSubmit" />
+				<choice>
+						<when>
+								<simple> ${exchangeProperty.actionCd} == 'SUBMIT' || ${exchangeProperty.actionCd} == 'RESUBMIT'</simple>
+								<to uri="bean:org.onap.clamp.clds.client.SdcSendReqDelegate" />	
+								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+						</when>
+						<when>
+								<simple> ${exchangeProperty.actionCd} == 'DELETE'</simple>
+								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDeleteDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
+						</when>
+						<when>
+								<simple> ${exchangeProperty.actionCd} == 'UPDATE'</simple>
+								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
+								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+						</when>
+						<when>
+								<simple> ${exchangeProperty.actionCd} == 'STOP'</simple>
+								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
+						</when>
+						<when>
+								<simple> ${exchangeProperty.actionCd} == 'RESTART'</simple>
+								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+						</when>
+				</choice>
+				<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate" />
+		</route>
+
+</routes>
\ No newline at end of file
diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties
index 95ba919..09cb5c9 100644
--- a/src/main/resources/clds/clds-reference.properties
+++ b/src/main/resources/clds/clds-reference.properties
@@ -80,8 +80,8 @@
 sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/
 sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080
 sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services
-sdc.serviceUsername=test

-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0

+sdc.serviceUsername=clamp

+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981

 sdc.artifactLabel=blueprintclampcockpit

 sdc.sdcX-InstanceID=CLAMP

 sdc.artifactType=DCAE_INVENTORY_BLUEPRINT

@@ -98,7 +98,7 @@
 action.test.override=false

 # if action.insert.test.event is true, then insert event even if the action is set to test

 action.insert.test.event=false

-CLDS_SERVICE_CACHE_MAX_SECONDS=30

+clds.service.cache.invalidate.after.seconds=120

 

 #DCAE Inventory Url Properties

 DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080
diff --git a/src/main/resources/clds/clds-users.json b/src/main/resources/clds/clds-users.json
index 5909e8e..d2c06c8 100644
--- a/src/main/resources/clds/clds-users.json
+++ b/src/main/resources/clds/clds-users.json
@@ -7,8 +7,7 @@
 	               "permission-type-cl|dev|update",
 	               "permission-type-cl-manage|dev|*",
 	               "permission-type-filter-vf|dev|*",
-	               "permission-type-template|dev|read",
-	               "permission-type-template|dev|update"
+	               "permission-type-template|dev|read"
 	            ]
 	},
 	{
diff --git a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
index b4415ed..626cf95 100644
--- a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
@@ -50,7 +50,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 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.SpringJUnit4ClassRunner;
 
 /**
@@ -58,7 +57,6 @@
  */
 @RunWith(SpringJUnit4ClassRunner.class)
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class CldsTemplateServiceItCase extends AbstractItCase {
 
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsTemplateServiceItCase.class);
diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
index 56de81d..2bdef97 100644
--- a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License"); 
@@ -59,30 +59,35 @@
 @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
 @TestPropertySource(locations = "classpath:https/https-test.properties")
 public class DcaeHttpConnectionManagerItCase extends AbstractItCase {
+
     @Value("${server.port}")
     private String httpsPort;
     @Value("${server.http-to-https-redirection.port}")
     private String httpPort;
-    private static TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
-        @Override
-        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
-            return null;
-        }
+    private static TrustManager[] trustAllCerts = new TrustManager[] {
+            new X509TrustManager() {
 
-        @Override
-        public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
-        }
+                @Override
+                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
 
-        @Override
-        public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
-        }
-    } };
+                @Override
+                public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+                }
+
+                @Override
+                public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+                }
+            }
+    };
 
     private void enableSslNoCheck() throws NoSuchAlgorithmException, KeyManagementException {
         SSLContext sc = SSLContext.getInstance("SSL");
         sc.init(null, trustAllCerts, new java.security.SecureRandom());
         HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
         HostnameVerifier allHostsValid = new HostnameVerifier() {
+
             @Override
             public boolean verify(String hostname, SSLSession session) {
                 return true;
@@ -119,20 +124,20 @@
     public void testHttpsGet404() throws IOException {
         DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html",
                 "GET", null, null);
-        fail("Should have raised an BadRequestException exception");
+        fail("Should have raised an BadRequestException");
     }
 
     @Test(expected = BadRequestException.class)
     public void testHttpsPost404() throws IOException {
         DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html",
                 "POST", "", "application/json");
-        fail("Should have raised an BadRequestException exception");
+        fail("Should have raised an BadRequestException");
     }
 
-    @Test(expected = IOException.class)
+    @Test(expected = BadRequestException.class)
     public void testHttpException() throws IOException {
         DcaeHttpConnectionManager.doDcaeHttpQuery("http://localhost:" + this.httpsPort + "/designer/index.html", "GET",
                 null, null);
-        fail("Should have raised an IOException exception");
+        fail("Should have raised an BadRequestException");
     }
 }
diff --git a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
index 62e04ed..6f5c24d 100644
--- a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,7 +35,6 @@
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.util.ResourceFileUtil;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -43,8 +42,8 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class HolmesPolicyDelegateItCase extends AbstractItCase {
+
     @Test
     public void testCreatePolicyJson() throws IOException {
         String modelBpmnProp = ResourceFileUtil
diff --git a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
index 3009199..9013e0c 100644
--- a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -45,25 +45,24 @@
 import org.onap.policy.api.AttributeType;
 import org.onap.policy.controlloop.policy.builder.BuilderException;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class OperationPolicyReqItCase extends AbstractItCase {
+
     @Test
     public void formatAttributesTest() throws IOException, BuilderException {
-        String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
-        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
-        ModelProperties prop = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT, true,
-                modelBpmnProp, modelProp);
+        String modelBpmnProp = ResourceFileUtil
+                .getResourceAsString("example/model-properties/policy/modelBpmnProperties.json");
+        String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json");
+        ModelProperties modelProperties = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT,
+                true, modelBpmn, modelBpmnProp);
         List<Map<AttributeType, Map<String, String>>> attributes = new ArrayList<>();
-        if (prop.getType(Policy.class).isFound()) {
-            for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
-
-                attributes.add(OperationalPolicyReq.formatAttributes(refProp, prop, prop.getType(Policy.class).getId(),
-                        policyChain));
+        if (modelProperties.getType(Policy.class).isFound()) {
+            for (PolicyChain policyChain : modelProperties.getType(Policy.class).getPolicyChains()) {
+                attributes.add(OperationalPolicyReq.formatAttributes(refProp, modelProperties,
+                        modelProperties.getType(Policy.class).getId(), policyChain));
             }
         }
         assertFalse(attributes.isEmpty());
@@ -77,9 +76,7 @@
         // Remove this field as not always present (depends of policy api)
         yaml = yaml.replaceAll("  pnf: null" + System.lineSeparator(), "");
         yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
-
         assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-1.yaml"), yaml);
-
         yaml = URLDecoder.decode(attributes.get(1).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
         yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
         yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
@@ -87,7 +84,6 @@
         // Remove this field as not always present (depends of policy api)
         yaml = yaml.replaceAll("  pnf: null" + System.lineSeparator(), "");
         yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
-
         assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml);
     }
 }
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
index 2757377..71bd2d5 100644
--- a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,6 @@
 import org.onap.clamp.clds.util.ResourceFileUtil;
 import org.onap.policy.api.AttributeType;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -53,8 +52,8 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class PolicyClientItCase extends AbstractItCase {
+
     String modelProp;
     String modelBpmnProp;
     String modelName;
@@ -65,8 +64,8 @@
      */
     @Before
     public void setUp() throws IOException {
-        modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
-        modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
+        modelProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmnProperties.json");
+        modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json");
         modelName = "example-model06";
         controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
     }
diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
index 7ccda5a..8f76b18 100644
--- a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,7 +34,6 @@
 import org.junit.runner.RunWith;
 import org.onap.clamp.clds.AbstractItCase;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -42,8 +41,8 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class RefPropItCase extends AbstractItCase {
+
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(RefPropItCase.class);
 
     /**
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
index f2eadbe..548212e 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License"); 
@@ -41,7 +41,6 @@
 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;
 
 /**
@@ -49,46 +48,38 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class SdcCatalogServicesItCase extends AbstractItCase {
+
     @Autowired
     private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices();
 
     @Test
     public void removeDuplicateServicesTest() {
-
         CldsSdcServiceInfo service1a = new CldsSdcServiceInfo();
         service1a.setName("service1");
         service1a.setVersion("1.0");
         service1a.setInvariantUUID("invariantUUID1.0");
-
         List<CldsSdcServiceInfo> rawCldsSdcServiceList = new LinkedList<>();
         rawCldsSdcServiceList.add(service1a);
         rawCldsSdcServiceList.add(service1a);
-
         CldsSdcServiceInfo service1b = new CldsSdcServiceInfo();
         service1b.setName("service1");
         service1b.setVersion("1.1");
         service1b.setInvariantUUID("invariantUUID1.1");
         rawCldsSdcServiceList.add(service1b);
-
         CldsSdcServiceInfo service1c = new CldsSdcServiceInfo();
         service1c.setName("service1");
         service1c.setVersion("1.2");
         service1c.setInvariantUUID("invariantUUID1.2");
         rawCldsSdcServiceList.add(service1c);
-
         CldsSdcServiceInfo service2 = new CldsSdcServiceInfo();
         service2.setName("service2");
         service2.setVersion("1.0");
         service2.setInvariantUUID("invariantUUID2.0");
         rawCldsSdcServiceList.add(service2);
-
         SdcCatalogServices catalogServices = new SdcCatalogServices();
         List<CldsSdcServiceInfo> resultList = catalogServices.removeDuplicateServices(rawCldsSdcServiceList);
-
         assertTrue(resultList.size() == 2);
-
         CldsSdcServiceInfo res1;
         CldsSdcServiceInfo res2;
         if ("service1".equals(resultList.get(0).getName())) {
@@ -98,43 +89,33 @@
             res1 = resultList.get(1);
             res2 = resultList.get(0);
         }
-
         assertTrue("service1".equals(res1.getName()));
         assertTrue("1.2".equals(res1.getVersion()));
-
         assertTrue("service2".equals(res2.getName()));
         assertTrue("1.0".equals(res2.getVersion()));
-
     }
 
     @Test
     public void removeDuplicateSdcResourceInstancesTest() {
-
         List<CldsSdcResource> rawCldsSdcResourceList = new LinkedList<>();
-
         CldsSdcResource sdcResource1a = new CldsSdcResource();
         sdcResource1a.setResourceInstanceName("resource1");
         sdcResource1a.setResourceVersion("1.0");
         rawCldsSdcResourceList.add(sdcResource1a);
-
         CldsSdcResource sdcResource1b = new CldsSdcResource();
         sdcResource1b.setResourceInstanceName("resource1");
         sdcResource1b.setResourceVersion("1.1");
         rawCldsSdcResourceList.add(sdcResource1b);
-
         CldsSdcResource sdcResource1c = new CldsSdcResource();
         sdcResource1c.setResourceInstanceName("resource1");
         sdcResource1c.setResourceVersion("1.2");
         rawCldsSdcResourceList.add(sdcResource1c);
-
         CldsSdcResource sdcResource2 = new CldsSdcResource();
         sdcResource2.setResourceInstanceName("resource2");
         sdcResource2.setResourceVersion("1.0");
         rawCldsSdcResourceList.add(sdcResource2);
-
         SdcCatalogServices catalogServices = new SdcCatalogServices();
         List<CldsSdcResource> resultList = catalogServices.removeDuplicateSdcResourceInstances(rawCldsSdcResourceList);
-
         CldsSdcResource res1;
         CldsSdcResource res2;
         if ("resource1".equals(resultList.get(0).getResourceInstanceName())) {
@@ -144,44 +125,34 @@
             res1 = resultList.get(1);
             res2 = resultList.get(0);
         }
-
         assertTrue("resource1".equals(res1.getResourceInstanceName()));
         assertTrue("1.2".equals(res1.getResourceVersion()));
-
         assertTrue("resource2".equals(res2.getResourceInstanceName()));
         assertTrue("1.0".equals(res2.getResourceVersion()));
-
     }
 
     @Test
     public void removeDuplicateSdcResourceBasicInfoTest() {
-
         List<CldsSdcResourceBasicInfo> rawCldsSdcResourceList = new LinkedList<>();
-
         CldsSdcResourceBasicInfo sdcResource1a = new CldsSdcResourceBasicInfo();
         sdcResource1a.setName("resource1");
         sdcResource1a.setVersion("1.0");
         rawCldsSdcResourceList.add(sdcResource1a);
-
         CldsSdcResourceBasicInfo sdcResource1b = new CldsSdcResourceBasicInfo();
         sdcResource1b.setName("resource1");
         sdcResource1b.setVersion("1.1");
         rawCldsSdcResourceList.add(sdcResource1b);
-
         CldsSdcResourceBasicInfo sdcResource1c = new CldsSdcResourceBasicInfo();
         sdcResource1c.setName("resource1");
         sdcResource1c.setVersion("1.2");
         rawCldsSdcResourceList.add(sdcResource1c);
-
         CldsSdcResourceBasicInfo sdcResource2 = new CldsSdcResourceBasicInfo();
         sdcResource2.setName("resource2");
         sdcResource2.setVersion("1.0");
         rawCldsSdcResourceList.add(sdcResource2);
-
         SdcCatalogServices catalogServices = new SdcCatalogServices();
         List<CldsSdcResourceBasicInfo> resultList = catalogServices
                 .removeDuplicateSdcResourceBasicInfo(rawCldsSdcResourceList);
-
         CldsSdcResourceBasicInfo res1;
         CldsSdcResourceBasicInfo res2;
         if ("resource1".equals(resultList.get(0).getName())) {
@@ -191,19 +162,15 @@
             res1 = resultList.get(1);
             res2 = resultList.get(0);
         }
-
         assertTrue("resource1".equals(res1.getName()));
         assertTrue("1.2".equals(res1.getVersion()));
-
         assertTrue("resource2".equals(res2.getName()));
         assertTrue("1.0".equals(res2.getVersion()));
-
     }
 
     @Test
     public void getServiceUuidFromServiceInvariantIdTest() throws Exception {
         SdcCatalogServices spy = Mockito.spy(sdcCatalogWired);
-
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"),
                 "UTF-8")).when(spy).getSdcServicesInformation(null);
@@ -211,120 +178,97 @@
         // should not exist, returning empty string
         String resUuidVcts4Null = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9b");
         assertTrue("".equals(resUuidVcts4Null));
-
         // Try the vcts4 version 1.1, this one should be there as it replaces
         // the vcts4 v1.0
         String resUuidVcts4Latest = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
         assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(resUuidVcts4Latest));
-
         // Try the vcts5 version 1.0, this one should be there
         String resUuidVcts5 = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d8c");
         assertTrue("29018914-966c-442d-9d08-251b9dc45b7f".equals(resUuidVcts5));
-
         // try one that does not exist at all
         String resUuidUnknown = spy.getServiceUuidFromServiceInvariantId("testuuid");
         assertTrue("".equals(resUuidUnknown));
-
     }
 
     @Test
     public void getCldsServiceDataWithAlarmConditionsTest() throws Exception {
         SdcCatalogServices spy = Mockito.spy(sdcCatalogWired);
-
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"),
                 "UTF-8")).when(spy).getSdcServicesInformation(null);
-
         // This invariant uuid is the one from vcts4 v1.1
         String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl")
                 + "/29018914-966c-442d-9d08-251b9dc45b8f/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"),
                 "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl);
-
         String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"),
                 "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl);
-
         String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl);
-
         String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl);
-
         String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"),
                 "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl);
-
         String csvAlarmsDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl);
-
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl);
-
         String csvAlarmsDetailUrl2 = refProp.getStringValue("sdc.catalog.url")
                 + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl2);
-
         String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl);
-
         String vfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url")
                 + "resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResourceExample.json"),
                 "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourcesDetailUrl);
-
         String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl);
-
         String allCvfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=CVFC";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResources.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(allCvfcResourcesDetailUrl);
-
         String allVfAlarms = refProp.getStringValue("sdc.catalog.url")
                 + "resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfAlarms);
-
         String vfcResourceExample = refProp.getStringValue("sdc.catalog.url")
                 + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/metadata";
         Mockito.doReturn(IOUtils.toString(
                 SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResourceExample.json"), "UTF-8"))
                 .when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourceExample);
-
         CldsServiceData cldsServiceData = spy
                 .getCldsServiceDataWithAlarmConditions("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
         assertTrue("a33ed748-3477-4434-b3f3-b5560f5e7d9c".equals(cldsServiceData.getServiceInvariantUUID()));
         assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(cldsServiceData.getServiceUUID()));
         assertTrue(cldsServiceData.getCldsVfs().size() == 1);
-
         List<CldsAlarmCondition> alarmsList = spy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData,
                 "alarmCondition");
         assertTrue(alarmsList.size() == 12);
-
     }
-
 }
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
index 757d85b..afff9dd 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,67 +23,85 @@
 
 package org.onap.clamp.clds.it;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
+import java.io.IOException;
 import java.security.GeneralSecurityException;
-import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.codec.DecoderException;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
+import org.onap.clamp.clds.AbstractItCase;
 import org.onap.clamp.clds.client.req.sdc.SdcReq;
-import org.onap.clamp.clds.model.CldsSdcResource;
-import org.onap.clamp.clds.model.CldsSdcServiceDetail;
-import org.onap.clamp.clds.model.prop.Global;
+import org.onap.clamp.clds.model.CldsEvent;
 import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.skyscreamer.jsonassert.JSONAssert;
 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;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
-public class SdcReqItCase {
-    String         baseUrl              = "AYBABTU";
-    String         serviceInvariantUuid = "serviceInvariantUUID";
+public class SdcReqItCase extends AbstractItCase {
+
     @Autowired
     private SdcReq sdcReq;
+    private String modelBpmnProp;
+    private String modelBpmn;
+    private String modelName;
+    private String controlName;
+    private ModelProperties modelProperties;
+    private String jsonWithYamlInside;
+
+    /**
+     * Initialize Test.
+     */
+    @Before
+    public void setUp() throws IOException {
+        modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json");
+        modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json");
+        modelName = "example-model01";
+        controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
+        modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
+                modelBpmnProp);
+        jsonWithYamlInside = ResourceFileUtil.getResourceAsString("example/tca-policy-req/prop-text.json");
+    }
 
     @Test
-    public void getSdcReqUrlsListNoGlobalPropTest() throws GeneralSecurityException, DecoderException {
-        ModelProperties prop = mock(ModelProperties.class);
-        SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class);
-        DelegateExecution delegateExecution = mock(DelegateExecution.class);
-        CldsSdcResource cldsSdcResource = mock(CldsSdcResource.class);
-        List<CldsSdcResource> cldsSdcResources = new ArrayList<>();
-        cldsSdcResources.add(cldsSdcResource);
-        List<String> resourceVf = new ArrayList<>();
-        resourceVf.add(serviceInvariantUuid);
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        Global global = mock(Global.class);
-        when(prop.getGlobal()).thenReturn(global);
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        when(global.getService()).thenReturn(serviceInvariantUuid);
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        CldsSdcServiceDetail cldsSdcServiceDetail = mock(CldsSdcServiceDetail.class);
-        when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(cldsSdcServiceDetail);
-        when(global.getResourceVf()).thenReturn(new ArrayList<>());
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        when(cldsSdcServiceDetail.getResources()).thenReturn(cldsSdcResources);
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        when(cldsSdcResource.getResoucreType()).thenReturn("VF");
-        Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
-        when(global.getResourceVf()).thenReturn(resourceVf);
-        when(cldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUuid);
-        when(cldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name");
-        List<String> expected = new ArrayList<>();
-        expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts");
-        Assert.assertEquals(expected, sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution));
+    public void formatBlueprintTest() throws IOException {
+        String blueprintFormatted = sdcReq.formatBlueprint(modelProperties, jsonWithYamlInside);
+        assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"),
+                blueprintFormatted);
+    }
+
+    @Test
+    public void formatSdcLocationsReqTest() {
+        String blueprintFormatted = sdcReq.formatSdcLocationsReq(modelProperties, "testos");
+        assertEquals(
+                "{\"artifactName\":\"testos\",\"locations\":[\"SNDGCA64\",\"ALPRGAED\",\"LSLEILAA\",\"MDTWNJC1\"]}",
+                blueprintFormatted);
+    }
+
+    @Test
+    public void formatSdcReqTest() {
+        String jsonResult = sdcReq.formatSdcReq("payload", "artifactName", "artifactLabel", "artifactType");
+        JSONAssert.assertEquals(
+                "{\"payloadData\" : \"cGF5bG9hZA==\",\"artifactLabel\" : \"artifactLabel\",\"artifactName\" :\"artifactName\",\"artifactType\" : \"artifactType\","
+                        + "\"artifactGroupType\" : \"DEPLOYMENT\",\"description\" : \"from CLAMP Cockpit\"}",
+                jsonResult, true);
+    }
+
+    @Test
+    public void getSdcReqUrlsListTest() throws GeneralSecurityException, DecoderException {
+        List<String> listUrls = sdcReq.getSdcReqUrlsList(modelProperties, refProp.getStringValue("sdc.serviceUrl"));
+        assertNotNull(listUrls);
+        assertTrue(listUrls.size() == 1);
+        assertTrue(listUrls.get(0).contains(
+                "/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts"));
     }
 }
diff --git a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
index c17ec0d..419bfde 100644
--- a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
@@ -39,7 +39,6 @@
 import org.onap.clamp.clds.util.ResourceFileUtil;
 import org.skyscreamer.jsonassert.JSONAssert;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 /**
@@ -47,14 +46,14 @@
  */
 @RunWith(SpringRunner.class)
 @SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
 public class TcaRequestFormatterItCase extends AbstractItCase {
 
-    String modelProp;
-    String modelBpmn;
-    String modelName;
-    String controlName;
-    String yamlInput;
+    private String modelProp;
+    private String modelBpmn;
+    private String modelName;
+    private String controlName;
+    private String yamlInput;
+    private ModelProperties modelProperties;
 
     /**
      * Initialize Test.
@@ -66,13 +65,13 @@
         yamlInput = ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-input.yaml");
         modelName = "example-model01";
         controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
+        modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
+                modelProp);
     }
 
     @Test
     public void testCreatePolicyJson() throws IOException, JSONException {
-        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
-                modelProp);
-        String result = TcaRequestFormatter.createPolicyJson(refProp, prop);
+        String result = TcaRequestFormatter.createPolicyJson(refProp, modelProperties);
         assertNotNull(result);
         JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/tca-policy-expected.json"),
                 result, true);
@@ -80,9 +79,7 @@
 
     @Test
     public void testUpdatedBlueprintWithConfiguration() throws IOException {
-        ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
-                modelProp);
-        String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlInput);
+        String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, modelProperties, yamlInput);
         assertNotNull(result);
         assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"), result);
     }
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
index 03d7d65..138d727 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================

  * ONAP CLAMP

  * ================================================================================

- * Copyright (C) 2017 AT&T Intellectual Property. All rights

+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights

  *                             reserved.

  * ================================================================================

  * Licensed under the Apache License, Version 2.0 (the "License");

@@ -30,6 +30,7 @@
  */

 public class CustomModelElement extends AbstractModelElement {

 

+    private String test;

     private static final String CUSTOM_TYPE = "customType";

 

     /**

@@ -38,10 +39,18 @@
     public CustomModelElement(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {

         super(CUSTOM_TYPE, modelProp, modelBpmn, modelJson);

         topicPublishes = getValueByName("topicPublishes");

+        test = this.getValueByName("test");

     }

 

     public static final String getType() {

         return CUSTOM_TYPE;

     }

 

+    public String getTest() {

+        return test;

+    }

+

+    public void setTest(String test) {

+        this.test = test;

+    }

 }

diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
index 89eaf51..46c70e5 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================

  * ONAP CLAMP

  * ================================================================================

- * Copyright (C) 2017 AT&T Intellectual Property. All rights

+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights

  *                             reserved.

  * ================================================================================

  * Licensed under the Apache License, Version 2.0 (the "License");

@@ -35,33 +35,21 @@
     }

 

     @Test

-    public void testNewElement() {

-

-        try {

-            String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");

-            String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");

-            String modName = "example-model-name";

-            String controlName = "example-control-name";

-

-            CustomModelElement customModelElement = null;

-

-            // Instantiate first, we should not have our CustomModelElement yet

-            ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);

-

-            Assert.assertNotNull(prop);

-

-            customModelElement = prop.getType(CustomModelElement.class);

-

-            Assert.assertNull(customModelElement);

-

-            ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());

-

-            customModelElement = prop.getType(CustomModelElement.class);

-

-            Assert.assertNotNull(customModelElement);

-

-        } catch (IOException e) {

-            e.printStackTrace();

-        }

+    public void testCustomElement() throws IOException {

+        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/custom/modelBpmn.json");

+        String modelProp = ResourceFileUtil

+                .getResourceAsString("example/model-properties/custom/modelBpmnProperties.json");

+        String modName = "example-model-name";

+        String controlName = "example-control-name";

+        CustomModelElement customModelElement = null;

+        // Instantiate first, we should not have our CustomModelElement yet

+        ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);

+        Assert.assertNotNull(prop);

+        customModelElement = prop.getType(CustomModelElement.class);

+        Assert.assertNull(customModelElement);

+        ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());

+        customModelElement = prop.getType(CustomModelElement.class);

+        Assert.assertNotNull(customModelElement);

+        Assert.assertEquals("This is a test", customModelElement.getTest());

     }

 }

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 eb02141..7bb11a9 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
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -46,14 +46,11 @@
 
     @Test
     public void testTcaModelDecoding() throws IOException {
-
         String modelBpmnProp = ResourceFileUtil
                 .getResourceAsString("example/model-properties/tca/modelBpmnProperties.json");
         String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json");
-
         ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
                 modelBpmnProp);
-
         Policy policy = prop.getType(Policy.class);
         assertTrue(policy.isFound());
         assertEquals(1, policy.getPolicyChains().size());
@@ -64,7 +61,6 @@
         assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
         assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
         assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
-
         Tca tca = prop.getType(Tca.class);
         assertNotNull(tca);
         assertTrue(tca.isFound());
@@ -73,14 +69,12 @@
         assertEquals("policy1", tca.getTcaItem().getPolicyId());
         assertEquals("f734f031-10aa-t8fb-330f-04dde2886325", tca.getTcaItem().getTcaUuId());
         assertEquals(2, tca.getTcaItem().getTcaThresholds().size());
-
         assertEquals("ABATED", tca.getTcaItem().getTcaThresholds().get(0).getClosedLoopEventStatus());
         assertEquals(
                 "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
                 tca.getTcaItem().getTcaThresholds().get(0).getFieldPath());
         assertEquals("LESS_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(0).getOperator());
         assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(0).getThreshold());
-
         assertEquals("ONSET", tca.getTcaItem().getTcaThresholds().get(1).getClosedLoopEventStatus());
         assertEquals("$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
                 tca.getTcaItem().getTcaThresholds().get(1).getFieldPath());
@@ -90,14 +84,11 @@
 
     @Test
     public void testHolmesModelDecoding() throws IOException {
-
         String modelBpmnProp = ResourceFileUtil
                 .getResourceAsString("example/model-properties/holmes/modelBpmnProperties.json");
         String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/holmes/modelBpmn.json");
-
         ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
                 modelBpmnProp);
-
         Policy policy = prop.getType(Policy.class);
         assertTrue(policy.isFound());
         assertEquals(1, policy.getPolicyChains().size());
@@ -108,7 +99,6 @@
         assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
         assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
         assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
-
         Holmes holmes = prop.getType(Holmes.class);
         assertNotNull(holmes);
         assertTrue(holmes.isFound());
@@ -121,6 +111,6 @@
         CldsModel cldsModel = new CldsModel();
         cldsModel.setPropText(
                 ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json"));
-        assertEquals("f5213e3a-9191-4362-93b5-b67f8d770e44", ModelProperties.getVf(cldsModel));
+        assertEquals("023a3f0d-1161-45ff-b4cf-8918a8ccf3ad", ModelProperties.getVf(cldsModel));
     }
 }
\ No newline at end of file
diff --git a/src/test/resources/application-no-camunda.properties b/src/test/resources/application-no-camunda.properties
index f7b2bad..2e284b0 100644
--- a/src/test/resources/application-no-camunda.properties
+++ b/src/test/resources/application-no-camunda.properties
@@ -76,42 +76,15 @@
 
 camel.springboot.consumer-template-cache-size=1000
 camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
+camel.springboot.jmx-enabled=false
 camel.defaultthreadpool.poolsize=10
 camel.defaultthreadpool.maxpoolsize=20
 camel.defaultthreadpool.maxqueuesize=1000
 camel.defaultthreadpool.keepaliveTime=60
 camel.defaultthreadpool.rejectpolicy=CallerRuns
-
-#server.port=0
-
-#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e
-spring.datasource.camunda.validationQuery=SELECT 1
-spring.datasource.camunda.validationQueryTimeout=20000
-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=none
-camunda.bpm.enabled=false
-camunda.bpm.jpa.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
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.database.schema-update=true
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml
+#camel.springboot.typeConversion = false
 
 #clds datasource connection details
 spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
diff --git a/src/test/resources/clds/clds-reference.properties b/src/test/resources/clds/clds-reference.properties
index 4627269..d6c8bc4 100644
--- a/src/test/resources/clds/clds-reference.properties
+++ b/src/test/resources/clds/clds-reference.properties
@@ -2,19 +2,19 @@
 # ============LICENSE_START=======================================================

 # ONAP CLAMP

 # ================================================================================

-# Copyright (C) 2017 AT&T Intellectual Property. All rights

+# Copyright (C) 2017-2018 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.

+# 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

+# 

+# 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============================================

 # ===================================================================

@@ -77,11 +77,11 @@
 op.eNodeB.period=10s

 #

 # Sdc service properties

-sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/

-sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080

-sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services

-sdc.serviceUsername=test

-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0

+sdc.catalog.url=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/

+sdc.hostUrl=http://localhost:${docker.http-cache.port.host}

+sdc.serviceUrl=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/services

+sdc.serviceUsername=clamp

+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981

 sdc.artifactLabel=blueprintclampcockpit

 sdc.sdcX-InstanceID=CLAMP

 sdc.artifactType=DCAE_INVENTORY_BLUEPRINT

@@ -98,7 +98,7 @@
 action.test.override=false

 # if action.insert.test.event is true, then insert event even if the action is set to test

 action.insert.test.event=false

-CLDS_SERVICE_CACHE_MAX_SECONDS=30

+clds.service.cache.invalidate.after.seconds=120

 

 #DCAE Inventory Url Properties

 DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080

diff --git a/src/test/resources/example/modelBpmnProp.json b/src/test/resources/example/model-properties/custom/modelBpmn.json
similarity index 100%
rename from src/test/resources/example/modelBpmnProp.json
rename to src/test/resources/example/model-properties/custom/modelBpmn.json
diff --git a/src/test/resources/example/model-properties/custom/modelBpmnProperties.json b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json
new file mode 100644
index 0000000..fc2f1fd
--- /dev/null
+++ b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json
@@ -0,0 +1,248 @@
+{
+    "global":
+    [
+        {
+            "name": "service",
+            "value":
+            [
+                "0f983e18-4603-4bb4-a98c-e29691fb16a1"
+            ]
+        },
+
+        {
+            "name": "vf",
+            "value":
+            [
+                "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
+            ]
+        },
+
+        {
+            "name": "actionSet",
+            "value":
+            [
+                "enbRecipe"
+            ]
+        },
+
+        {
+            "name": "location",
+            "value":
+            [
+                "SNDGCA64"
+            ]
+        }
+    ],
+
+    "Policy_":
+    {
+        "Policy1":
+        [
+            {
+                "name": "pname",
+                "value": "Policy1"
+            },
+
+            {
+                "name": "pid",
+                "value": "1"
+            },
+
+            {
+                "name": "timeout",
+                "value": "500"
+            },
+
+            {
+                "policyConfigurations":
+                [
+                    [
+                        {
+                            "name": "recipe",
+                            "value":
+                            [
+                                "restart"
+                            ]
+                        },
+
+                        {
+                            "name": "maxRetries",
+                            "value":
+                            [
+                                "3"
+                            ]
+                        },
+
+                        {
+                            "name": "retryTimeLimit",
+                            "value":
+                            [
+                                "180"
+                            ]
+                        },
+
+                        {
+                            "name": "_id",
+                            "value":
+                            [
+                                "n9bQ4t6"
+                            ]
+                        },
+
+                        {
+                            "name": "parentPolicy",
+                            "value":
+                            [
+                                ""
+                            ]
+                        },
+                        {
+                            "name": "targetResourceId",
+                            "value":
+                            [
+                                "resource-id"
+                            ]
+                        }
+                    ],
+
+                    [
+                        {
+                            "name": "recipe",
+                            "value":
+                            [
+                                "rebuild"
+                            ]
+                        },
+
+                        {
+                            "name": "maxRetries",
+                            "value":
+                            [
+                                "3"
+                            ]
+                        },
+
+                        {
+                            "name": "retryTimeLimit",
+                            "value":
+                            [
+                                "180"
+                            ]
+                        },
+
+                        {
+                            "name": "_id",
+                            "value":
+                            [
+                                "ItE5xKT"
+                            ]
+                        },
+
+                        {
+                            "name": "parentPolicy",
+                            "value":
+                            [
+                                "n9bQ4t6"
+                            ]
+                        },
+
+                        {
+                            "name": "parentPolicyConditions",
+                            "value":
+                            [
+                                "Failure_Retries",
+                                "Failure_Timeout",
+                                "Failure_Exception",
+                                "Failure"
+                            ]
+                        },
+                        {
+                            "name": "targetResourceId",
+                            "value":
+                            [
+                                "resource-id"
+                            ]
+                        }
+                    ]
+                ]
+            }
+        ]
+    },
+
+    "TCA_":
+    {
+        "Narra":
+        [
+            {
+                "name": "tname",
+                "value": "Narra"
+            },
+
+            {
+                "name": "tuuid",
+                "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
+            },
+
+            {
+                "name": "tnfc",
+                "value": "ENBE"
+            },
+
+            {
+                "name": "tcaEnab",
+                "value": "on"
+            },
+
+            {
+                "name": "tcaPol",
+                "value": "Policy1"
+            },
+
+            {
+                "name": "tcaPolId",
+                "value": "1"
+            },
+
+            {
+                "name": "tcaInt",
+                "value": "2"
+            },
+
+            {
+                "name": "tcaSev",
+                "value": "Warning"
+            },
+
+            {
+                "name": "tcaVio",
+                "value": "3"
+            },
+
+            {
+                "serviceConfigurations":
+                [
+                    [
+                        "PMRRCCONNESTABFAILCELLLATENCY",
+                        "LESS",
+                        "4",
+                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+                    ],
+
+                    [
+                        "PMRAATTCBRA",
+                        "GREATER",
+                        "30",
+                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+                    ]
+                ]
+            }
+        ]
+    },
+    
+    "CustomType_": [
+      {
+         "name": "test",
+         "value": "This is a test"
+      }
+    ]
+}
\ No newline at end of file
diff --git a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
index cd76a12..43fecc9 100644
--- a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
+++ b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
@@ -69,13 +69,6 @@
       ]
     },
     {
-      "name": "location",
-      "value": [
-        "SNDGCA64",
-        "ALPRGAED"
-      ]
-    },
-    {
       "name": "vf",
       "value": [
         "f5213e3a-9191-4362-93b5-b67f8d770e44"
diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json
deleted file mode 100644
index 8f7b8e6..0000000
--- a/src/test/resources/example/model-properties/modelBpmn.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "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": "StartEvent_1"
-    }
-  ]
-}
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
deleted file mode 100644
index eacb124..0000000
--- a/src/test/resources/example/model-properties/modelBpmnProp.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-  "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": [
-                ""
-              ]
-            },
-            {
-              "name": "targetResourceId",
-              "value": [
-                "resourceid"
-              ]
-            }
-          ]
-        ]
-      }
-    ]
-  },
-  "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": "configPolicyName",
-      "value": "policy1"
-    }
-  ]
-}
diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
deleted file mode 100644
index 3030adf..0000000
--- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
-  "tca": {
-    "tname": "New_Set",
-    "tcaInt": "1",
-    "tcaVio": "1",
-    "tcaSev": {
-      "NORMAL": "NORMAL",
-      "CRITICAL": "CRITICAL",
-      "MAJOR": "MAJOR",
-      "MINOR": "MINOR",
-      "WARNING": "WARNING"
-    },
-    "fieldPath": {
-      "FIELDPATH_test_1": "FIELDPATH_test_1",
-      "FIELDPATH_test_2": "FIELDPATH_test_2"
-    },
-    "operator": {
-      ">": "GREATER",
-      "=": "EQUAL",
-      "<": "LESS"
-    },
-    "opsPolicy": {
-      "POLICY_test_X": "POLICY_test_X",
-      "POLICY_test_Y": "POLICY_test_Y"
-    }
-  },
-  "global": [
-    {
-      "name": "actionSet",
-      "value": [
-        "vnfRecipe"
-      ]
-    },
-    {
-      "name": "location",
-      "value": [
-        "SNDGCA64",
-        "ALPRGAED"
-      ]
-    },
-    {
-      "name": "vf",
-      "value": [
-        "f5213e3a-9191-4362-93b5-b67f8d770e44"
-      ]
-    },
-    {
-      "name": "location",
-      "value": [
-        "SNDGCA64",
-        "ALPRGAED",
-        "LSLEILAA",
-        "MDTWNJC1"
-      ]
-    }
-  ],
-  "policy": {
-    "pname": "0",
-    "timeout": 345,
-    "vnfRecipe": {
-      "": "",
-      "restart": "Restart",
-      "rebuild": "Rebuild",
-      "migrate": "Migrate",
-      "healthCheck": "Health Check",
-      "evacuate": "Evacuate"
-    },
-    "enbRecipe": {
-      "": "",
-      "reset": "Reset"
-    },
-    "maxRetries": "3",
-    "retryTimeLimit": 180,
-    "resource": {
-      "vCTS": "vCTS",
-      "v3CDB": "v3CDB",
-      "vUDR": "vUDR",
-      "vCOM": "vCOM",
-      "vRAR": "vRAR",
-      "vLCS": "vLCS",
-      "vUDR-BE": "vUDR-BE",
-      "vDBE": "vDBE"
-    },
-    "parentPolicyConditions": {
-      "Failure_Retries": "Failure: Max Retries Exceeded",
-      "Failure_Timeout": "Failure: Time Limit Exceeded",
-      "Failure_Guard": "Failure: Guard",
-      "Failure_Exception": "Failure: Exception",
-      "Failure": "Failure: Other",
-      "Success": "Success"
-    },
-    "targetResourceId": "resourceid"
-  },
-  "shared": {
-    "byService": {
-      "": {
-        "vf": {
-          "": ""
-        },
-        "location": {
-          "": ""
-        },
-        "alarmCondition": {
-          "": ""
-        }
-      }
-    },
-    "byVf": {
-      "": {
-        "vfc": {
-          "": ""
-        }
-      }
-    }
-  }
-}
diff --git a/src/test/resources/example/modelBpmnPropForPolicy.json b/src/test/resources/example/model-properties/policy/modelBpmn.json
similarity index 100%
rename from src/test/resources/example/modelBpmnPropForPolicy.json
rename to src/test/resources/example/model-properties/policy/modelBpmn.json
diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json
similarity index 100%
rename from src/test/resources/example/modelProp.json
rename to src/test/resources/example/model-properties/policy/modelBpmnProperties.json
diff --git a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
index 7bb4fe0..8e2780c 100644
--- a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
+++ b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
@@ -101,20 +101,13 @@
     {
       "name": "service",
       "value": [
-        "serviceUUID"
-      ]
-    },
-    {
-      "name": "location",
-      "value": [
-        "SNDGCA64",
-        "ALPRGAED"
+        "4cc5b45a-1f63-4194-8100-cd8e14248c92"
       ]
     },
     {
       "name": "vf",
       "value": [
-        "f5213e3a-9191-4362-93b5-b67f8d770e44"
+        "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"
       ]
     },
     {
diff --git a/src/test/resources/example/modelPropForPolicy.json b/src/test/resources/example/modelPropForPolicy.json
deleted file mode 100644
index bf34809..0000000
--- a/src/test/resources/example/modelPropForPolicy.json
+++ /dev/null
@@ -1,432 +0,0 @@
-{
-    "global": 
-    [
-        {
-            "name": "service",
-            "value": 
-            [
-                "0f983e18-4603-4bb4-a98c-e29691fb16a1"
-            ]
-        },
-
-        {
-            "name": "vf",
-            "value": 
-            [
-                "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
-            ]
-        },
-
-        {
-            "name": "location",
-            "value": 
-            [
-                "SNDGCA64"
-            ]
-        }
-    ],
-
-    "Policy_": 
-    {
-        "Policy1": 
-        [
-            {
-                "name": "pname",
-                "value": "Policy1"
-            },
-
-            {
-                "name": "pid",
-                "value": "1"
-            },
-
-            {
-                "name": "timeout",
-                "value": "500"
-            },
-
-            {
-                "policyConfigurations": 
-                [
-                    [
-                        {
-                            "name": "recipe",
-                            "value": 
-                            [
-                                "restart"
-                            ]
-                        },
-
-                        {
-                            "name": "maxRetries",
-                            "value": 
-                            [
-                                "3"
-                            ]
-                        },
-
-                        {
-                            "name": "retryTimeLimit",
-                            "value": 
-                            [
-                                "180"
-                            ]
-                        },
-
-                        {
-                            "name": "_id",
-                            "value": 
-                            [
-                                "n9bQ4t6"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicy",
-                            "value": 
-                            [
-                                ""
-                            ]
-                        },
-                        {
-                            "name": "targetResourceId",
-                            "value": 
-                            [
-                                "resource-id"
-                            ]
-                        }
-                    ],
-
-                    [
-                        {
-                            "name": "recipe",
-                            "value": 
-                            [
-                                "rebuild"
-                            ]
-                        },
-
-                        {
-                            "name": "maxRetries",
-                            "value": 
-                            [
-                                "3"
-                            ]
-                        },
-
-                        {
-                            "name": "retryTimeLimit",
-                            "value": 
-                            [
-                                "180"
-                            ]
-                        },
-
-                        {
-                            "name": "_id",
-                            "value": 
-                            [
-                                "ItE5xKT"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicy",
-                            "value": 
-                            [
-                                "n9bQ4t6"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicyConditions",
-                            "value": 
-                            [
-                                "Failure_Retries",
-                                "Failure_Timeout",
-                                "Failure_Exception",
-                                "Failure"
-                            ]
-                        },
-                        {
-                            "name": "targetResourceId",
-                            "value": 
-                            [
-                                "resource-id"
-                            ]
-                        }
-                    ]
-                ]
-            }
-        ],
-
-        "Policy2": 
-        [
-            {
-                "name": "pname",
-                "value": "Policy2"
-            },
-
-            {
-                "name": "pid",
-                "value": "2"
-            },
-
-            {
-                "name": "timeout",
-                "value": "500"
-            },
-
-            {
-                "policyConfigurations": 
-                [
-                    [
-                        {
-                            "name": "recipe",
-                            "value": 
-                            [
-                                "restart"
-                            ]
-                        },
-
-                        {
-                            "name": "maxRetries",
-                            "value": 
-                            [
-                                "3"
-                            ]
-                        },
-
-                        {
-                            "name": "retryTimeLimit",
-                            "value": 
-                            [
-                                "180"
-                            ]
-                        },
-
-                        {
-                            "name": "_id",
-                            "value": 
-                            [
-                                "n9bQ4t6"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicy",
-                            "value": 
-                            [
-                                ""
-                            ]
-                        },
-                        {
-                            "name": "targetResourceId",
-                            "value": 
-                            [
-                                "resource-id"
-                            ]
-                        }
-                    ],
-
-                    [
-                        {
-                            "name": "recipe",
-                            "value": 
-                            [
-                                "rebuild"
-                            ]
-                        },
-
-                        {
-                            "name": "maxRetries",
-                            "value": 
-                            [
-                                "3"
-                            ]
-                        },
-
-                        {
-                            "name": "retryTimeLimit",
-                            "value": 
-                            [
-                                "180"
-                            ]
-                        },
-
-                        {
-                            "name": "_id",
-                            "value": 
-                            [
-                                "ItE5xKT"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicy",
-                            "value": 
-                            [
-                                "n9bQ4t6"
-                            ]
-                        },
-
-                        {
-                            "name": "parentPolicyConditions",
-                            "value": 
-                            [
-                                "Failure_Retries",
-                                "Failure_Timeout",
-                                "Failure_Exception",
-                                "Failure"
-                            ]
-                        },
-                        {
-                            "name": "targetResourceId",
-                            "value": 
-                            [
-                                "resource-id"
-                            ]
-                        }
-                    ]
-                ]
-            }
-        ]
-    },
-
-    "TCA_": 
-    {
-        "Narra": 
-        [
-            {
-                "name": "tname",
-                "value": "Narra"
-            },
-
-            {
-                "name": "tuuid",
-                "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
-            },
-
-            {
-                "name": "tnfc",
-                "value": "ENBE"
-            },
-
-            {
-                "name": "tcaEnab",
-                "value": "on"
-            },
-
-            {
-                "name": "tcaPol",
-                "value": "Policy1"
-            },
-
-            {
-                "name": "tcaPolId",
-                "value": "1"
-            },
-
-            {
-                "name": "tcaInt",
-                "value": "2"
-            },
-
-            {
-                "name": "tcaSev",
-                "value": "Warning"
-            },
-
-            {
-                "name": "tcaVio",
-                "value": "3"
-            },
-
-            {
-                "serviceConfigurations": 
-                [
-                    [
-                        "PMRRCCONNESTABFAILCELLLATENCY",
-                        "LESS",
-                        "4",
-                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
-                    ],
-
-                    [
-                        "PMRAATTCBRA",
-                        "GREATER",
-                        "30",
-                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
-                    ]
-                ]
-            }
-        ],
-
-        "Srini": 
-        [
-            {
-                "name": "tname",
-                "value": "Srini"
-            },
-
-            {
-                "name": "tuuid",
-                "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d"
-            },
-
-            {
-                "name": "tnfc",
-                "value": "ENBE"
-            },
-
-            {
-                "name": "tcaEnab",
-                "value": "on"
-            },
-
-            {
-                "name": "tcaPol",
-                "value": "Policy2"
-            },
-
-            {
-                "name": "tcaPolId",
-                "value": "2"
-            },
-
-            {
-                "name": "tcaInt",
-                "value": "10"
-            },
-
-            {
-                "name": "tcaSev",
-                "value": "Critical"
-            },
-
-            {
-                "name": "tcaVio",
-                "value": "5"
-            },
-
-            {
-                "serviceConfigurations": 
-                [
-                    [
-                        "PMRRCCONNESTABFAILCELLLATENCY",
-                        "EQUAL",
-                        "3",
-                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
-                    ],
-
-                    [
-                        "PMRAATTCBRA",
-                        "GREATER",
-                        "30",
-                        "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
-                    ]
-                ]
-            }
-        ]
-    }
-}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/expected-result/all-sdc-services.json b/src/test/resources/example/sdc/expected-result/all-sdc-services.json
new file mode 100644
index 0000000..ea6efdd
--- /dev/null
+++ b/src/test/resources/example/sdc/expected-result/all-sdc-services.json
@@ -0,0 +1,6 @@
+{
+	"service": {
+		"4cc5b45a-1f63-4194-8100-cd8e14248c92": "vFirewall",
+		"c95b0e7c-c1f0-4287-9928-7964c5377a46": "vLoadBalancer"
+	}
+}
diff --git a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
index 2082e55..8739bb2 100644
--- a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
+++ b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
@@ -1,7 +1,7 @@
 tosca_definitions_version: cloudify_dsl_1_3
-imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml',
-  'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml',
-  'http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml']
+imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml',
+  'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml',
+  'http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml']
 inputs:
   location_id: {type: string}
   service_id: {type: string}
@@ -10,7 +10,7 @@
     type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure
     properties:
       location_id: {get_input: location_id}
-      scn_override: cdap_broker.solutioning-central.dcae.att.com
+      scn_override: cdap_broker.solutioning-central.dcae.onap.org
     interfaces:
       cloudify.interfaces.lifecycle: {}
   tca_tca:
@@ -21,15 +21,15 @@
         tcaVESAlertsTableName: TCAVESAlertsTable, tcaVESAlertsTableTTLSeconds: '1728000',
         tcaVESMessageStatusTableName: TCAVESMessageStatusTable, tcaVESMessageStatusTableTTLSeconds: '86400',
         thresholdCalculatorFlowletInstances: '2'}
-      app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.homer.att.com,
+      app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.onap.org,
         publisherHostPort: '3905', publisherMaxBatchSize: '10', publisherMaxRecoveryQueueSize: '100000',
-        publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub,
-        publisherUserName: m00502@tca.af.dcae.att.com, publisherUserPassword: Te5021abc,
+        publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub,
+        publisherUserName: m00502@tca.af.dcae.onap.org, publisherUserPassword: Te5021abc,
         subscriberConsumerGroup: OpenDCAE-c12, subscriberConsumerId: c12, subscriberContentType: application/json,
-        subscriberHostName: mrlocal-mtnjftle01.homer.att.com, subscriberHostPort: '3905',
+        subscriberHostName: mrlocal-mtnjftle01.onap.org, subscriberHostPort: '3905',
         subscriberMessageLimit: '-1', subscriberPollingInterval: '20000', subscriberProtocol: https,
-        subscriberTimeoutMS: '-1', subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub,
-        subscriberUserName: m00502@tca.af.dcae.att.com, subscriberUserPassword: Te5021abc,
+        subscriberTimeoutMS: '-1', subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub,
+        subscriberUserName: m00502@tca.af.dcae.onap.org, subscriberUserPassword: Te5021abc,
         tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"}]}]}'}
       artifact_name: dcae-analytics-tca
       artifact_version: 1.0.0
diff --git a/src/test/resources/example/tca-policy-req/blueprint-input.yaml b/src/test/resources/example/tca-policy-req/blueprint-input.yaml
index 9532225..101dc2c 100644
--- a/src/test/resources/example/tca-policy-req/blueprint-input.yaml
+++ b/src/test/resources/example/tca-policy-req/blueprint-input.yaml
@@ -1,9 +1,9 @@
 tosca_definitions_version: cloudify_dsl_1_3
 imports:
 - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml
-- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml
-- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml
-- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml
+- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml
+- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml
+- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml
 inputs:
   location_id:
     type: string
@@ -15,9 +15,10 @@
     properties:
       location_id:
         get_input: location_id
-      scn_override: cdap_broker.solutioning-central.dcae.att.com
+      scn_override: cdap_broker.solutioning-central.dcae.onap.org
     interfaces:
-      cloudify.interfaces.lifecycle: {}
+      cloudify.interfaces.lifecycle: {
+        }
   tca_tca:
     type: dcae.nodes.MicroService.cdap
     properties:
@@ -32,33 +33,35 @@
         thresholdCalculatorFlowletInstances: '2'
       app_preferences:
         publisherContentType: application/json
-        publisherHostName: mrlocal-mtnjftle01.homer.att.com
+        publisherHostName: mrlocal-mtnjftle01.onap.org
         publisherHostPort: '3905'
         publisherMaxBatchSize: '10'
         publisherMaxRecoveryQueueSize: '100000'
         publisherPollingInterval: '20000'
         publisherProtocol: https
-        publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub
-        publisherUserName: m00502@tca.af.dcae.att.com
+        publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub
+        publisherUserName: m00502@tca.af.dcae.onap.org
         publisherUserPassword: Te5021abc
         subscriberConsumerGroup: OpenDCAE-c12
         subscriberConsumerId: c12
         subscriberContentType: application/json
-        subscriberHostName: mrlocal-mtnjftle01.homer.att.com
+        subscriberHostName: mrlocal-mtnjftle01.onap.org
         subscriberHostPort: '3905'
         subscriberMessageLimit: '-1'
         subscriberPollingInterval: '20000'
         subscriberProtocol: https
         subscriberTimeoutMS: '-1'
-        subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub
-        subscriberUserName: m00502@tca.af.dcae.att.com
+        subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub
+        subscriberUserName: m00502@tca.af.dcae.onap.org
         subscriberUserPassword: Te5021abc
-        tca_policy: 
+        tca_policy: null
       artifact_name: dcae-analytics-tca
       artifact_version: 1.0.0
       connections:
-        streams_publishes: []
-        streams_subscribes: []
+        streams_publishes: [
+          ]
+        streams_subscribes: [
+          ]
       jar_url: http://somejar
       location_id:
         get_input: location_id
@@ -76,4 +79,4 @@
       streamname: TCASubscriberOutputStream
     relationships:
     - target: cdap_host_host
-      type: dcae.relationships.component_contained_in
+      type: dcae.relationships.component_contained_in
\ No newline at end of file
diff --git a/src/test/resources/example/tca-policy-req/prop-text.json b/src/test/resources/example/tca-policy-req/prop-text.json
new file mode 100644
index 0000000..acaa889
--- /dev/null
+++ b/src/test/resources/example/tca-policy-req/prop-text.json
@@ -0,0 +1 @@
+{"global":[{"name":"service","value":["tosca_definitions_version: cloudify_dsl_1_3\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\r\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\r\ninputs:\r\n  location_id:\r\n    type: string\r\n  service_id:\r\n    type: string\r\nnode_templates:\r\n  cdap_host_host:\r\n    type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\r\n    properties:\r\n      location_id:\r\n        get_input: location_id\r\n      scn_override: cdap_broker.solutioning-central.dcae.onap.org\r\n    interfaces:\r\n      cloudify.interfaces.lifecycle: {\r\n        }\r\n  tca_tca:\r\n    type: dcae.nodes.MicroService.cdap\r\n    properties:\r\n      app_config:\r\n        appDescription: DCAE Analytics Threshold Crossing Alert Application\r\n        appName: dcae-tca\r\n        tcaSubscriberOutputStreamName: TCASubscriberOutputStream\r\n        tcaVESAlertsTableName: TCAVESAlertsTable\r\n        tcaVESAlertsTableTTLSeconds: '1728000'\r\n        tcaVESMessageStatusTableName: TCAVESMessageStatusTable\r\n        tcaVESMessageStatusTableTTLSeconds: '86400'\r\n        thresholdCalculatorFlowletInstances: '2'\r\n      app_preferences:\r\n        publisherContentType: application/json\r\n        publisherHostName: mrlocal-mtnjftle01.onap.org\r\n        publisherHostPort: '3905'\r\n        publisherMaxBatchSize: '10'\r\n        publisherMaxRecoveryQueueSize: '100000'\r\n        publisherPollingInterval: '20000'\r\n        publisherProtocol: https\r\n        publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\r\n        publisherUserName: m00502@tca.af.dcae.onap.org\r\n        publisherUserPassword: Te5021abc\r\n        subscriberConsumerGroup: OpenDCAE-c12\r\n        subscriberConsumerId: c12\r\n        subscriberContentType: application/json\r\n        subscriberHostName: mrlocal-mtnjftle01.onap.org\r\n        subscriberHostPort: '3905'\r\n        subscriberMessageLimit: '-1'\r\n        subscriberPollingInterval: '20000'\r\n        subscriberProtocol: https\r\n        subscriberTimeoutMS: '-1'\r\n        subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\r\n        subscriberUserName: m00502@tca.af.dcae.onap.org\r\n        subscriberUserPassword: Te5021abc\r\n        tca_policy: '{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"}]}]}'\r\n      artifact_name: dcae-analytics-tca\r\n      artifact_version: 1.0.0\r\n      connections:\r\n        streams_publishes: [\r\n          ]\r\n        streams_subscribes: [\r\n          ]\r\n      jar_url: http://somejar\r\n      location_id:\r\n        get_input: location_id\r\n      namespace: cdap_tca_hi_lo\r\n      programs:\r\n      - program_id: TCAVESCollectorFlow\r\n        program_type: flows\r\n      - program_id: TCADMaaPMRSubscriberWorker\r\n        program_type: workers\r\n      - program_id: TCADMaaPMRPublisherWorker\r\n        program_type: workers\r\n      service_component_type: cdap_app_tca\r\n      service_id:\r\n        get_input: service_id\r\n      streamname: TCASubscriberOutputStream\r\n    relationships:\r\n    - target: cdap_host_host\r\n      type: dcae.relationships.component_contained_in"]}]}
\ 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 54005ef..82cd999 100644
--- a/src/test/resources/https/https-test.properties
+++ b/src/test/resources/https/https-test.properties
@@ -77,42 +77,15 @@
 
 camel.springboot.consumer-template-cache-size=1000
 camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
+camel.springboot.jmx-enabled=false
 camel.defaultthreadpool.poolsize=10
 camel.defaultthreadpool.maxpoolsize=20
 camel.defaultthreadpool.maxqueuesize=1000
 camel.defaultthreadpool.keepaliveTime=60
 camel.defaultthreadpool.rejectpolicy=CallerRuns
-
-#server.port=0
-#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647

-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e

-spring.datasource.camunda.validationQuery=SELECT 1
-spring.datasource.camunda.validationQueryTimeout=20000
-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=none
-camunda.bpm.enabled=false
-camunda.bpm.jpa.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
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.database.schema-update=true
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml
+#camel.springboot.typeConversion = false
 
 #clds datasource connection details
 spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver