Remove Camunda and replace by Camel
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Wed, 14 Feb 2018 14:31:55 +0000 (15:31 +0100)
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Wed, 14 Feb 2018 14:31:55 +0000 (15:31 +0100)
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>
61 files changed:
extra/docker/clamp/clamp.env
extra/sql/bulkload/clds-create-db-objects.sql
pom.xml
src/main/java/org/onap/clamp/clds/Application.java
src/main/java/org/onap/clamp/clds/camel/CamelProxy.java [new file with mode: 0644]
src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java [new file with mode: 0644]
src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
src/main/java/org/onap/clamp/clds/service/CldsService.java
src/main/java/org/onap/clamp/clds/service/CldsUser.java
src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java [moved from src/main/java/org/onap/clamp/clds/service/JerseyConfig.java with 79% similarity]
src/main/java/org/onap/clamp/clds/util/LogMessages.java [moved from src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java with 55% similarity]
src/main/resources/META-INF/processes.xml [deleted file]
src/main/resources/application.properties
src/main/resources/bpmn/clds-process-action.bpmn [deleted file]
src/main/resources/clds/camel/flexible-flow.xml [new file with mode: 0644]
src/main/resources/clds/clds-reference.properties
src/main/resources/clds/clds-users.json
src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
src/test/resources/application-no-camunda.properties
src/test/resources/clds/clds-reference.properties
src/test/resources/example/model-properties/custom/modelBpmn.json [moved from src/test/resources/example/modelBpmnProp.json with 100% similarity]
src/test/resources/example/model-properties/custom/modelBpmnProperties.json [new file with mode: 0644]
src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
src/test/resources/example/model-properties/modelBpmn.json [deleted file]
src/test/resources/example/model-properties/modelBpmnProp.json [deleted file]
src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json [deleted file]
src/test/resources/example/model-properties/policy/modelBpmn.json [moved from src/test/resources/example/modelBpmnPropForPolicy.json with 100% similarity]
src/test/resources/example/model-properties/policy/modelBpmnProperties.json [moved from src/test/resources/example/modelProp.json with 100% similarity]
src/test/resources/example/model-properties/tca/modelBpmnProperties.json
src/test/resources/example/modelPropForPolicy.json [deleted file]
src/test/resources/example/sdc/expected-result/all-sdc-services.json [new file with mode: 0644]
src/test/resources/example/tca-policy-req/blueprint-expected.yaml
src/test/resources/example/tca-policy-req/blueprint-input.yaml
src/test/resources/example/tca-policy-req/prop-text.json [new file with mode: 0644]
src/test/resources/https/https-test.properties

index e5936e3..41585ab 100644 (file)
@@ -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
index 3312daf..78a1f7a 100644 (file)
@@ -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 (file)
--- a/pom.xml
+++ b/pom.xml
                                <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>
                                                                <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>
                                <dependency>
                                                <groupId>org.apache.camel</groupId>
                                                <artifactId>camel-spring-boot-starter</artifactId>
-
                                </dependency>
                                <dependency>
                                                <groupId>org.apache.camel</groupId>
                                </dependency>
                                <dependency>
                                                <groupId>org.apache.camel</groupId>
-                                               <artifactId>camel-cxf-starter</artifactId>
+                                               <artifactId>camel-servlet-starter</artifactId>
                                </dependency>
                                <!-- Spring famework -->
                                <dependency>
                                                <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>
                                                <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>
+                               <!-- Others dependencies -->
+                               <dependency>
+                                               <groupId>ch.qos.logback</groupId>
+                                               <artifactId>logback-core</artifactId>
+                                               <version>1.2.3</version>
                                </dependency>
-
-                               <!-- For CAmunda -->
                                <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-classic</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>commons-dbcp</groupId>
+                                               <artifactId>commons-dbcp</artifactId>
+                                               <version>1.4</version>
                                </dependency>
                                <dependency>
                                                <groupId>commons-io</groupId>
                                                <groupId>junit</groupId>
                                                <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>
                                                                                                                                </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>
                                                                                                </configuration>
                                                                                </execution>
                                                                                <execution>
-                                                                                               <id>mariadb-stop-for-it</id>
+                                                                                               <id>docker-stop-for-it</id>
                                                                                                <phase>post-integration-test</phase>
                                                                                                <goals>
                                                                                                                <goal>stop</goal>
index 2727535..281a87c 100644 (file)
@@ -26,6 +26,7 @@ package org.onap.clamp.clds;
 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.autoconfigure.security.SecurityAutoConfiguration
 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;
@@ -88,6 +90,19 @@ public class Application extends SpringBootServletInitializer {
         ModelProperties.registerModelElement(Holmes.class, Holmes.getType());
     }
 
+    /**
+     * 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.
      * 
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 (file)
index 0000000..66cd1f5
--- /dev/null
@@ -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);
+}
index 4886b0d..dcc3189 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.client;
 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());
         }
     }
 }
index b8863e0..6053a0d 100644 (file)
@@ -35,24 +35,26 @@ import org.onap.clamp.clds.exception.DcaeDeploymentException;
 import org.onap.clamp.clds.model.refprop.RefProp;\r
 import org.onap.clamp.clds.util.LoggingUtils;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
 \r
 /**\r
  * This class implements the communication with DCAE for the service\r
  * deployments.\r
- *\r
  */\r
+@Component\r
 public class DcaeDispatcherServices {\r
-    protected static final EELFLogger logger                       = EELFManager.getInstance()\r
-            .getLogger(DcaeDispatcherServices.class);\r
-    protected static final EELFLogger metricsLogger                = EELFManager.getInstance().getMetricsLogger();\r
+\r
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeDispatcherServices.class);\r
+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();\r
     @Autowired\r
-    private RefProp                   refProp;\r
-    private static final String       STATUS_URL_LOG               = "Status URL extracted: ";\r
-    private static final String       DCAE_URL_PREFIX              = "/dcae-deployments/";\r
-    private static final String       DCAE_URL_PROPERTY_NAME       = "DCAE_DISPATCHER_URL";\r
-    public static final String        DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";\r
-    private static final String       DCAE_LINK_FIELD              = "links";\r
-    private static final String       DCAE_STATUS_FIELD            = "status";\r
+    private RefProp refProp;\r
+    private static final String STATUS_URL_LOG = "Status URL extracted: ";\r
+    private static final String DCAE_URL_PREFIX = "/dcae-deployments/";\r
+    private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL";\r
+    private static final String DCAE_REQUEST_FAILED_LOG = "RequestFailed - responseStr=";\r
+    public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";\r
+    private static final String DCAE_LINK_FIELD = "links";\r
+    private static final String DCAE_STATUS_FIELD = "status";\r
 \r
     /**\r
      * Delete the deployment on DCAE.\r
@@ -76,7 +78,7 @@ public class DcaeDispatcherServices {
             LoggingUtils.setResponseContext("0", "Delete deployments success", this.getClass().getName());\r
             return statusUrl;\r
         } catch (Exception e) {\r
-               //Log StatusCode during exception in metrics log \r
+            // Log StatusCode during exception in metrics log\r
             LoggingUtils.setResponseContext("900", "Delete deployments failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Delete deployments error");\r
             logger.error("Exception occurred during Delete Deployment Operation with DCAE", e);\r
@@ -93,7 +95,6 @@ public class DcaeDispatcherServices {
      * @param statusUrl\r
      *            The URL provided by a previous DCAE Query\r
      * @return The status\r
-     * \r
      */\r
     public String getOperationStatus(String statusUrl) {\r
         // Assigning processing status to monitor operation status further\r
@@ -111,7 +112,7 @@ public class DcaeDispatcherServices {
             LoggingUtils.setResponseContext("0", "Get operation status success", this.getClass().getName());\r
             opStatus = status;\r
         } catch (Exception e) {\r
-               //Log StatusCode during exception in metrics log \r
+            // Log StatusCode during exception in metrics log\r
             LoggingUtils.setResponseContext("900", "Get operation status failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Get operation status error");\r
             logger.error("Exception occurred during getOperationStatus Operation with DCAE", e);\r
@@ -124,7 +125,6 @@ public class DcaeDispatcherServices {
 \r
     /**\r
      * This method send a getDeployments operation to DCAE.\r
-     * \r
      */\r
     public void getDeployments() {\r
         Date startTime = new Date();\r
@@ -134,7 +134,7 @@ public class DcaeDispatcherServices {
             DcaeHttpConnectionManager.doDcaeHttpQuery(url, "GET", null, null);\r
             LoggingUtils.setResponseContext("0", "Get deployments success", this.getClass().getName());\r
         } catch (Exception e) {\r
-               //Log StatusCode during exception in metrics log \r
+            // Log StatusCode during exception in metrics log\r
             LoggingUtils.setResponseContext("900", "Get deployments failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Get deployments error");\r
             logger.error("Exception occurred during getDeployments Operation with DCAE", e);\r
@@ -174,7 +174,7 @@ public class DcaeDispatcherServices {
             LoggingUtils.setResponseContext("0", "Create new deployment failed", this.getClass().getName());\r
             return statusUrl;\r
         } catch (Exception e) {\r
-               //Log StatusCode during exception in metrics log \r
+            // Log StatusCode during exception in metrics log\r
             LoggingUtils.setResponseContext("900", "Create new deployment failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Create new deployment error");\r
             logger.error("Exception occurred during createNewDeployment Operation with DCAE", e);\r
@@ -212,7 +212,7 @@ public class DcaeDispatcherServices {
             LoggingUtils.setResponseContext("0", "Delete existing deployment success", this.getClass().getName());\r
             return statusUrl;\r
         } catch (Exception e) {\r
-               //Log StatusCode during exception in metrics log \r
+            // Log StatusCode during exception in metrics log\r
             LoggingUtils.setResponseContext("900", "Delete existing deployment failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Delete existing deployment error");\r
             logger.error("Exception occurred during deleteExistingDeployment Operation with DCAE", e);\r
index 94ebaca..4dfe089 100644 (file)
@@ -50,10 +50,12 @@ import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.refprop.RefProp;\r
 import org.onap.clamp.clds.util.LoggingUtils;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
 \r
 /**\r
  * This class implements the communication with DCAE for the service inventory.\r
  */\r
+@Component\r
 public class DcaeInventoryServices {\r
 \r
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);\r
@@ -107,12 +109,12 @@ public class DcaeInventoryServices {
             dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION);\r
             LoggingUtils.setResponseContext("0", "Set inventory success", this.getClass().getName());\r
         } catch (JsonProcessingException e) {\r
-               LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());\r
-               LoggingUtils.setErrorContext("900", "Set inventory error");\r
+            LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());\r
+            LoggingUtils.setErrorContext("900", "Set inventory error");\r
             logger.error("Error during JSON decoding", e);\r
         } catch (IOException ex) {\r
-               LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());\r
-               LoggingUtils.setErrorContext("900", "Set inventory error");\r
+            LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());\r
+            LoggingUtils.setErrorContext("900", "Set inventory error");\r
             logger.error("Error during DCAE communication", ex);\r
         } finally {\r
             LoggingUtils.setTimeContext(startTime, new Date());\r
@@ -209,7 +211,7 @@ public class DcaeInventoryServices {
      *            The vf UUID\r
      * @return The DCAE inventory type id\r
      */\r
-    public String createUpdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,\r
+    public String createupdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,\r
             String asdcServiceId, String asdcResourceId) {\r
         Date startTime = new Date();\r
         LoggingUtils.setTargetContext("DCAE", "createDCAEServiceType");\r
@@ -237,20 +239,22 @@ public class DcaeInventoryServices {
             Object obj0 = parser.parse(responseStr);\r
             JSONObject jsonObj = (JSONObject) obj0;\r
             typeId = (String) jsonObj.get("typeId"); // need to save this\r
-                                                            // as\r
-                                                            // service_type_id\r
-                                                            // in model table\r
+                                                     // as\r
+                                                     // service_type_id\r
+                                                     // in model table\r
         } catch (IOException | ParseException e) {\r
             logger.error("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e);\r
             throw new BadRequestException("Exception occurred during createupdateDCAEServiceType Operation with DCAE",\r
                     e);\r
         } finally {\r
-               if(typeId != null) {\r
-                       LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success", this.getClass().getName());\r
-               } else {\r
-                       LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed", this.getClass().getName());\r
+            if (typeId != null) {\r
+                LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success",\r
+                        this.getClass().getName());\r
+            } else {\r
+                LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed",\r
+                        this.getClass().getName());\r
                 LoggingUtils.setErrorContext("900", "Create update DCAE ServiceType error");\r
-               }\r
+            }\r
             LoggingUtils.setTimeContext(startTime, new Date());\r
             metricsLogger.info("createupdateDCAEServiceType complete");\r
         }\r
index aaa4a2c..3465598 100644 (file)
@@ -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 com.att.eelf.configuration.EELFManager;
 
 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());
             }
         }
     }
index 72db328..28da148 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.client;
 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());
index e2d16c5..77d7680 100644 (file)
@@ -29,8 +29,8 @@ import com.att.eelf.configuration.EELFManager;
 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.clamp.clds.util.LoggingUtils;
 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 @@ public class OperationalPolicyDelegate implements JavaDelegate {
                 responseMessage = policyClient.sendBrmsPolicy(attributes, prop, LoggingUtils.getRequestId());
             }
             if (responseMessage != null) {
-                execution.setVariable("operationalPolicyResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("operationalPolicyResponseMessage", responseMessage.getBytes());
             }
         }
     }
index 2bca639..4dd2040 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.client;
 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 @@ public class OperationalPolicyDeleteDelegate implements JavaDelegate {
                 responseMessage = policyClient.deleteBrms(prop);
             }
             if (responseMessage != null) {
-                execution.setVariable("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
+                camelExchange.setProperty("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
             }
         }
     }
index b582349..e21bfce 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.client;
 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");
-    }
 }
index 035e64a..2657a03 100644 (file)
@@ -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 com.att.eelf.configuration.EELFManager;
 
 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());
             }
         }
     }
index e88b720..c2aa303 100644 (file)
@@ -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");
 
 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());
             }
         }
     }
-
 }
index b4cad94..0460033 100644 (file)
@@ -57,23 +57,26 @@ import org.onap.policy.api.PushPolicyParameters;
 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 @@ public class PolicyClient {
                 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 @@ public class PolicyClient {
         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 @@ public class PolicyClient {
     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 @@ public class PolicyClient {
      *
      * @param prop
      *            The ModelProperties
-     *
      * @return The response message from policy
      */
     protected String deletePolicy(ModelProperties prop, String policyType) {
index 6684f1a..45dbf81 100644 (file)
@@ -60,7 +60,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpHeaders;\r
 import org.onap.clamp.clds.exception.SdcCommunicationException;\r
 import org.onap.clamp.clds.model.CldsAlarmCondition;\r
-import org.onap.clamp.clds.model.CldsDBServiceCache;\r
 import org.onap.clamp.clds.model.CldsSdcArtifact;\r
 import org.onap.clamp.clds.model.CldsSdcResource;\r
 import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;\r
@@ -76,23 +75,25 @@ import org.onap.clamp.clds.model.refprop.RefProp;
 import org.onap.clamp.clds.util.CryptoUtils;\r
 import org.onap.clamp.clds.util.LoggingUtils;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
 \r
+@Component\r
 public class SdcCatalogServices {\r
 \r
     private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcCatalogServices.class);\r
     private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();\r
-    private static final String       RESOURCE_VF_TYPE              = "VF";\r
-    private static final String       RESOURCE_VFC_TYPE             = "VFC";\r
-    private static final String       RESOURCE_CVFC_TYPE            = "CVFC";\r
+    private static final String RESOURCE_VF_TYPE = "VF";\r
+    private static final String RESOURCE_VFC_TYPE = "VFC";\r
+    private static final String RESOURCE_CVFC_TYPE = "CVFC";\r
     private static final String SDC_REQUESTID_PROPERTY_NAME = "sdc.header.requestId";\r
-    private static final String       SDC_METADATA_URL_PREFIX       = "/metadata";\r
-    private static final String       SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";\r
-    private static final String       SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";\r
-    private static final String       SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";\r
-    private static final String       SDC_INSTANCE_ID_CLAMP         = "CLAMP-Tool";\r
-    private static final String       RESOURCE_URL_PREFIX           = "resources";\r
+    private static final String SDC_METADATA_URL_PREFIX = "/metadata";\r
+    private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";\r
+    private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";\r
+    private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";\r
+    private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool";\r
+    private static final String RESOURCE_URL_PREFIX = "resources";\r
     @Autowired\r
-    private RefProp                   refProp;\r
+    private RefProp refProp;\r
 \r
     /**\r
      * Return SDC id and pw as a HTTP Basic Auth string (for example: Basic\r
@@ -131,7 +132,7 @@ public class SdcCatalogServices {
         LoggingUtils.setTargetContext("SDC", "getSdcServicesInformation");\r
         try {\r
             String url = baseUrl;\r
-            if (uuid != null) {\r
+            if (uuid != null && !uuid.isEmpty()) {\r
                 url = baseUrl + "/" + uuid + SDC_METADATA_URL_PREFIX;\r
             }\r
             URL urlObj = new URL(url);\r
@@ -142,7 +143,7 @@ public class SdcCatalogServices {
             conn.setRequestProperty(refProp.getStringValue(SDC_REQUESTID_PROPERTY_NAME), LoggingUtils.getRequestId());\r
             conn.setRequestMethod("GET");\r
             String resp = getResponse(conn);\r
-            logger.info(resp);\r
+            logger.debug("Services list received from SDC:" + resp);\r
             // metrics log\r
             LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName());\r
             return resp;\r
@@ -333,7 +334,6 @@ public class SdcCatalogServices {
         }\r
     }\r
 \r
-\r
     // upload artifact to sdc based on serviceUUID and resource name on url\r
     private String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) {\r
         // Verify whether it is triggered by Validation Test button from UI\r
@@ -422,23 +422,11 @@ public class SdcCatalogServices {
         }\r
     }\r
 \r
-    public CldsDBServiceCache getCldsDbServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData) {\r
-        try {\r
-            CldsDBServiceCache cldsDbServiceCache = new CldsDBServiceCache();\r
-            cldsDbServiceCache.setCldsDataInstream(cldsServiceData);\r
-            cldsDbServiceCache.setInvariantId(cldsServiceData.getServiceInvariantUUID());\r
-            cldsDbServiceCache.setServiceId(cldsServiceData.getServiceUUID());\r
-            return cldsDbServiceCache;\r
-        } catch (IOException e) {\r
-            logger.error("Exception when getting service in cache", e);\r
-            throw new SdcCommunicationException("Exception when getting service in cache", e);\r
-        }\r
-    }\r
-\r
     /**\r
      * Check if the SDC Info in cache has expired.\r
      * \r
      * @param cldsServiceData\r
+     *            The object representing the service data\r
      * @return boolean flag\r
      * @throws GeneralSecurityException\r
      *             In case of issues with the decryting the encrypted password\r
@@ -447,23 +435,25 @@ public class SdcCatalogServices {
      */\r
     public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData)\r
             throws GeneralSecurityException, DecoderException {\r
-        boolean expired = false;\r
         if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) {\r
             String cachedServiceUuid = cldsServiceData.getServiceUUID();\r
             String latestServiceUuid = getServiceUuidFromServiceInvariantId(cldsServiceData.getServiceInvariantUUID());\r
-            String defaultRecordAge = refProp.getStringValue("CLDS_SERVICE_CACHE_MAX_SECONDS");\r
-            if ((!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null\r
-                    && cldsServiceData.getAgeOfRecord() > Long.parseLong(defaultRecordAge))) {\r
-                expired = true;\r
+            String configuredMaxAge = refProp.getStringValue("clds.service.cache.invalidate.after.seconds");\r
+            if (configuredMaxAge == null) {\r
+                logger.warn(\r
+                        "clds.service.cache.invalidate.after.seconds NOT set in clds-reference.properties file, taking 60s as default");\r
+                configuredMaxAge = "60";\r
             }\r
+            return (!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null\r
+                    && cldsServiceData.getAgeOfRecord() > Long.parseLong(configuredMaxAge));\r
         } else {\r
-            expired = true;\r
+            return true;\r
         }\r
-        return expired;\r
     }\r
 \r
     /**\r
-     * Get the Service Data with Alarm Conditions for a given invariantServiceUuid.\r
+     * Get the Service Data with Alarm Conditions for a given\r
+     * invariantServiceUuid.\r
      * \r
      * @param invariantServiceUuid\r
      * @return The CldsServiceData\r
@@ -510,8 +500,7 @@ public class SdcCatalogServices {
                     cldsServiceData.setCldsVfs(cldsVfDataList);\r
                     // For each vf in the list , add all vfc's\r
                     getAllVfcForVfList(cldsVfDataList, catalogUrl);\r
-                    logger.info("value of cldsServiceData:" + cldsServiceData);\r
-                    logger.info("value of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());\r
+                    logger.info("Invariant Service ID of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());\r
                 }\r
             }\r
         }\r
@@ -606,17 +595,17 @@ public class SdcCatalogServices {
 \r
     private void handleVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {\r
         CldsVfcData currCldsVfcData = new CldsVfcData();\r
-                    TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");\r
-                    TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");\r
-                    currCldsVfcData.setVfcName(vfcResourceName.textValue());\r
-                    currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());\r
-                    cldsVfcDataList.add(currCldsVfcData);\r
+        TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");\r
+        TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");\r
+        currCldsVfcData.setVfcName(vfcResourceName.textValue());\r
+        currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());\r
+        cldsVfcDataList.add(currCldsVfcData);\r
     }\r
 \r
     private void handleCVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {\r
         handleVFCtypeNode(currVfcNode, cldsVfcDataList);\r
-                    cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));\r
-                }\r
+        cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));\r
+    }\r
 \r
     private List<CldsVfcData> getVFCfromCVFC(String resourceUUID) {\r
         String catalogUrl = refProp.getStringValue(SDC_CATALOG_URL_PROPERTY_NAME);\r
@@ -786,7 +775,6 @@ public class SdcCatalogServices {
         cldsAlarmConditionList.add(cldsAlarmCondition);\r
     }\r
 \r
-\r
     // Get the responses for the current artifact from the artifacts URL.\r
     private String getResponsesFromArtifactUrl(String artifactsUrl) {\r
         String hostUrl = refProp.getStringValue("sdc.hostUrl");\r
@@ -802,9 +790,9 @@ public class SdcCatalogServices {
      * Service to services/resources/artifacts from sdc.Pass alarmConditions as\r
      * true to get alarm conditons from artifact url and else it is false\r
      * \r
-     * @param url The URL to trigger\r
+     * @param url\r
+     *            The URL to trigger\r
      * @return The String containing the payload\r
-     * \r
      */\r
     public String getCldsServicesOrResourcesBasedOnURL(String url) {\r
         Date startTime = new Date();\r
@@ -832,12 +820,12 @@ public class SdcCatalogServices {
             logger.error("Exception occurred during query to SDC", e);\r
             return "";\r
         } catch (DecoderException e) {\r
-               LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());\r
+            LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Get sdc resources error");\r
             logger.error("Exception when attempting to decode the Hex string", e);\r
             throw new SdcCommunicationException("Exception when attempting to decode the Hex string", e);\r
         } catch (GeneralSecurityException e) {\r
-               LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());\r
+            LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());\r
             LoggingUtils.setErrorContext("900", "Get sdc resources error");\r
             logger.error("Exception when attempting to decrypt the encrypted password", e);\r
             throw new SdcCommunicationException("Exception when attempting to decrypt the encrypted password", e);\r
@@ -901,7 +889,7 @@ public class SdcCatalogServices {
             byIdObjectNode.putPOJO("byAlertDescription", alertDescObjectNodeByAlert);\r
             globalPropsJson = decodeGlobalProp(globalProps, mapper);\r
             globalPropsJson.putPOJO("shared", byIdObjectNode);\r
-            logger.info("value of objNode:" + globalPropsJson);\r
+            logger.info("Global properties JSON created with SDC info:" + globalPropsJson);\r
         } else {\r
             /**\r
              * to create json with total properties when no serviceUUID passed\r
index d4b5b08..3fb53a3 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.client.req.sdc;
 
 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.List;
 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.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;
 
 /**
  * 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 @@ public class SdcReq {
      *            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 @@ public class SdcReq {
      *            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 @@ public class SdcReq {
      * @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 @@ public class SdcReq {
      * 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 @@ public class SdcReq {
     }
 
     /**
-     * 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();
index b99d3a9..ae97041 100644 (file)
@@ -26,21 +26,7 @@ package org.onap.clamp.clds.config;
 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 @@ public class CldsConfiguration {
         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 (file)
index 0000000..3a6a816
--- /dev/null
@@ -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);
+    }
+}
index fae5e58..dca93e4 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.model.prop;
 
 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.Map;
 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 @@ import org.onap.clamp.clds.service.CldsService;
  * 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 @@ public class ModelProperties {
 
     /**
      * 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 @@ public class ModelProperties {
     }
 
     /**
-     * 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);
     }
 
index 5965a41..f0cf71c 100644 (file)
@@ -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 @@ package org.onap.clamp.clds.model.refprop;
 
 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 @@ public class RefProp {
         ObjectMapper objectMapper = new ObjectMapper();
         return objectMapper.readValue(getStringValue(key1, key2), JsonNode.class);
     }
-
 }
index 1238236..a139de1 100644 (file)
@@ -56,11 +56,11 @@ import javax.ws.rs.QueryParam;
 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 @@ import org.springframework.web.client.HttpClientErrorException;
 @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 @@ public class CldsService extends SecureServiceBase {
     @Autowired
     private CldsDao cldsDao;
     @Autowired
-    private RuntimeService runtimeService;
-    @Autowired
     private XslTransformer cldsBpmnTransformer;
     @Autowired
     private RefProp refProp;
@@ -410,7 +410,7 @@ public class CldsService extends SecureServiceBase {
                 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 @@ public class CldsService extends SecureServiceBase {
         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 @@ public class CldsService extends SecureServiceBase {
         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 @@ public class CldsService extends SecureServiceBase {
         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 @@ public class CldsService extends SecureServiceBase {
      *             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);
index 3dfeaeb..fa7a738 100644 (file)
@@ -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 @@ import java.util.Arrays;
  * 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;
 
     /**
 
 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
@@ -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"); 
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 
-package org.onap.clamp.clds.config;
+package org.onap.clamp.clds.util;
 
-import java.security.GeneralSecurityException;
+import com.att.eelf.i18n.EELFResolvableErrorEnum;
+import com.att.eelf.i18n.EELFResourceManager;
 
-import javax.sql.DataSource;
+public enum LogMessages implements EELFResolvableErrorEnum {
+    LOGSERVICE_HELLO_MESSAGE, LOGSERVICE_EMAIL_ERROR, LOGSERVICE_EMAIL_CLASS, LOGSERVICE_EMAIL_CLASS_NULL, PROCESS_INSTANCE_ID;
 
-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();
+    static {
+        EELFResourceManager.loadMessageBundle("logmessages");
     }
 }
diff --git a/src/main/resources/META-INF/processes.xml b/src/main/resources/META-INF/processes.xml
deleted file mode 100644 (file)
index 921a102..0000000
+++ /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>
index 1db0875..dd4ea6d 100644 (file)
@@ -62,8 +62,6 @@ server.port=8080
 \r
 server.contextPath=/\r
 #Modified engine-rest applicationpath\r
-#camel.component.servlet.mapping.context-path=/restservices/clds/v1/*\r
-spring.jersey.application-path=/restservices/clds/v1\r
 spring.profiles.active=clamp-default,clamp-spring-authentication\r
 \r
 #The max number of active threads in this pool\r
@@ -78,34 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
 \r
 camel.springboot.consumer-template-cache-size=1000\r
 camel.springboot.producer-template-cache-size=1000\r
-camel.springboot.jmx-enabled=true\r
+camel.springboot.jmx-enabled=false\r
 camel.defaultthreadpool.poolsize=10\r
 camel.defaultthreadpool.maxpoolsize=20\r
 camel.defaultthreadpool.maxqueuesize=1000\r
 camel.defaultthreadpool.keepaliveTime=60\r
 camel.defaultthreadpool.rejectpolicy=CallerRuns\r
-\r
-#server.port=0\r
-#Camunda Process Engine DataSource connection Details\r
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver\r
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647\r
-spring.datasource.camunda.username=camunda\r
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e\r
-spring.datasource.camunda.validationQuery=SELECT 1\r
-spring.datasource.camunda.validationQueryTimeout=20000\r
-spring.datasource.camunda.validationInterval=30000\r
-spring.datasource.camunda.testWhileIdle = true\r
-spring.datasource.camunda.minIdle = 0\r
-spring.datasource.camunda.initialSize=0\r
-# Automatically test whether a connection provided is good or not\r
-spring.datasource.camunda.testOnBorrow=true\r
-spring.datasource.camunda.ignoreExceptionOnPreLoad=true\r
-\r
-#Camunda application properties\r
-#Camunda history level\r
-camunda.bpm.history-level=auto\r
-camunda.bpm.database.type=mariadb\r
-camunda.bpm.database.schema-update=true\r
+#camel.springboot.xmlRoutes = false\r
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml\r
+#camel.springboot.typeConversion = false\r
 \r
 #clds datasource connection details\r
 spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver\r
diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn
deleted file mode 100644 (file)
index 11edc07..0000000
+++ /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 (file)
index 0000000..7a3ebdb
--- /dev/null
@@ -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
index 95ba919..09cb5c9 100644 (file)
@@ -80,8 +80,8 @@ op.eNodeB.period=10s
 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\r
-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0\r
+sdc.serviceUsername=clamp\r
+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981\r
 sdc.artifactLabel=blueprintclampcockpit\r
 sdc.sdcX-InstanceID=CLAMP\r
 sdc.artifactType=DCAE_INVENTORY_BLUEPRINT\r
@@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann
 action.test.override=false\r
 # if action.insert.test.event is true, then insert event even if the action is set to test\r
 action.insert.test.event=false\r
-CLDS_SERVICE_CACHE_MAX_SECONDS=30\r
+clds.service.cache.invalidate.after.seconds=120\r
 \r
 #DCAE Inventory Url Properties\r
 DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080
index 5909e8e..d2c06c8 100644 (file)
@@ -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"
                    ]
        },
        {
index b4415ed..626cf95 100644 (file)
@@ -50,7 +50,6 @@ import org.onap.clamp.clds.util.ResourceFileUtil;
 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 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  */
 @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);
index 56de81d..2bdef97 100644 (file)
@@ -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 @@ import org.springframework.test.context.junit4.SpringRunner;
 @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 java.security.cert.X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
 
-        @Override
-        public void checkClientTrusted(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 {
-        }
-    } };
+                @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 class DcaeHttpConnectionManagerItCase extends AbstractItCase {
     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");
     }
 }
index 62e04ed..6f5c24d 100644 (file)
@@ -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.Holmes;
 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 @@ import org.springframework.test.context.junit4.SpringRunner;
  */
 @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
index 3009199..9013e0c 100644 (file)
@@ -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.clamp.clds.util.ResourceFileUtil;
 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 @@ public class OperationPolicyReqItCase extends AbstractItCase {
         // 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 @@ public class OperationPolicyReqItCase extends AbstractItCase {
         // 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);
     }
 }
index 2757377..71bd2d5 100644 (file)
@@ -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.model.prop.Tca;
 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 @@ import org.springframework.test.context.junit4.SpringRunner;
  */
 @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 @@ public class PolicyClientItCase extends AbstractItCase {
      */
     @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";
     }
index 7ccda5a..8f76b18 100644 (file)
@@ -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.Test;
 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 @@ import org.springframework.test.context.junit4.SpringRunner;
  */
 @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);
 
     /**
index f2eadbe..548212e 100644 (file)
@@ -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.CldsSdcServiceInfo;
 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 @@ import org.springframework.test.context.junit4.SpringRunner;
  */
 @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 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
             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 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
             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 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
             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 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
         // 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);
-
     }
-
 }
index 757d85b..afff9dd 100644 (file)
@@ -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");
 
 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 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 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 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"));
     }
 }
index c17ec0d..419bfde 100644 (file)
@@ -39,7 +39,6 @@ import org.onap.clamp.clds.model.prop.ModelProperties;
 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 @@ import org.springframework.test.context.junit4.SpringRunner;
  */
 @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 @@ public class TcaRequestFormatterItCase extends AbstractItCase {
         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 @@ public class TcaRequestFormatterItCase extends AbstractItCase {
 
     @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);
     }
index 03d7d65..138d727 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================\r
  * ONAP CLAMP\r
  * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights\r
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights\r
  *                             reserved.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
@@ -30,6 +30,7 @@ import com.fasterxml.jackson.databind.JsonNode;
  */\r
 public class CustomModelElement extends AbstractModelElement {\r
 \r
+    private String test;\r
     private static final String CUSTOM_TYPE = "customType";\r
 \r
     /**\r
@@ -38,10 +39,18 @@ public class CustomModelElement extends AbstractModelElement {
     public CustomModelElement(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {\r
         super(CUSTOM_TYPE, modelProp, modelBpmn, modelJson);\r
         topicPublishes = getValueByName("topicPublishes");\r
+        test = this.getValueByName("test");\r
     }\r
 \r
     public static final String getType() {\r
         return CUSTOM_TYPE;\r
     }\r
 \r
+    public String getTest() {\r
+        return test;\r
+    }\r
+\r
+    public void setTest(String test) {\r
+        this.test = test;\r
+    }\r
 }\r
index 89eaf51..46c70e5 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================\r
  * ONAP CLAMP\r
  * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights\r
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights\r
  *                             reserved.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
@@ -35,33 +35,21 @@ public class CustomModelElementTest {
     }\r
 \r
     @Test\r
-    public void testNewElement() {\r
-\r
-        try {\r
-            String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");\r
-            String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");\r
-            String modName = "example-model-name";\r
-            String controlName = "example-control-name";\r
-\r
-            CustomModelElement customModelElement = null;\r
-\r
-            // Instantiate first, we should not have our CustomModelElement yet\r
-            ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);\r
-\r
-            Assert.assertNotNull(prop);\r
-\r
-            customModelElement = prop.getType(CustomModelElement.class);\r
-\r
-            Assert.assertNull(customModelElement);\r
-\r
-            ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());\r
-\r
-            customModelElement = prop.getType(CustomModelElement.class);\r
-\r
-            Assert.assertNotNull(customModelElement);\r
-\r
-        } catch (IOException e) {\r
-            e.printStackTrace();\r
-        }\r
+    public void testCustomElement() throws IOException {\r
+        String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/custom/modelBpmn.json");\r
+        String modelProp = ResourceFileUtil\r
+                .getResourceAsString("example/model-properties/custom/modelBpmnProperties.json");\r
+        String modName = "example-model-name";\r
+        String controlName = "example-control-name";\r
+        CustomModelElement customModelElement = null;\r
+        // Instantiate first, we should not have our CustomModelElement yet\r
+        ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);\r
+        Assert.assertNotNull(prop);\r
+        customModelElement = prop.getType(CustomModelElement.class);\r
+        Assert.assertNull(customModelElement);\r
+        ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());\r
+        customModelElement = prop.getType(CustomModelElement.class);\r
+        Assert.assertNotNull(customModelElement);\r
+        Assert.assertEquals("This is a test", customModelElement.getTest());\r
     }\r
 }\r
index eb02141..7bb11a9 100644 (file)
@@ -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 @@ public class ModelPropertiesTest {
 
     @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 @@ public class ModelPropertiesTest {
         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 @@ public class ModelPropertiesTest {
         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 @@ public class ModelPropertiesTest {
 
     @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 @@ public class ModelPropertiesTest {
         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 @@ public class ModelPropertiesTest {
         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
index f7b2bad..2e284b0 100644 (file)
@@ -76,42 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
 
 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
index 4627269..d6c8bc4 100644 (file)
@@ -2,19 +2,19 @@
 # ============LICENSE_START=======================================================\r
 # ONAP CLAMP\r
 # ================================================================================\r
-# Copyright (C) 2017 AT&T Intellectual Property. All rights\r
+# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights\r
 #                             reserved.\r
 # ================================================================================\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
+# Licensed under the Apache License, Version 2.0 (the "License"); \r
+# you may not use this file except in compliance with the License. \r
 # You may obtain a copy of the License at\r
-#\r
+# \r
 # http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
+# \r
+# Unless required by applicable law or agreed to in writing, software \r
+# distributed under the License is distributed on an "AS IS" BASIS, \r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \r
+# See the License for the specific language governing permissions and \r
 # limitations under the License.\r
 # ============LICENSE_END============================================\r
 # ===================================================================\r
@@ -77,11 +77,11 @@ op.eNodeB.limit=2
 op.eNodeB.period=10s\r
 #\r
 # Sdc service properties\r
-sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/\r
-sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080\r
-sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services\r
-sdc.serviceUsername=test\r
-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0\r
+sdc.catalog.url=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/\r
+sdc.hostUrl=http://localhost:${docker.http-cache.port.host}\r
+sdc.serviceUrl=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/services\r
+sdc.serviceUsername=clamp\r
+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981\r
 sdc.artifactLabel=blueprintclampcockpit\r
 sdc.sdcX-InstanceID=CLAMP\r
 sdc.artifactType=DCAE_INVENTORY_BLUEPRINT\r
@@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann
 action.test.override=false\r
 # if action.insert.test.event is true, then insert event even if the action is set to test\r
 action.insert.test.event=false\r
-CLDS_SERVICE_CACHE_MAX_SECONDS=30\r
+clds.service.cache.invalidate.after.seconds=120\r
 \r
 #DCAE Inventory Url Properties\r
 DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080\r
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 (file)
index 0000000..fc2f1fd
--- /dev/null
@@ -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
index cd76a12..43fecc9 100644 (file)
         "vnfRecipe"
       ]
     },
-    {
-      "name": "location",
-      "value": [
-        "SNDGCA64",
-        "ALPRGAED"
-      ]
-    },
     {
       "name": "vf",
       "value": [
diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json
deleted file mode 100644 (file)
index 8f7b8e6..0000000
+++ /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 (file)
index eacb124..0000000
+++ /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 (file)
index 3030adf..0000000
+++ /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": {
-          "": ""
-        }
-      }
-    }
-  }
-}
index 7bb4fe0..8e2780c 100644 (file)
     {
       "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 (file)
index bf34809..0000000
+++ /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 (file)
index 0000000..ea6efdd
--- /dev/null
@@ -0,0 +1,6 @@
+{
+       "service": {
+               "4cc5b45a-1f63-4194-8100-cd8e14248c92": "vFirewall",
+               "c95b0e7c-c1f0-4287-9928-7964c5377a46": "vLoadBalancer"
+       }
+}
index 2082e55..8739bb2 100644 (file)
@@ -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 @@ node_templates:
     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 @@ node_templates:
         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
index 9532225..101dc2c 100644 (file)
@@ -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 @@ node_templates:
     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 @@ node_templates:
         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 @@ node_templates:
       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 (file)
index 0000000..acaa889
--- /dev/null
@@ -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
index 54005ef..82cd999 100644 (file)
@@ -77,42 +77,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
 
 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\r
-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e\r
-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