Merge "bump the SO version to 1.5.2"
diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java
index c75aa9a..1701cda 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java
@@ -51,7 +51,7 @@
 import org.onap.so.openstack.exceptions.MsoException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.mappers.StackInfoMapper;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -821,7 +821,7 @@
     private RestClient getMulticloudClient(String endpoint, String tenantId) {
         HttpClient client = null;
         try {
-            client = httpClientFactory.newJsonClient(new URL(endpoint), TargetEntity.MULTICLOUD);
+            client = httpClientFactory.newJsonClient(new URL(endpoint), ONAPComponents.MULTICLOUD);
             if (tenantId != null && !tenantId.isEmpty()) {
                 client.addAdditionalHeader("Project", tenantId);
             }
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
index aa19aed..6fb65ca 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
@@ -28,7 +28,7 @@
 
 @SpringBootApplication(scanBasePackages = {"org.onap.so.adapters.catalogdb", "org.onap.so.db.catalog.client",
         "org.onap.so.logging.jaxrs.filter", "org.onap.so.logging.spring.interceptor", "org.onap.so.client",
-        "org.onap.so.configuration", "org.onap.so.db"})
+        "org.onap.so.configuration", "org.onap.so.db", "org.onap.logging.filter"})
 @EnableJpaRepositories("org.onap.so.db.catalog.data.repository")
 @EntityScan("org.onap.so.db.catalog.beans")
 @EnableScheduling
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java
index b43447f..6993470 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java
@@ -23,10 +23,12 @@
 import javax.annotation.PostConstruct;
 import javax.ws.rs.ApplicationPath;
 import org.glassfish.jersey.server.ResourceConfig;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.adapters.catalogdb.rest.CatalogDbAdapterRest;
 import org.onap.so.adapters.catalogdb.rest.ServiceRestImpl;
 import org.onap.so.adapters.catalogdb.rest.VnfRestImpl;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.context.annotation.Configuration;
 import io.swagger.jaxrs.config.BeanConfig;
 import io.swagger.jaxrs.listing.ApiListingResource;
@@ -38,10 +40,11 @@
 
     @PostConstruct
     public void setUp() {
+        System.setProperty(Constants.Property.PARTNER_NAME, ONAPComponents.CATALOG_DB.toString());
         register(CatalogDbAdapterRest.class);
         register(ApiListingResource.class);
         register(SwaggerSerializers.class);
-        register(JaxRsFilterLogging.class);
+        register(SOAuditLogContainerFilter.class);
         register(ServiceRestImpl.class);
         register(VnfRestImpl.class);
         BeanConfig beanConfig = new BeanConfig();
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebMvcConfig.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebMvcConfig.java
index 4dabb58..ff0f8dc 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebMvcConfig.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebMvcConfig.java
@@ -21,14 +21,16 @@
 package org.onap.so.adapters.catalogdb;
 
 
-import org.onap.so.logging.spring.interceptor.LoggingInterceptor;
+import org.onap.logging.filter.spring.LoggingInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.handler.MappedInterceptor;
 
 @Configuration
+@ComponentScan(basePackages = {"org.onap.logging.filter"})
 public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
     @Autowired
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/VnfRestImpl.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/VnfRestImpl.java
index 4353526..a3e3a8e 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/VnfRestImpl.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/VnfRestImpl.java
@@ -72,7 +72,7 @@
         List<VnfResourceCustomization> vnfCustom = service.getVnfCustomizations().stream()
                 .filter(vnfCust -> vnfCust.getModelCustomizationUUID().equals(modelCustomizationUUID))
                 .collect(Collectors.toList());
-        if (vnfCustom.isEmpty() || vnfCustom == null) {
+        if (vnfCustom.isEmpty()) {
             return null;
         } else if (vnfCustom.size() > 1) {
             throw new RuntimeException(
@@ -92,7 +92,7 @@
         List<VnfResourceCustomization> vnfCustom = service.getVnfCustomizations().stream()
                 .filter(vnfCust -> vnfCust.getModelCustomizationUUID().equals(modelCustomizationUUID))
                 .collect(Collectors.toList());
-        if (vnfCustom.isEmpty() || vnfCustom == null) {
+        if (vnfCustom.isEmpty()) {
             throw new RuntimeException("No Vnf Found");
         } else if (vnfCustom.size() > 1) {
             throw new RuntimeException(
diff --git a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V7.0__AddActivatedForOrchestrationStatus.sql b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V7.0__AddActivatedForOrchestrationStatus.sql
new file mode 100644
index 0000000..30b5010
--- /dev/null
+++ b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V7.0__AddActivatedForOrchestrationStatus.sql
@@ -0,0 +1,47 @@
+INSERT INTO orchestration_status_state_transition_directive(RESOURCE_TYPE, ORCHESTRATION_STATUS, TARGET_ACTION, FLOW_DIRECTIVE)
+VALUES
+
+('CONFIGURATION', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('CONFIGURATION', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('CONFIGURATION', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('CONFIGURATION', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+
+('NETWORK', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('NETWORK', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('NETWORK', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('NETWORK', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+('NETWORK', 'ACTIVATED', 'CREATE', 'SILENT_SUCCESS'),
+('NETWORK', 'ACTIVATED', 'DELETE', 'FAIL'),
+('NETWORK', 'ACTIVATED', 'UPDATE', 'CONTINUE'),
+('NETWORK_COLLECTION', 'ACTIVATED', 'CREATE', 'FAIL'),
+('NETWORK_COLLECTION', 'ACTIVATED', 'DELETE', 'CONTINUE'),
+('NETWORK_COLLECTION', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+
+('NO_VALIDATE', 'ACTIVATED', 'CUSTOM', 'CONTINUE'),
+
+('SERVICE', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('SERVICE', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('SERVICE', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('SERVICE', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+('SERVICE', 'ACTIVATED', 'CHANGE_MODEL', 'CONTINUE'),
+
+('VF_MODULE', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('VF_MODULE', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('VF_MODULE', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('VF_MODULE', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+('VF_MODULE', 'ACTIVATED', 'CHANGE_MODEL', 'CONTINUE'),
+('VF_MODULE', 'ACTIVATED', 'CREATE', 'SILENT_SUCCESS'),
+('VF_MODULE', 'ACTIVATED', 'DELETE', 'FAIL'),
+
+('VNF', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('VNF', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('VNF', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('VNF', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+('VNF', 'ACTIVATED', 'CHANGE_MODEL', 'CONTINUE'),
+
+('VOLUME_GROUP', 'ACTIVATED', 'ASSIGN', 'SILENT_SUCCESS'),
+('VOLUME_GROUP', 'ACTIVATED', 'UNASSIGN', 'FAIL'),
+('VOLUME_GROUP', 'ACTIVATED', 'ACTIVATE', 'SILENT_SUCCESS'),
+('VOLUME_GROUP', 'ACTIVATED', 'DEACTIVATE', 'CONTINUE'),
+('VOLUME_GROUP', 'ACTIVATED', 'CREATE', 'SILENT_SUCCESS'),
+('VOLUME_GROUP', 'ACTIVATED', 'DELETE', 'FAIL');
\ No newline at end of file
diff --git a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogDBRestTest.java b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogDBRestTest.java
index 145ba50..e1cca89 100644
--- a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogDBRestTest.java
+++ b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogDBRestTest.java
@@ -22,13 +22,13 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.INVOCATION_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.LOG_TIMESTAMP;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.PARTNER_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.SERVICE_NAME;
 import java.io.IOException;
 import java.util.Map;
 import javax.ws.rs.core.MediaType;
@@ -815,27 +815,27 @@
 
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("v2/vfModules", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertEquals("INPROGRESS", mdc.get(RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("500", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("500", mdc.get(RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("v2/vfModules", mdc.get(SERVICE_NAME));
-                assertEquals("ERROR", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertEquals("ERROR", mdc.get(RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(RESPONSE_DESCRIPTION));
             }
     }
 
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AbstractAuditService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AbstractAuditService.java
index 8edce12..0c05df9 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AbstractAuditService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AbstractAuditService.java
@@ -22,19 +22,18 @@
 package org.onap.so.adapters.audit;
 
 import java.util.Optional;
-import org.camunda.bpm.client.task.ExternalTask;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
+import org.onap.so.utils.ExternalTaskUtils;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 @Component
-public abstract class AbstractAuditService {
+public abstract class AbstractAuditService extends ExternalTaskUtils {
 
     private static final Logger logger = LoggerFactory.getLogger(AbstractAuditService.class);
 
@@ -81,23 +80,4 @@
             return false;
         }
     }
-
-    protected String[] getRetrySequence() {
-        return env.getProperty("mso.workflow.topics.retrySequence", String[].class);
-    }
-
-    protected void setupMDC(ExternalTask externalTask) {
-        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        String msoRequestId = externalTask.getVariable("mso-request-id");
-        if (msoRequestId != null && !msoRequestId.isEmpty()) {
-            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
-        }
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, externalTask.getTopicName());
-    }
-
-    protected long calculateRetryDelay(int currentRetries) {
-        int retrySequence = getRetrySequence().length - currentRetries;
-        long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier", "6000"));
-        return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
-    }
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
index 1e5b6de..54ffc59 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
@@ -30,11 +30,11 @@
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -46,16 +46,16 @@
     public HeatStackAudit heatStackAudit;
 
     @Autowired
-    public Environment environment;
+    private AuditMDCSetup mdcSetup;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         Map<String, Object> variables = new HashMap<>();
         boolean success = false;
         try {
-            logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,
-                    externalTask.getRetries());
+            Integer retryCount = externalTask.getRetries();
+            logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory, retryCount);
             Optional<AAIObjectAuditList> auditListOpt = heatStackAudit.auditHeatStack(auditInventory.getCloudRegion(),
                     auditInventory.getCloudOwner(), auditInventory.getTenantId(), auditInventory.getHeatStackName());
             if (auditListOpt.isPresent()) {
@@ -69,29 +69,35 @@
             logger.error("Error during audit of stack", e);
         }
         variables.put("auditIsSuccessful", success);
+        mdcSetup.setElapsedTime();
+        String externalTaskId = externalTask.getId();
         if (success) {
             externalTaskService.complete(externalTask, variables);
-            logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+            logger.debug("The External Task Id: {}  Successful", externalTaskId);
             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+            mdcSetup.clearClientMDCs();
         } else {
-            if (externalTask.getRetries() == null) {
+            Integer retryCount = externalTask.getRetries();
+            if (retryCount == null) {
                 logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                        externalTask.getId(), getRetrySequence().length);
+                        externalTaskId, getRetrySequence().length);
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
                         UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);
-            } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+            } else if (retryCount != null && retryCount - 1 == 0) {
                 externalTaskService.complete(externalTask, variables);
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
                 logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                        externalTask.getId(), externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
-                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, retryCount - 1,
+                        calculateRetryDelay(retryCount));
             }
-            logger.debug("The External Task Id: {} Failed", externalTask.getId());
+            logger.debug("The External Task Id: {} Failed", externalTaskId);
         }
     }
 
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
index 0aa4f9b..9a4f154 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
@@ -28,6 +28,7 @@
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -44,6 +45,9 @@
     protected HeatStackAudit heatStackAudit;
 
     @Autowired
+    private AuditMDCSetup mdcSetup;
+
+    @Autowired
     protected AuditVServer auditVservers;
 
     @Autowired
@@ -53,12 +57,13 @@
     protected Environment env;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         Map<String, Object> variables = new HashMap<>();
         boolean success = false;
         try {
-            logger.info("Executing External Task Delete Audit Inventory. Retry Number: {}", externalTask.getRetries());
+            Integer retryCount = externalTask.getRetries();
+            logger.info("Executing External Task Delete Audit Inventory. Retry Number: {}", retryCount);
             Optional<AAIObjectAuditList> auditListOpt = auditDataService.getStackDataFromRequestDb(auditInventory);
             if (auditListOpt.isPresent()) {
                 auditVservers.auditVservers(auditListOpt.get());
@@ -77,29 +82,35 @@
             logger.error("Error during audit of stack", e);
         }
         variables.put("auditIsSuccessful", success);
+        mdcSetup.setElapsedTime();
+        String externalTaskId = externalTask.getId();
         if (success) {
             externalTaskService.complete(externalTask, variables);
-            logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+            logger.debug("The External Task Id: {}  Successful", externalTaskId);
             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+            mdcSetup.clearClientMDCs();
         } else {
-            if (externalTask.getRetries() == null) {
+            Integer retryCount = externalTask.getRetries();
+            if (retryCount == null) {
                 logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                        externalTask.getId(), getRetrySequence().length);
+                        externalTaskId, getRetrySequence().length);
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
                         UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);
-            } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+            } else if (retryCount != null && retryCount - 1 == 0) {
                 externalTaskService.complete(externalTask, variables);
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
                 logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                        externalTask.getId(), externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
-                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, retryCount - 1,
+                        calculateRetryDelay(retryCount));
             }
-            logger.debug("The External Task Id: {} Failed", externalTask.getId());
+            logger.debug("The External Task Id: {} Failed", externalTaskId);
         }
     }
 
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditQueryStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditQueryStackService.java
index 2ef7d5b..dc672ff 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditQueryStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditQueryStackService.java
@@ -7,6 +7,7 @@
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,47 +23,56 @@
     protected HeatStackAudit heatStackAudit;
 
     @Autowired
+    private AuditMDCSetup mdcSetup;
+
+    @Autowired
     protected AuditDataService auditDataService;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         boolean success = false;
         Map<String, Object> variables = new HashMap<>();
         try {
+            Integer retryCount = externalTask.getRetries();
             logger.info("Executing External Task Query Audit Inventory. Audit Inventory: {} \n Retry Number: {}",
-                    auditInventory.toString(), externalTask.getRetries());
+                    auditInventory.toString(), retryCount);
 
             Optional<AAIObjectAuditList> auditList = heatStackAudit.queryHeatStack(auditInventory.getCloudOwner(),
                     auditInventory.getCloudRegion(), auditInventory.getTenantId(), auditInventory.getHeatStackName());
 
             if (auditList.isPresent()) {
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
                 success = true;
                 auditDataService.writeStackDataToRequestDb(auditInventory, auditList.get());
             }
+            mdcSetup.setElapsedTime();
+            String externalTaskId = externalTask.getId();
             if (success) {
                 externalTaskService.complete(externalTask, variables);
-                logger.debug("The External Task {}  was Successful", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+                logger.debug("The External Task {}  was Successful", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
-                if (externalTask.getRetries() == null) {
+                if (retryCount == null) {
                     logger.debug("The External Task {} Failed. Setting Retries to Default Start Value: {}",
-                            externalTask.getId(), getRetrySequence().length);
+                            externalTaskId, getRetrySequence().length);
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK,
                             UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, getRetrySequence().length, 10000);
-                } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                    logger.debug("The External Task {} Failed. All Retries Exhausted", externalTask.getId());
+                } else if (retryCount != null && retryCount - 1 == 0) {
                     externalTaskService.complete(externalTask, variables);
+                    mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                    logger.debug("The External Task {} Failed. All Retries Exhausted", externalTaskId);
                     logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                    mdcSetup.clearClientMDCs();
                 } else {
                     logger.debug("The External Task {} Failed. Decrementing Retries to {} , Retry Delay: ",
-                            externalTask.getId(), externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK,
-                            UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, retryCount - 1, calculateRetryDelay(retryCount));
                 }
-                logger.debug("The External Task {} Failed", externalTask.getId());
+                logger.debug("The External Task {} Failed", externalTaskId);
             }
         } catch (Exception e) {
             logger.error("Error during audit query of stack", e);
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
index 6a42456..fb7e925 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
@@ -20,13 +20,9 @@
 
 package org.onap.so.adapters.audit;
 
-import java.security.GeneralSecurityException;
 import javax.annotation.PostConstruct;
 import org.camunda.bpm.client.ExternalTaskClient;
-import org.camunda.bpm.client.backoff.ExponentialBackoffStrategy;
-import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
-import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
-import org.onap.so.utils.CryptoUtils;
+import org.onap.so.utils.ExternalTaskServiceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -56,10 +52,13 @@
     @Autowired
     private AuditQueryStackService auditQueryStack;
 
+    @Autowired
+    private ExternalTaskServiceUtils externalTaskServiceUtils;
+
     @PostConstruct
-    public void auditAddAAIInventory() {
-        for (int i = 0; i < getMaxClients(); i++) {
-            ExternalTaskClient client = createExternalTaskClient();
+    public void auditAddAAIInventory() throws Exception {
+        for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) {
+            ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient();
             client.subscribe("InventoryAddAudit")
                     .lockDuration(Long.parseLong(env.getProperty("mso.audit.lock-time", DEFAULT_AUDIT_LOCK_TIME)))
                     .handler(auditCreateStack::executeExternalTask).open();
@@ -67,9 +66,9 @@
     }
 
     @PostConstruct
-    public void auditDeleteAAIInventory() {
-        for (int i = 0; i < getMaxClients(); i++) {
-            ExternalTaskClient client = createExternalTaskClient();
+    public void auditDeleteAAIInventory() throws Exception {
+        for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) {
+            ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient();
             client.subscribe("InventoryDeleteAudit")
                     .lockDuration(Long.parseLong(env.getProperty("mso.audit.lock-time", DEFAULT_AUDIT_LOCK_TIME)))
                     .handler(auditDeleteStack::executeExternalTask).open();
@@ -77,35 +76,13 @@
     }
 
     @PostConstruct
-    public void auditQueryInventory() {
-        for (int i = 0; i < getMaxClients(); i++) {
-            ExternalTaskClient client = createExternalTaskClient();
+    public void auditQueryInventory() throws Exception {
+        for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) {
+            ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient();
             client.subscribe("InventoryQueryAudit")
                     .lockDuration(Long.parseLong(env.getProperty("mso.audit.lock-time", DEFAULT_AUDIT_LOCK_TIME)))
                     .handler(auditQueryStack::executeExternalTask).open();
         }
     }
 
-    protected ExternalTaskClient createExternalTaskClient() {
-        ClientRequestInterceptor interceptor = createClientRequestInterceptor();
-        return ExternalTaskClient.create().baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1)
-                .addInterceptor(interceptor).asyncResponseTimeout(120000)
-                .backoffStrategy(new ExponentialBackoffStrategy(0, 0, 0)).build();
-    }
-
-    protected ClientRequestInterceptor createClientRequestInterceptor() {
-        String auth = "";
-        try {
-            auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
-        } catch (IllegalStateException | GeneralSecurityException e) {
-            logger.error("Error Decrypting Password", e);
-        }
-        return new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"), auth);
-    }
-
-    protected int getMaxClients() {
-        return Integer.parseInt(env.getProperty("workflow.topics.maxClients", DEFAULT_MAX_CLIENTS_FOR_TOPIC));
-    }
-
-
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
index 14d83b3..35008b6 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
@@ -84,7 +84,7 @@
             try {
                 logger.debug("Vserver to Audit: {}", objectMapper.getMapper().writeValueAsString(vserver));
             } catch (JsonProcessingException e) {
-                logger.error("Json parse exception: {}", e.getMessage());
+                logger.error("Json parse exception: ", e);
             }
 
         });
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
index 49a9e7e..c1cc742 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
@@ -20,13 +20,9 @@
 
 package org.onap.so.adapters.inventory.create;
 
-import java.security.GeneralSecurityException;
 import javax.annotation.PostConstruct;
 import org.camunda.bpm.client.ExternalTaskClient;
-import org.camunda.bpm.client.backoff.ExponentialBackoffStrategy;
-import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
-import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
-import org.onap.so.utils.CryptoUtils;
+import org.onap.so.utils.ExternalTaskServiceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,19 +42,13 @@
     @Autowired
     private CreateInventoryTask createInventory;
 
+    @Autowired
+    private ExternalTaskServiceUtils externalTaskServiceUtils;
+
     @PostConstruct
-    public void auditAAIInventory() {
-        String auth = "";
-        try {
-            auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
-        } catch (IllegalStateException | GeneralSecurityException e) {
-            logger.error("Error Decrypting Password", e);
-        }
-        ClientRequestInterceptor interceptor =
-                new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"), auth);
-        ExternalTaskClient client = ExternalTaskClient.create()
-                .baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
-                .asyncResponseTimeout(120000).backoffStrategy(new ExponentialBackoffStrategy(0, 0, 0)).build();
+    public void auditAAIInventory() throws Exception {
+
+        ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient();
         client.subscribe("InventoryCreate")
                 .lockDuration(Long.parseLong(env.getProperty("mso.audit.lock-time", "60000")))
                 .handler(createInventory::executeExternalTask).open();
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
index a6c6170..3d2d1d2 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
@@ -26,16 +26,16 @@
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
+import org.onap.so.utils.ExternalTaskUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 @Component
-public class CreateInventoryTask {
+public class CreateInventoryTask extends ExternalTaskUtils {
 
     private static final String UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI = "Unable to write all inventory to A&AI";
 
@@ -47,24 +47,28 @@
     CreateAAIInventory createInventory;
 
     @Autowired
-    public Environment env;
+    private AuditMDCSetup mdcSetup;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         boolean success = true;
         boolean inventoryException = false;
         String auditInventoryString = externalTask.getVariable("auditInventoryResult");
         AAIObjectAuditList auditInventory = null;
+        String externalTaskId = externalTask.getId();
         try {
             GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
             auditInventory = objectMapper.getMapper().readValue(auditInventoryString, AAIObjectAuditList.class);
         } catch (Exception e) {
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
             logger.error("Error Parsing Audit Results", e);
         }
+        mdcSetup.setElapsedTime();
         if (auditInventory != null) {
+            Integer retryCount = externalTask.getRetries();
             try {
                 logger.info("Executing External Task Create Inventory, Retry Number: {} \n {}", auditInventory,
-                        externalTask.getRetries());
+                        retryCount);
                 createInventory.createInventory(auditInventory);
             } catch (InventoryException e) {
                 logger.error("Error during inventory of stack", e);
@@ -74,58 +78,39 @@
                 logger.error("Error during inventory of stack", e);
                 success = false;
             }
+            mdcSetup.setElapsedTime();
             if (success) {
                 externalTaskService.complete(externalTask);
-                logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+                logger.debug("The External Task Id: {}  Successful", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else if (inventoryException) {
-                logger.debug("The External Task Id: {}  Failed, Retry not needed", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, Retry not needed", externalTaskId);
                 externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
             } else {
-                if (externalTask.getRetries() == null) {
+                if (retryCount == null) {
                     logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                            externalTask.getId(), getRetrySequence().length);
+                            externalTaskId, getRetrySequence().length);
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
                             UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000);
-                } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                    logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+                } else if (retryCount != null && retryCount - 1 == 0) {
                     externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
+                    mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                    logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                     logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
                 } else {
                     logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                            externalTask.getId(), externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
-                            UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, retryCount - 1, calculateRetryDelay(retryCount));
                 }
-                logger.debug("The External Task Id: {} Failed", externalTask.getId());
+                logger.debug("The External Task Id: {} Failed", externalTaskId);
             }
         } else {
-            logger.debug("The External Task Id: {}  Failed, No Audit Results Written", externalTask.getId());
+            logger.debug("The External Task Id: {}  Failed, No Audit Results Written", externalTaskId);
             externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
         }
     }
-
-    private void setupMDC(ExternalTask externalTask) {
-        try {
-            logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-            MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, externalTask.getTopicName());
-            String msoRequestId = externalTask.getVariable("mso-request-id");
-            if (msoRequestId != null && !msoRequestId.isEmpty())
-                MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
-        } catch (Exception e) {
-            logger.error("Error in setting up MDC", e);
-        }
-    }
-
-    protected long calculateRetryDelay(int currentRetries) {
-        int retrySequence = getRetrySequence().length - currentRetries;
-        long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier", "6000"));
-        return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
-    }
-
-    public String[] getRetrySequence() {
-        return env.getProperty("mso.workflow.topics.retrySequence", String[].class);
-    }
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
index afc227f..013c7f8 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
@@ -91,6 +91,7 @@
     private static final String CREATE_NETWORK_CONTEXT = "CreateNetwork";
     private static final String NEUTRON_MODE = "NEUTRON";
     private static final String CLOUD_OWNER = "CloudOwner";
+    private static final String LOG_DEBUG_MSG = "Got Network definition from Catalog: {}";
 
     private static final Logger logger = LoggerFactory.getLogger(MsoNetworkAdapterImpl.class);
 
@@ -292,7 +293,7 @@
                 throw new NetworkException(error, MsoExceptionCategory.INTERNAL);
             }
 
-            logger.debug("Got HEAT Template from DB: {}", heatTemplate.toString());
+            logger.debug("Got HEAT Template from DB: {}", heatTemplate);
 
             // "Fix" the template if it has CR/LF (getting this from Oracle)
             String template = heatTemplate.getHeatTemplate();
@@ -656,7 +657,7 @@
                 throw new NetworkException(error, MsoExceptionCategory.INTERNAL);
             }
 
-            logger.debug("Got HEAT Template from DB: {}", heatTemplate.toString());
+            logger.debug("Got HEAT Template from DB: {}", heatTemplate);
 
             // "Fix" the template if it has CR/LF (getting this from Oracle)
             String template = heatTemplate.getHeatTemplate();
@@ -798,12 +799,11 @@
             }
         }
         if (networkCust != null) {
-            logger.debug("Got Network Customization definition from Catalog: {}", networkCust.toString());
+            logger.debug("Got Network Customization definition from Catalog: {}", networkCust);
 
             networkResource = networkCust.getNetworkResource();
         } else if (collectionNetworkCust != null) {
-            logger.debug("Retrieved Collection Network Resource Customization from Catalog: {}",
-                    collectionNetworkCust.toString());
+            logger.debug("Retrieved Collection Network Resource Customization from Catalog: {}", collectionNetworkCust);
             networkResource = collectionNetworkCust.getNetworkResource();
         }
         if (networkResource == null) {
@@ -814,7 +814,7 @@
 
             throw new NetworkException(error, MsoExceptionCategory.USERDATA);
         }
-        logger.debug("Got Network definition from Catalog: {}", networkResource.toString());
+        logger.debug(LOG_DEBUG_MSG, networkResource);
 
         String mode = networkResource.getOrchestrationMode();
         NetworkType neutronNetworkType = NetworkType.valueOf(networkResource.getNeutronNetworkType());
@@ -1045,7 +1045,7 @@
         }
         String mode = "";
         if (networkResource != null) {
-            logger.debug("Got Network definition from Catalog: {}", networkResource.toString());
+            logger.debug(LOG_DEBUG_MSG, networkResource);
 
             mode = networkResource.getOrchestrationMode();
         }
@@ -1132,7 +1132,7 @@
         String mode = "";
         if (networkResource != null) {
 
-            logger.debug("Got Network definition from Catalog: {}", networkResource.toString());
+            logger.debug(LOG_DEBUG_MSG, networkResource);
 
             mode = networkResource.getOrchestrationMode();
         }
@@ -1388,9 +1388,9 @@
         // Resource Property
         List<ContrailSubnet> cslist = new ArrayList<>();
         for (Subnet subnet : subnets) {
-            logger.debug("Input Subnet:{}", subnet.toString());
+            logger.debug("Input Subnet:{}", subnet);
             ContrailSubnet cs = new ContrailSubnetMapper(subnet).map();
-            logger.debug("Contrail Subnet:{}", cs.toString());
+            logger.debug("Contrail Subnet:{}", cs);
             cslist.add(cs);
         }
 
@@ -1523,18 +1523,17 @@
             JsonNode rootNode = mapper.readTree(jStr);
             if (rootNode != null) {
                 for (JsonNode sNode : rootNode.path("ipam_subnets")) {
-                    logger.debug("Output Subnet Node {}", sNode.toString());
+                    logger.debug("Output Subnet Node {}", sNode);
                     String name = sNode.path("subnet_name").textValue();
                     String uuid = sNode.path("subnet_uuid").textValue();
                     String aaiId = name; // default
                     // try to find aaiId for name in input subnetList
                     if (subnets != null) {
                         for (Subnet subnet : subnets) {
-                            if (subnet != null && !commonUtils.isNullOrEmpty(subnet.getSubnetName())) {
-                                if (subnet.getSubnetName().equals(name)) {
-                                    aaiId = subnet.getSubnetId();
-                                    break;
-                                }
+                            if (subnet != null && !commonUtils.isNullOrEmpty(subnet.getSubnetName())
+                                    && subnet.getSubnetName().equals(name)) {
+                                aaiId = subnet.getSubnetId();
+                                break;
                             }
                         }
                     }
@@ -1549,7 +1548,7 @@
                     ErrorCode.DataError.getValue(), e);
         }
 
-        logger.debug("Return sMap {}", sMap.toString());
+        logger.debug("Return sMap {}", sMap);
         return sMap;
     }
 
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/MsoOpenstackAdaptersApplication.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/MsoOpenstackAdaptersApplication.java
index 4368364..d9a83e6 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/MsoOpenstackAdaptersApplication.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/MsoOpenstackAdaptersApplication.java
@@ -21,7 +21,7 @@
 package org.onap.so.adapters.openstack;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
index 3432e4a..cff4d5f 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
@@ -37,6 +37,7 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.springframework.core.env.Environment;
 import com.fasterxml.jackson.core.JsonParseException;
@@ -67,6 +68,9 @@
     @Mock
     private AuditDataService auditDataService;
 
+    @Mock
+    private AuditMDCSetup mdcSetup;
+
     private ObjectMapper objectMapper = new ObjectMapper();
 
     private AuditInventory auditInventory = new AuditInventory();
@@ -170,47 +174,6 @@
     }
 
     @Test
-    public void retry_sequence_calculation_Test() {
-        long firstRetry = auditStackService.calculateRetryDelay(8);
-        assertEquals(6000L, firstRetry);
-        long secondRetry = auditStackService.calculateRetryDelay(7);
-        assertEquals(6000L, secondRetry);
-        long thirdRetry = auditStackService.calculateRetryDelay(6);
-        assertEquals(12000L, thirdRetry);
-        long fourthRetry = auditStackService.calculateRetryDelay(5);
-        assertEquals(18000L, fourthRetry);
-        long fifthRetry = auditStackService.calculateRetryDelay(4);
-        assertEquals(30000L, fifthRetry);
-        long sixRetry = auditStackService.calculateRetryDelay(3);
-        assertEquals(48000L, sixRetry);
-        long seventhRetry = auditStackService.calculateRetryDelay(2);
-        assertEquals(78000L, seventhRetry);
-        long eigthRetry = auditStackService.calculateRetryDelay(1);
-        assertEquals(120000L, eigthRetry);
-    }
-
-    @Test
-    public void retry_sequence_Test() {
-        long firstRetry = auditStackService.calculateRetryDelay(8);
-        assertEquals(6000L, firstRetry);
-        long secondRetry = auditStackService.calculateRetryDelay(7);
-        assertEquals(6000L, secondRetry);
-        long thirdRetry = auditStackService.calculateRetryDelay(6);
-        assertEquals(12000L, thirdRetry);
-        long fourthRetry = auditStackService.calculateRetryDelay(5);
-        assertEquals(18000L, fourthRetry);
-        long fifthRetry = auditStackService.calculateRetryDelay(4);
-        assertEquals(30000L, fifthRetry);
-        long sixRetry = auditStackService.calculateRetryDelay(3);
-        assertEquals(48000L, sixRetry);
-        long seventhRetry = auditStackService.calculateRetryDelay(2);
-        assertEquals(78000L, seventhRetry);
-        long eigthRetry = auditStackService.calculateRetryDelay(1);
-        assertEquals(120000L, eigthRetry);
-    }
-
-
-    @Test
     public void determineAuditResult_Test() throws Exception {
         boolean actual = auditStackService.didCreateAuditFail(auditListOptSuccess);
         assertEquals(false, actual);
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceTest.java
deleted file mode 100644
index c9aef95..0000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 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=========================================================
- */
-
-package org.onap.so.adapters.audit;
-
-import static com.shazam.shazamcrest.MatcherAssert.assertThat;
-import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import org.camunda.bpm.client.ExternalTaskClient;
-import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
-import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.so.utils.CryptoUtils;
-import org.springframework.core.env.Environment;
-
-@RunWith(MockitoJUnitRunner.class)
-public class AuditStackServiceTest {
-
-    @Spy
-    @InjectMocks
-    AuditStackService auditStackService;
-
-    @Mock
-    Environment mockEnvironment;
-
-
-    @Before
-    public void before() {
-        Mockito.doReturn("5").when(mockEnvironment).getProperty("workflow.topics.maxClients", "10");
-        Mockito.doReturn("6B466C603A260F3655DBF91E53CE54667041C01406D10E8CAF9CC24D8FA5388D06F90BFE4C852052B436")
-                .when(mockEnvironment).getRequiredProperty("mso.auth");
-        Mockito.doReturn("07a7159d3bf51a0e53be7a8f89699be7").when(mockEnvironment).getRequiredProperty("mso.msoKey");
-        Mockito.doReturn("something").when(mockEnvironment).getRequiredProperty("mso.config.cadi.aafId");
-        Mockito.doReturn("host.com").when(mockEnvironment).getRequiredProperty("mso.workflow.endpoint");
-    }
-
-    @Test
-    public void testGetMaxClients() throws Exception {
-        int actual = auditStackService.getMaxClients();
-        assertEquals(5, actual);
-    }
-
-    @Test
-    public void testCreateClientRequestInterceptor() throws Exception {
-        String auth = CryptoUtils.decrypt(
-                "6B466C603A260F3655DBF91E53CE54667041C01406D10E8CAF9CC24D8FA5388D06F90BFE4C852052B436",
-                "07a7159d3bf51a0e53be7a8f89699be7");
-        ClientRequestInterceptor expected = new BasicAuthProvider("something", auth);
-        ClientRequestInterceptor actual = auditStackService.createClientRequestInterceptor();
-        assertThat(actual, sameBeanAs(expected));
-
-    }
-
-    @Test
-    public void testCreateExternalTaskClient() throws Exception {
-        String auth = CryptoUtils.decrypt(
-                "6B466C603A260F3655DBF91E53CE54667041C01406D10E8CAF9CC24D8FA5388D06F90BFE4C852052B436",
-                "07a7159d3bf51a0e53be7a8f89699be7");
-        ClientRequestInterceptor inter = new BasicAuthProvider("something", auth);
-        Mockito.doReturn(inter).when(auditStackService).createClientRequestInterceptor();
-        ExternalTaskClient actual = auditStackService.createExternalTaskClient();
-        assertNotNull(actual);
-        Mockito.verify(auditStackService, Mockito.times(1)).createClientRequestInterceptor();
-
-    }
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java
index 8dc9d7f..c4fa9ee 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java
@@ -31,6 +31,7 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -46,6 +47,9 @@
     @Mock
     ExternalTaskService externalTaskService;
 
+    @Mock
+    private AuditMDCSetup mdcSetup;
+
     @InjectMocks
     CreateInventoryTask inventoryTask;
 
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java
index 85c05de..e1dc4ca 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java
@@ -24,6 +24,8 @@
 
 import java.time.Duration;
 import javax.sql.DataSource;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
@@ -40,7 +42,7 @@
  *
  */
 
-@SpringBootApplication(scanBasePackages = {"org.onap.so"})
+@SpringBootApplication(scanBasePackages = {"org.onap.so", "org.onap.logging.filter"})
 @EnableScheduling
 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
 public class MSORequestDBApplication {
@@ -54,6 +56,7 @@
     }
 
     public static void main(String... args) {
+        System.setProperty(Constants.Property.PARTNER_NAME, ONAPComponents.REQUEST_DB.toString());
         SpringApplication.run(MSORequestDBApplication.class, args);
         java.security.Security.setProperty("networkaddress.cache.ttl", "10");
         setLogsDir();
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/WebMvcConfig.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/WebMvcConfig.java
index 579afe9..c0dfbe0 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/WebMvcConfig.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/WebMvcConfig.java
@@ -21,14 +21,16 @@
 package org.onap.so.adapters.requestsdb.application;
 
 
-import org.onap.so.logging.spring.interceptor.LoggingInterceptor;
+import org.onap.logging.filter.spring.LoggingInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.handler.MappedInterceptor;
 
 @Configuration
+@ComponentScan(basePackages = {"org.onap.logging.filter"})
 public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
     @Autowired
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4.1__Rename_Infra_active_requests_AIC_CLOUD_REGION_Column.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4.1__Rename_Infra_active_requests_AIC_CLOUD_REGION_Column.sql
new file mode 100644
index 0000000..eac9a65
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4.1__Rename_Infra_active_requests_AIC_CLOUD_REGION_Column.sql
@@ -0,0 +1,12 @@
+use requestdb;
+
+DROP INDEX `infra_active_requests__aic_cloud_region_idx` on `infra_active_requests`;
+
+ALTER TABLE
+  `infra_active_requests` CHANGE AIC_CLOUD_REGION CLOUD_REGION varchar(50) DEFAULT NULL;
+
+ALTER TABLE
+  `archived_infra_requests` CHANGE AIC_CLOUD_REGION CLOUD_REGION VARCHAR(50) NULL DEFAULT NULL;
+
+ALTER TABLE `infra_active_requests` 
+	ADD INDEX IF NOT EXISTS `infra_active_requests__cloud_region_idx` (`CLOUD_REGION` ASC);
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4__Add_Indexes_to_Infra_Active_Requests_Table.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4__Add_Indexes_to_Infra_Active_Requests_Table.sql
new file mode 100644
index 0000000..2f7438c
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.4__Add_Indexes_to_Infra_Active_Requests_Table.sql
@@ -0,0 +1,21 @@
+ALTER TABLE `requestdb`.`infra_active_requests` 
+ADD INDEX IF NOT EXISTS `infra_active_requests__service_instance_id_idx` (`SERVICE_INSTANCE_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__service_instance_name_idx` (`SERVICE_INSTANCE_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__vnf_id_idx` (`VNF_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__vnf_name_name_idx` (`VNF_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__vf_module_id_idx` (`VF_MODULE_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__vf_module_name_idx` (`VF_MODULE_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__volume_group_id_idx` (`VOLUME_GROUP_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__volume_group_name_idx` (`VOLUME_GROUP_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__network_id_idx` (`NETWORK_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__network_name_idx` (`NETWORK_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__configuration_id_idx` (`CONFIGURATION_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__configuration_name_idx` (`CONFIGURATION_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__instance_group_id_idx` (`INSTANCE_GROUP_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__instance_group_name_idx` (`INSTANCE_GROUP_NAME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__aic_cloud_region_idx` (`AIC_CLOUD_REGION` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__tenant_id_idx` (`TENANT_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__request_scope_idx` (`REQUEST_SCOPE` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__requestor_id_idx` (`REQUESTOR_ID` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__start_time_idx` (`START_TIME` ASC),
+ADD INDEX IF NOT EXISTS `infra_active_requests__end_time_idx` (`END_TIME` ASC);
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/MSORequestDBImplTest.java b/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/MSORequestDBImplTest.java
index e53b957..fa2acbc 100644
--- a/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/MSORequestDBImplTest.java
+++ b/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/MSORequestDBImplTest.java
@@ -449,7 +449,7 @@
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INSTANCE_UUID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-                assertEquals("", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
                 assertEquals("/services/RequestsDbAdapter", mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
                 assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
             } else if (logEvent.getLoggerName().equals("org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor")
@@ -458,9 +458,9 @@
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals(null, mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
-                assertEquals("", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
                 assertEquals("/services/RequestsDbAdapter", mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
-                assertEquals("COMPLETED", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+                assertEquals("COMPLETE", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
             }
     }
 
diff --git a/adapters/mso-requests-db-adapter/src/test/resources/db/migration/afterMigrate.sql b/adapters/mso-requests-db-adapter/src/test/resources/db/migration/afterMigrate.sql
index 9c2ea6d..65fac11 100644
--- a/adapters/mso-requests-db-adapter/src/test/resources/db/migration/afterMigrate.sql
+++ b/adapters/mso-requests-db-adapter/src/test/resources/db/migration/afterMigrate.sql
@@ -4,7 +4,7 @@
 ('serviceid', 'operationid', 'servicename', 'userid', 'result', 'operationcontent', 'progress', 'reason', '2016-11-24 13:19:10', '2016-11-24 13:19:10'); 
 
 
-insert into infra_active_requests(request_id, client_request_id, action, request_status, status_message, progress, start_time, end_time, source, vnf_id, vnf_name, vnf_type, service_type, aic_node_clli, tenant_id, prov_status, vnf_params, vnf_outputs, request_body, response_body, last_modified_by, modify_time, request_type, volume_group_id, volume_group_name, vf_module_id, vf_module_name, vf_module_model_name, aai_service_id, aic_cloud_region, callback_url, correlator, network_id, network_name, network_type, request_scope, request_action, service_instance_id, service_instance_name, requestor_id, configuration_id, configuration_name, operational_env_id, operational_env_name, request_url) values
+insert into infra_active_requests(request_id, client_request_id, action, request_status, status_message, progress, start_time, end_time, source, vnf_id, vnf_name, vnf_type, service_type, aic_node_clli, tenant_id, prov_status, vnf_params, vnf_outputs, request_body, response_body, last_modified_by, modify_time, request_type, volume_group_id, volume_group_name, vf_module_id, vf_module_name, vf_module_model_name, aai_service_id, cloud_region, callback_url, correlator, network_id, network_name, network_type, request_scope, request_action, service_instance_id, service_instance_name, requestor_id, configuration_id, configuration_name, operational_env_id, operational_env_name, request_url) values
 ('00032ab7-3fb3-42e5-965d-8ea592502017', '00032ab7-3fb3-42e5-965d-8ea592502016', 'deleteInstance', 'COMPLETE', 'Vf Module has been deleted successfully.', '100', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails":{"modelInfo":{"modelType":"vfModule","modelName":"vSAMP10aDEV::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"mtn6"}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'vSAMP10aDEV::base::module-0', null, 'mtn6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00093944-bf16-4373-ab9a-3adfe730ff2d', null, 'createInstance', 'FAILED', 'Error: Locked instance - This service (MSODEV_1707_SI_vSAMP10a_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.', '100', '2017-07-11 18:33:26', '2017-07-11 18:33:26', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"requestDetails":{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"MSOTADevInfra_vSAMP10a_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_vSAMP10a_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"mtn6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true,"alaCarteSet":true,"alaCarte":true}}}', null, 'APIH', '2016-12-22 19:00:28', null, null, null, null, null, null, null, 'mtn6', null, null, null, null, null, 'service', 'createInstance', null, 'MSODEV_1707_SI_vSAMP10a_011-4', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('001619d2-a297-4a4b-a9f5-e2823c88458f', '001619d2-a297-4a4b-a9f5-e2823c88458f', 'CREATE_VF_MODULE', 'COMPLETE', 'COMPLETED', '100', '2016-07-01 14:11:42', '2017-05-02 16:03:34', 'PORTAL', null, 'test-vscp', 'elena_test21', null, null, '381b9ff6c75e4625b7a4182f90fc68d3', null, null, null, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<vnf-request xmlns=\"http://org.onap.so/mso/infra/vnf-request/v1\">\n    <request-info>\n        <request-id>001619d2-a297-4a4b-a9f5-e2823c88458f</request-id>\n        <action>CREATE_VF_MODULE</action>\n        <source>PORTAL</source>\n    </request-info>\n    <vnf-inputs>\n        <vnf-name>test-vscp</vnf-name>\n        <vf-module-name>moduleName</vf-module-name>\n        <vnf-type>elena_test21</vnf-type>\n        <vf-module-model-name>moduleModelName</vf-module-model-name>\n        <asdc-service-model-version>1.0</asdc-service-model-version>\n        <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>\n        <aic-cloud-region>mtn9</aic-cloud-region>\n        <tenant-id>381b9ff6c75e4625b7a4182f90fc68d3</tenant-id>\n        <persona-model-id></persona-model-id>\n        <persona-model-version></persona-model-version>\n        <is-base-vf-module>false</is-base-vf-module>\n    </vnf-inputs>\n    <vnf-params xmlns:tns=\"http://org.onap.so/mso/infra/vnf-request/v1\"/>\n</vnf-request>\n', 'NONE', 'RDBTEST', '2016-07-01 14:11:42', 'VNF', null, null, null, 'MODULENAME1', 'moduleModelName', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb', 'mtn9', null, null, null, null, null, 'vfModule', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
index 6149f7e..dd1da98 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
@@ -32,7 +32,7 @@
 import org.onap.so.adapters.sdnc.sdncrest.SNIROResponse;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingInInterceptor;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -51,7 +51,7 @@
     private Bus bus;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private SDNCAdapterPortType sdncAdapterPortImpl;
@@ -70,7 +70,7 @@
         endpoint.setServiceBeans(Arrays.<Object>asList(sniroResponse));
         endpoint.setAddress("/rest");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
         return endpoint.create();
     }
 
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SDNCAdapterApplication.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SDNCAdapterApplication.java
index 5502308..fc6d0a6 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SDNCAdapterApplication.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SDNCAdapterApplication.java
@@ -23,7 +23,7 @@
 package org.onap.so.adapters.sdnc;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
index 5ea68f0..dd875c5 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
@@ -28,7 +28,7 @@
 import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
 import org.apache.cxf.transport.servlet.CXFServlet;
 import org.onap.so.adapters.vfc.rest.VfcAdapterRest;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -47,7 +47,7 @@
     private VfcAdapterRest vfcAdapterRest;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private ObjectMapper mapper;
@@ -64,7 +64,7 @@
         endpoint.setServiceBeans(Arrays.<Object>asList(vfcAdapterRest));
         endpoint.setAddress("/");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
         return endpoint.create();
     }
 
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderConfiguration.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderConfiguration.java
index 93312cf..b621759 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderConfiguration.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderConfiguration.java
@@ -30,6 +30,7 @@
 import java.security.UnrecoverableKeyException;
 import java.security.cert.CertificateException;
 import java.util.Iterator;
+import java.util.ListIterator;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
@@ -43,6 +44,7 @@
 import org.onap.aai.domain.yang.EsrVnfm;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.JSON;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.onap.so.rest.service.HttpRestServiceProviderImpl;
 import org.slf4j.Logger;
@@ -53,6 +55,7 @@
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.Resource;
 import org.springframework.http.client.BufferingClientHttpRequestFactory;
+import org.springframework.http.client.ClientHttpRequestInterceptor;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.json.GsonHttpMessageConverter;
@@ -167,4 +170,13 @@
         }
     }
 
+    private void removeSpringClientFilter(final RestTemplate restTemplate) {
+        ListIterator<ClientHttpRequestInterceptor> interceptorIterator = restTemplate.getInterceptors().listIterator();
+        while (interceptorIterator.hasNext()) {
+            if (interceptorIterator.next() instanceof SOSpringClientFilter) {
+                interceptorIterator.remove();
+            }
+        }
+    }
+
 }
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/activity/ActivitySpecsActions.java b/asdc-controller/src/main/java/org/onap/so/asdc/activity/ActivitySpecsActions.java
index c37eccf..06887f1 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/activity/ActivitySpecsActions.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/activity/ActivitySpecsActions.java
@@ -29,7 +29,8 @@
 import org.onap.so.asdc.activity.beans.ActivitySpecCreateResponse;
 import org.onap.so.client.HttpClient;
 import org.onap.so.client.HttpClientFactory;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.logger.LoggingAnchor;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -62,7 +63,7 @@
             String urlString = UriBuilder.fromUri(hostname).path(ACTIVITY_SPEC_URI).build().toString();
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addAdditionalHeader("Content-Type", ContentType.APPLICATION_JSON.toString());
 
             Response response = httpClient.post(payload);
@@ -104,7 +105,7 @@
             String urlString = UriBuilder.fromUri(hostname).path(path).build().toString();
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addAdditionalHeader("Content-Type", ContentType.APPLICATION_JSON.toString());
 
             Response response = httpClient.put(CERTIFY_ACTIVITY_PAYLOAD);
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/activity/DeployActivitySpecs.java b/asdc-controller/src/main/java/org/onap/so/asdc/activity/DeployActivitySpecs.java
index 0fc94c8..7f1c196 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/activity/DeployActivitySpecs.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/activity/DeployActivitySpecs.java
@@ -20,6 +20,8 @@
 
 package org.onap.so.asdc.activity;
 
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 import org.onap.so.logger.LoggingAnchor;
@@ -27,6 +29,7 @@
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+import org.apache.http.HttpStatus;
 import org.onap.so.asdc.activity.beans.ActivitySpec;
 import org.onap.so.asdc.activity.beans.Input;
 import org.onap.so.asdc.activity.beans.Output;
@@ -59,6 +62,11 @@
         String hostname = env.getProperty(SDC_ENDPOINT);
         logger.debug("{} {}", "SDC ActivitySpec endpoint: ", hostname);
         if (hostname == null || hostname.isEmpty()) {
+            logger.warn("The hostname for SDC activities deployment is not configured in SO");
+            return;
+        }
+        if (!checkHttpOk(hostname)) {
+            logger.warn("The sdc end point is not alive");
             return;
         }
         List<org.onap.so.db.catalog.beans.ActivitySpec> activitySpecsFromCatalog = activitySpecRepository.findAll();
@@ -135,4 +143,22 @@
         activitySpec.setOutputs(outputs);
         return;
     }
+
+    public boolean checkHttpOk(String host) {
+        URL url = null;
+        boolean isOk = false;
+
+        int responseCode = 0;
+        try {
+            url = new URL(host);
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            responseCode = connection.getResponseCode();
+        } catch (Exception e) {
+            logger.warn("Exception on connecting to SDC WFD endpoint: " + e.getMessage());
+        }
+        if (responseCode == HttpStatus.SC_OK) {
+            isOk = true;
+        }
+        return isOk;
+    }
 }
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCController.java b/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCController.java
index 90116ad..0080ed5 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCController.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCController.java
@@ -723,7 +723,6 @@
         // For each artifact, create a structure describing the VFModule in a ordered flat level
         ResourceStructure resourceStructure = null;
         String msoConfigPath = getMsoConfigPath();
-        boolean hasVFResource = false;
         ToscaResourceStructure toscaResourceStructure = new ToscaResourceStructure(msoConfigPath);
         DistributionStatusEnum deployStatus = DistributionStatusEnum.DEPLOY_OK;
         String errorMessage = null;
@@ -738,7 +737,7 @@
             for (IResourceInstance resource : iNotif.getResources()) {
 
                 String resourceType = resource.getResourceType();
-
+                boolean hasVFResource = false;
 
                 logger.info("Processing Resource Type: {}, Model UUID: {}", resourceType, resource.getResourceUUID());
 
@@ -801,19 +800,19 @@
                     errorMessage = e.getMessage();
                     logger.error("Exception occurred", e);
                 }
-            }
 
-            if (!hasVFResource) {
+                if (!hasVFResource) {
 
-                logger.debug("No resources found for Service: " + iNotif.getServiceUUID());
+                    logger.debug("No resources found for Service: " + iNotif.getServiceUUID());
 
-                logger.debug("Preparing to deploy Service: {}", iNotif.getServiceUUID());
-                try {
-                    this.deployResourceStructure(resourceStructure, toscaResourceStructure);
-                } catch (ArtifactInstallerException e) {
-                    deployStatus = DistributionStatusEnum.DEPLOY_ERROR;
-                    errorMessage = e.getMessage();
-                    logger.error("Exception occurred", e);
+                    logger.debug("Preparing to deploy Service: {}", iNotif.getServiceUUID());
+                    try {
+                        this.deployResourceStructure(resourceStructure, toscaResourceStructure);
+                    } catch (ArtifactInstallerException e) {
+                        deployStatus = DistributionStatusEnum.DEPLOY_ERROR;
+                        errorMessage = e.getMessage();
+                        logger.error("Exception occurred", e);
+                    }
                 }
             }
 
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
index c3ee081..e8e068a 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
@@ -26,6 +26,7 @@
 
 import java.sql.Timestamp;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -437,13 +438,15 @@
             List<IEntityDetails> vfEntityList = getEntityDetails(toscaResourceStruct,
                     EntityQuery.newBuilder(SdcTypes.VF), TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false);
 
+            List<IEntityDetails> arEntityDetails = new ArrayList<IEntityDetails>();
+
             for (IEntityDetails vfEntityDetails : vfEntityList) {
 
                 Metadata metadata = vfEntityDetails.getMetadata();
                 String category = metadata.getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY);
 
                 if (ALLOTTED_RESOURCE.equalsIgnoreCase(category)) {
-                    continue;
+                    arEntityDetails.add(vfEntityDetails);
                 }
 
                 processVfModules(vfEntityDetails, vfNodeTemplatesList.get(0), toscaResourceStruct, vfResourceStructure,
@@ -451,8 +454,7 @@
             }
 
             processResourceSequence(toscaResourceStruct, service);
-            List<NodeTemplate> allottedResourceList = toscaResourceStruct.getSdcCsarHelper().getAllottedResources();
-            processAllottedResources(toscaResourceStruct, service, allottedResourceList);
+            processAllottedResources(arEntityDetails, toscaResourceStruct, service);
             processNetworks(toscaResourceStruct, service);
             // process Network Collections
             processNetworkCollections(toscaResourceStruct, service);
@@ -579,7 +581,8 @@
         String outInput;
         String defaultValue = null;
         if (value instanceof Map) {
-            outInput = ((LinkedHashMap) value).values().toArray()[0].toString();
+            Collection values = ((LinkedHashMap) value).values();
+            outInput = (values.size() > 0) ? values.toArray()[0].toString() : "";
         } else if (value instanceof GetInput) {
             String inputName = ((GetInput) value).getInputName();
             Optional<Input> inputOptional =
@@ -678,14 +681,31 @@
         }
     }
 
-    protected void processAllottedResources(ToscaResourceStructure toscaResourceStruct, Service service,
-            List<NodeTemplate> allottedResourceList) throws ArtifactInstallerException {
-        if (allottedResourceList != null) {
-            for (NodeTemplate allottedNode : allottedResourceList) {
+    protected void processAllottedResources(List<IEntityDetails> arEntityDetails,
+            ToscaResourceStructure toscaResourceStruct, Service service) throws ArtifactInstallerException {
+
+        List<IEntityDetails> pnfAREntityList = getEntityDetails(toscaResourceStruct,
+                EntityQuery.newBuilder(SdcTypes.PNF), TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false);
+
+        for (IEntityDetails pnfEntity : pnfAREntityList) {
+
+            Metadata metadata = pnfEntity.getMetadata();
+            String category = metadata.getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY);
+            if (ALLOTTED_RESOURCE.equalsIgnoreCase(category)) {
+                arEntityDetails.add(pnfEntity);
+            }
+
+        }
+
+        if (arEntityDetails != null) {
+            for (IEntityDetails arEntity : arEntityDetails) {
                 AllottedResourceCustomization allottedResource =
-                        createAllottedResource(allottedNode, toscaResourceStruct, service);
-                allottedResource.setResourceInput(
-                        getResourceInput(toscaResourceStruct, allottedResource.getModelCustomizationUUID()));
+                        createAllottedResource(arEntity, toscaResourceStruct, service);
+                String resourceInput =
+                        getResourceInput(toscaResourceStruct, allottedResource.getModelCustomizationUUID());
+                if (!"{}".equals(resourceInput)) {
+                    allottedResource.setResourceInput(resourceInput);
+                }
                 service.getAllottedCustomizations().add(allottedResource);
             }
         }
@@ -821,13 +841,13 @@
 
     protected void processNetworkCollections(ToscaResourceStructure toscaResourceStruct, Service service) {
 
-        List<NodeTemplate> networkCollectionList =
-                toscaResourceStruct.getSdcCsarHelper().getServiceNodeTemplateBySdcType(SdcTypes.CR);
+        List<IEntityDetails> crEntityList = getEntityDetails(toscaResourceStruct, EntityQuery.newBuilder(SdcTypes.CR),
+                TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false);
 
-        if (networkCollectionList != null) {
-            for (NodeTemplate crNode : networkCollectionList) {
+        if (crEntityList != null) {
+            for (IEntityDetails ncEntity : crEntityList) {
 
-                createNetworkCollection(crNode, toscaResourceStruct, service);
+                createNetworkCollection(ncEntity, toscaResourceStruct, service);
                 collectionRepo.saveAndFlush(toscaResourceStruct.getCatalogCollectionResource());
 
                 List<NetworkInstanceGroup> networkInstanceGroupList =
@@ -1658,7 +1678,7 @@
         return networkResource;
     }
 
-    protected CollectionNetworkResourceCustomization createNetworkCollection(NodeTemplate networkNodeTemplate,
+    protected CollectionNetworkResourceCustomization createNetworkCollection(IEntityDetails cnrEntity,
             ToscaResourceStructure toscaResourceStructure, Service service) {
 
         CollectionNetworkResourceCustomization collectionNetworkResourceCustomization =
@@ -1667,33 +1687,26 @@
         // **** Build Object to populate Collection_Resource table
         CollectionResource collectionResource = new CollectionResource();
 
+        collectionResource.setModelName(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
         collectionResource
-                .setModelName(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
-        collectionResource.setModelInvariantUUID(
-                networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));
-        collectionResource
-                .setModelUUID(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
-        collectionResource
-                .setModelVersion(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));
-        collectionResource
-                .setDescription(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
-        collectionResource.setToscaNodeType(networkNodeTemplate.getType());
+                .setModelInvariantUUID(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));
+        collectionResource.setModelUUID(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
+        collectionResource.setModelVersion(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));
+        collectionResource.setDescription(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
+        collectionResource.setToscaNodeType(cnrEntity.getToscaType());
 
         toscaResourceStructure.setCatalogCollectionResource(collectionResource);
 
         // **** Build object to populate Collection_Resource_Customization table
         NetworkCollectionResourceCustomization ncfc = new NetworkCollectionResourceCustomization();
 
-        ncfc.setFunction(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                "cr_function"));
-        ncfc.setRole(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                "cr_role"));
-        ncfc.setType(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                "cr_type"));
+        ncfc.setFunction(getLeafPropertyValue(cnrEntity, "cr_function"));
+        ncfc.setRole(getLeafPropertyValue(cnrEntity, "cr_role"));
+        ncfc.setType(getLeafPropertyValue(cnrEntity, "cr_type"));
 
-        ncfc.setModelInstanceName(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
+        ncfc.setModelInstanceName(cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
         ncfc.setModelCustomizationUUID(
-                networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
+                cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
 
         Set<CollectionNetworkResourceCustomization> networkResourceCustomizationSet = new HashSet<>();
         networkResourceCustomizationSet.add(collectionNetworkResourceCustomization);
@@ -1704,25 +1717,28 @@
         toscaResourceStructure.setCatalogCollectionResourceCustomization(ncfc);
 
         // *** Build object to populate the Instance_Group table
-        List<Group> groupList =
-                toscaResourceStructure.getSdcCsarHelper().getGroupsOfOriginOfNodeTemplateByToscaGroupType(
-                        networkNodeTemplate, "org.openecomp.groups.NetworkCollection");
+        List<IEntityDetails> ncEntityList =
+                getEntityDetails(toscaResourceStructure,
+                        EntityQuery.newBuilder("org.openecomp.groups.NetworkCollection"),
+                        TopologyTemplateQuery.newBuilder(SdcTypes.CR).customizationUUID(
+                                cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)),
+                        false);
 
         List<NetworkInstanceGroup> networkInstanceGroupList = new ArrayList<>();
 
         List<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationList =
                 new ArrayList<>();
 
-        for (Group group : groupList) {
+        for (IEntityDetails ncGroupEntity : ncEntityList) {
 
             NetworkInstanceGroup networkInstanceGroup = new NetworkInstanceGroup();
-            Metadata instanceMetadata = group.getMetadata();
+            Metadata instanceMetadata = ncGroupEntity.getMetadata();
             networkInstanceGroup.setModelName(instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
             networkInstanceGroup
                     .setModelInvariantUUID(instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));
             networkInstanceGroup.setModelUUID(instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
             networkInstanceGroup.setModelVersion(instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));
-            networkInstanceGroup.setToscaNodeType(group.getType());
+            networkInstanceGroup.setToscaNodeType(ncGroupEntity.getToscaType());
             networkInstanceGroup.setRole(SubType.SUB_INTERFACE.toString()); // Set
             // Role
             networkInstanceGroup.setType(InstanceGroupType.L3_NETWORK); // Set
@@ -1736,27 +1752,26 @@
             crInstanceGroupCustomization.setInstanceGroup(networkInstanceGroup);
             crInstanceGroupCustomization.setModelUUID(instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
             crInstanceGroupCustomization.setModelCustomizationUUID(
-                    networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
+                    cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
 
             // Loop through the template policy to find the subinterface_network_quantity property name. Then extract
             // the value for it.
-            List<Policy> policyList =
-                    toscaResourceStructure.getSdcCsarHelper().getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(
-                            networkNodeTemplate, "org.openecomp.policies.scaling.Fixed");
+            List<IEntityDetails> policyEntityList = getEntityDetails(toscaResourceStructure,
+                    EntityQuery.newBuilder("org.openecomp.policies.scaling.Fixed"),
+                    TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), true);
 
-            if (policyList != null) {
-                for (Policy policy : policyList) {
-                    for (String policyNetworkCollection : policy.getTargets()) {
+            if (policyEntityList != null) {
+                for (IEntityDetails policyEntity : policyEntityList) {
+                    for (String policyNetworkCollection : policyEntity.getTargets()) {
 
-                        if (policyNetworkCollection.equalsIgnoreCase(group.getName())) {
+                        if (policyNetworkCollection.equalsIgnoreCase(ncGroupEntity.getName())) {
 
-                            Map<String, Object> propMap = policy.getPolicyProperties();
+                            Map<String, Property> propMap = policyEntity.getProperties();
 
                             if (propMap.get("quantity") != null) {
 
-                                String quantity = toscaResourceStructure.getSdcCsarHelper()
-                                        .getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                                                getPropertyInput(propMap.get("quantity").toString()));
+                                String quantity = getLeafPropertyValue(cnrEntity,
+                                        getPropertyInput(propMap.get("quantity").toString()));
 
                                 if (quantity != null) {
                                     crInstanceGroupCustomization
@@ -1771,13 +1786,12 @@
             }
 
             crInstanceGroupCustomization.setDescription(
-                    toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                            instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME)
-                                    + "_network_collection_description"));
-            crInstanceGroupCustomization.setFunction(
-                    toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                            instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME)
-                                    + "_network_collection_function"));
+                    getLeafPropertyValue(cnrEntity, instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME)
+                            + "_network_collection_description"));
+
+            crInstanceGroupCustomization.setFunction(getLeafPropertyValue(cnrEntity,
+                    instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME) + "_network_collection_function"));
+
             crInstanceGroupCustomization.setCollectionResourceCust(ncfc);
             collectionResourceInstanceGroupCustomizationList.add(crInstanceGroupCustomization);
 
@@ -1789,18 +1803,21 @@
 
             toscaResourceStructure.setCatalogNetworkInstanceGroup(networkInstanceGroupList);
 
-            List<NodeTemplate> vlNodeList = toscaResourceStructure.getSdcCsarHelper()
-                    .getNodeTemplateBySdcType(networkNodeTemplate, SdcTypes.VL);
+            List<IEntityDetails> networkEntityList =
+                    getEntityDetails(toscaResourceStructure, EntityQuery.newBuilder(SdcTypes.VL),
+                            TopologyTemplateQuery.newBuilder(SdcTypes.CR).customizationUUID(
+                                    cnrEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)),
+                            false);
 
             List<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationList = new ArrayList<>();
 
             // *****Build object to populate the NetworkResource table
             NetworkResource networkResource = new NetworkResource();
 
-            for (NodeTemplate vlNodeTemplate : vlNodeList) {
+            for (IEntityDetails networkEntity : networkEntityList) {
 
-                String providerNetwork = toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(
-                        vlNodeTemplate, SdcPropertyNames.PROPERTY_NAME_PROVIDERNETWORK_ISPROVIDERNETWORK);
+                String providerNetwork = getLeafPropertyValue(networkEntity,
+                        SdcPropertyNames.PROPERTY_NAME_PROVIDERNETWORK_ISPROVIDERNETWORK);
 
                 if ("true".equalsIgnoreCase(providerNetwork)) {
                     networkResource.setNeutronNetworkType(PROVIDER);
@@ -1808,22 +1825,20 @@
                     networkResource.setNeutronNetworkType(BASIC);
                 }
 
-                networkResource
-                        .setModelName(vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
+                networkResource.setModelName(networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
 
                 networkResource.setModelInvariantUUID(
-                        vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));
+                        networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));
+                networkResource.setModelUUID(networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
                 networkResource
-                        .setModelUUID(vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
-                networkResource
-                        .setModelVersion(vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));
+                        .setModelVersion(networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));
 
                 networkResource.setAicVersionMax(
-                        vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES));
+                        networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES));
 
                 TempNetworkHeatTemplateLookup tempNetworkLookUp =
                         tempNetworkLookupRepo.findFirstBynetworkResourceModelName(
-                                vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
+                                networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_NAME));
 
                 if (tempNetworkLookUp != null) {
 
@@ -1835,29 +1850,28 @@
 
                 }
 
-                networkResource.setToscaNodeType(vlNodeTemplate.getType());
+                networkResource.setToscaNodeType(networkEntity.getToscaType());
                 networkResource.setDescription(
-                        vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
+                        networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
                 networkResource.setOrchestrationMode(HEAT);
 
                 // Build object to populate the
                 // Collection_Network_Resource_Customization table
-                for (NodeTemplate memberNode : group.getMemberNodes()) {
-                    collectionNetworkResourceCustomization.setModelInstanceName(memberNode.getName());
+                for (IEntityDetails networkMemberEntity : ncGroupEntity.getMemberNodes()) {
+                    collectionNetworkResourceCustomization.setModelInstanceName(networkMemberEntity.getName());
                 }
 
                 collectionNetworkResourceCustomization.setModelCustomizationUUID(
-                        vlNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
+                        networkEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
 
                 collectionNetworkResourceCustomization.setNetworkTechnology(
-                        toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vlNodeTemplate,
-                                SdcPropertyNames.PROPERTY_NAME_NETWORKTECHNOLOGY));
-                collectionNetworkResourceCustomization.setNetworkType(toscaResourceStructure.getSdcCsarHelper()
-                        .getNodeTemplatePropertyLeafValue(vlNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKTYPE));
-                collectionNetworkResourceCustomization.setNetworkRole(toscaResourceStructure.getSdcCsarHelper()
-                        .getNodeTemplatePropertyLeafValue(vlNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKROLE));
-                collectionNetworkResourceCustomization.setNetworkScope(toscaResourceStructure.getSdcCsarHelper()
-                        .getNodeTemplatePropertyLeafValue(vlNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE));
+                        getLeafPropertyValue(networkEntity, SdcPropertyNames.PROPERTY_NAME_NETWORKTECHNOLOGY));
+                collectionNetworkResourceCustomization.setNetworkType(
+                        getLeafPropertyValue(networkEntity, SdcPropertyNames.PROPERTY_NAME_NETWORKTYPE));
+                collectionNetworkResourceCustomization.setNetworkRole(
+                        getLeafPropertyValue(networkEntity, SdcPropertyNames.PROPERTY_NAME_NETWORKROLE));
+                collectionNetworkResourceCustomization.setNetworkScope(
+                        getLeafPropertyValue(networkEntity, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE));
                 collectionNetworkResourceCustomization.setInstanceGroup(networkInstanceGroup);
                 collectionNetworkResourceCustomization.setNetworkResource(networkResource);
                 collectionNetworkResourceCustomization.setNetworkResourceCustomization(ncfc);
@@ -2601,21 +2615,21 @@
         return vnfResource;
     }
 
-    protected AllottedResourceCustomization createAllottedResource(NodeTemplate nodeTemplate,
+    protected AllottedResourceCustomization createAllottedResource(IEntityDetails arEntity,
             ToscaResourceStructure toscaResourceStructure, Service service) {
         AllottedResourceCustomization allottedResourceCustomization =
                 allottedCustomizationRepo.findOneByModelCustomizationUUID(
-                        nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
+                        arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
 
         if (allottedResourceCustomization == null) {
             AllottedResource allottedResource = findExistingAllottedResource(service,
-                    nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
+                    arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_UUID));
 
             if (allottedResource == null)
-                allottedResource = createAR(nodeTemplate);
+                allottedResource = createAR(arEntity);
 
             toscaResourceStructure.setAllottedResource(allottedResource);
-            allottedResourceCustomization = createAllottedResourceCustomization(nodeTemplate, toscaResourceStructure);
+            allottedResourceCustomization = createAllottedResourceCustomization(arEntity, toscaResourceStructure);
             allottedResourceCustomization.setAllottedResource(allottedResource);
             allottedResource.getAllotedResourceCustomization().add(allottedResourceCustomization);
         }
@@ -2636,73 +2650,81 @@
         return allottedResource;
     }
 
-    protected AllottedResourceCustomization createAllottedResourceCustomization(NodeTemplate nodeTemplate,
+    protected AllottedResourceCustomization createAllottedResourceCustomization(IEntityDetails arEntity,
             ToscaResourceStructure toscaResourceStructure) {
         AllottedResourceCustomization allottedResourceCustomization = new AllottedResourceCustomization();
         allottedResourceCustomization.setModelCustomizationUUID(
-                testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));
-        allottedResourceCustomization.setModelInstanceName(nodeTemplate.getName());
+                testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));
+        allottedResourceCustomization.setModelInstanceName(arEntity.getName());
+
+        allottedResourceCustomization
+                .setNfFunction(getLeafPropertyValue(arEntity, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION));
+        allottedResourceCustomization.setNfNamingCode(getLeafPropertyValue(arEntity, "nf_naming_code"));
+        allottedResourceCustomization.setNfRole(getLeafPropertyValue(arEntity, SdcPropertyNames.PROPERTY_NAME_NFROLE));
+        allottedResourceCustomization.setNfType(getLeafPropertyValue(arEntity, SdcPropertyNames.PROPERTY_NAME_NFTYPE));
+
+        EntityQuery entityQuery = EntityQuery.newBuilder(SdcTypes.VFC).build();
+
+        TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.VF)
+                .customizationUUID(allottedResourceCustomization.getModelCustomizationUUID()).build();
+
+        List<IEntityDetails> vfcEntities =
+                toscaResourceStructure.getSdcCsarHelper().getEntity(entityQuery, topologyTemplateQuery, false);
 
 
-        allottedResourceCustomization.setNfFunction(testNull(toscaResourceStructure.getSdcCsarHelper()
-                .getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION)));
-        allottedResourceCustomization.setNfNamingCode(testNull(toscaResourceStructure.getSdcCsarHelper()
-                .getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming_code")));
-        allottedResourceCustomization.setNfRole(testNull(toscaResourceStructure.getSdcCsarHelper()
-                .getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFROLE)));
-        allottedResourceCustomization.setNfType(testNull(toscaResourceStructure.getSdcCsarHelper()
-                .getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFTYPE)));
+        if (vfcEntities != null) {
+            for (IEntityDetails vfcEntity : vfcEntities) {
 
-        List<NodeTemplate> vfcNodes = toscaResourceStructure.getSdcCsarHelper()
-                .getVfcListByVf(allottedResourceCustomization.getModelCustomizationUUID());
-
-        if (vfcNodes != null) {
-            for (NodeTemplate vfcNode : vfcNodes) {
-
-                allottedResourceCustomization.setProvidingServiceModelUUID(toscaResourceStructure.getSdcCsarHelper()
-                        .getNodeTemplatePropertyLeafValue(vfcNode, "providing_service_uuid"));
                 allottedResourceCustomization
-                        .setProvidingServiceModelInvariantUUID(toscaResourceStructure.getSdcCsarHelper()
-                                .getNodeTemplatePropertyLeafValue(vfcNode, "providing_service_invariant_uuid"));
-                allottedResourceCustomization.setProvidingServiceModelName(toscaResourceStructure.getSdcCsarHelper()
-                        .getNodeTemplatePropertyLeafValue(vfcNode, "providing_service_name"));
+                        .setProvidingServiceModelUUID(getLeafPropertyValue(vfcEntity, "providing_service_uuid"));
+                allottedResourceCustomization.setProvidingServiceModelInvariantUUID(
+                        getLeafPropertyValue(vfcEntity, "providing_service_invariant_uuid"));
+                allottedResourceCustomization
+                        .setProvidingServiceModelName(getLeafPropertyValue(vfcEntity, "providing_service_name"));
             }
         }
 
+        Map<String, CapabilityAssignment> capAssignmentList = arEntity.getCapabilities();
 
-        CapabilityAssignments arCustomizationCapability =
-                toscaResourceStructure.getSdcCsarHelper().getCapabilitiesOf(nodeTemplate);
+        if (capAssignmentList != null) {
 
-        if (arCustomizationCapability != null) {
-            CapabilityAssignment capAssign = arCustomizationCapability.getCapabilityByName(SCALABLE);
+            for (Map.Entry<String, CapabilityAssignment> entry : capAssignmentList.entrySet()) {
+                CapabilityAssignment arCapability = entry.getValue();
 
-            if (capAssign != null) {
-                allottedResourceCustomization.setMinInstances(
-                        Integer.getInteger(toscaResourceStructure.getSdcCsarHelper().getCapabilityPropertyLeafValue(
-                                capAssign, SdcPropertyNames.PROPERTY_NAME_MININSTANCES)));
-                allottedResourceCustomization.setMaxInstances(
-                        Integer.getInteger(toscaResourceStructure.getSdcCsarHelper().getCapabilityPropertyLeafValue(
-                                capAssign, SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES)));
+                if (arCapability != null) {
+
+                    String capabilityName = arCapability.getName();
+
+                    if (capabilityName.equals(SCALABLE)) {
+
+                        allottedResourceCustomization
+                                .setMinInstances(Integer.getInteger(getCapabilityLeafPropertyValue(arCapability,
+                                        SdcPropertyNames.PROPERTY_NAME_MININSTANCES)));
+                        allottedResourceCustomization
+                                .setMinInstances(Integer.getInteger(getCapabilityLeafPropertyValue(arCapability,
+                                        SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES)));
+
+                    }
+                }
+
             }
         }
+
         return allottedResourceCustomization;
     }
 
-    protected AllottedResource createAR(NodeTemplate nodeTemplate) {
+    protected AllottedResource createAR(IEntityDetails arEntity) {
         AllottedResource allottedResource = new AllottedResource();
-        allottedResource
-                .setModelUUID(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));
+        allottedResource.setModelUUID(testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));
         allottedResource.setModelInvariantUUID(
-                testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID)));
+                testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID)));
+        allottedResource.setModelName(testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));
         allottedResource
-                .setModelName(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));
+                .setModelVersion(testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION)));
+        allottedResource.setToscaNodeType(testNull(arEntity.getToscaType()));
         allottedResource
-                .setModelVersion(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION)));
-        allottedResource.setToscaNodeType(testNull(nodeTemplate.getType()));
-        allottedResource.setSubcategory(
-                testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_SUBCATEGORY)));
-        allottedResource
-                .setDescription(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
+                .setSubcategory(testNull(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_SUBCATEGORY)));
+        allottedResource.setDescription(arEntity.getMetadata().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
         return allottedResource;
     }
 
@@ -2794,14 +2816,26 @@
         return null;
     }
 
+    protected String getCapabilityLeafPropertyValue(CapabilityAssignment capAssign, String propName) {
+
+        Property leafProperty = capAssign.getProperties().get(propName);
+
+        if (leafProperty != null && leafProperty.getValue() != null) {
+            return leafProperty.getValue().toString();
+        }
+
+        return null;
+    }
+
     protected String getPropertyInput(String propertyName) {
 
         String inputName = new String();
 
         if (propertyName != null) {
             int getInputIndex = propertyName.indexOf("{get_input=");
+            int getClosingIndex = propertyName.indexOf("}");
             if (getInputIndex > -1) {
-                inputName = propertyName.substring(getInputIndex + 11, propertyName.length() - 1);
+                inputName = propertyName.substring(getInputIndex + 11, getClosingIndex);
             }
         }
 
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/util/ASDCNotificationLogging.java b/asdc-controller/src/main/java/org/onap/so/asdc/util/ASDCNotificationLogging.java
index a154734..4b069e6 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/util/ASDCNotificationLogging.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/util/ASDCNotificationLogging.java
@@ -724,6 +724,9 @@
                 buffer.append("Model Subcategory:");
                 buffer.append(allottedNode.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_SUBCATEGORY));
                 buffer.append(System.lineSeparator());
+                buffer.append("Model Category:");
+                buffer.append(allottedNode.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY));
+                buffer.append(System.lineSeparator());
                 buffer.append("Model Description:");
                 buffer.append(allottedNode.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));
                 buffer.append(System.lineSeparator());
diff --git a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
index 81977da..b41fbaf 100644
--- a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
+++ b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
@@ -22,7 +22,10 @@
 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
 import static com.github.tomakehurst.wiremock.client.WireMock.post;
 import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
+import static com.github.tomakehurst.wiremock.client.WireMock.verify;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.when;
 import org.junit.Test;
@@ -73,4 +76,32 @@
         deployActivitySpecs.deployActivities();
         assertTrue(activitySpecCreateResponse.getId().equals("testActivityId"));
     }
+
+    @Test
+    public void deployActivitySpecsIT_SDCEndpointDown_Test() throws Exception {
+        ActivitySpecCreateResponse activitySpecCreateResponse = new ActivitySpecCreateResponse();
+        activitySpecCreateResponse.setId("testActivityId");
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Accept", MediaType.APPLICATION_JSON);
+        headers.set("Content-Type", MediaType.APPLICATION_JSON);
+
+        ObjectMapper mapper = new ObjectMapper();
+        String body = mapper.writeValueAsString(activitySpecCreateResponse);
+
+        wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+                .willReturn(aResponse().withHeader("Content-Type", "application/json")
+                        .withStatus(org.springframework.http.HttpStatus.OK.value()).withBody(body)));
+
+        when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("http://localhost:8090");
+
+        String urlPath = "/v1.0/activity-spec/testActivityId/versions/latest/actions";
+
+        wireMockServer.stubFor(
+                put(urlPathMatching(urlPath)).willReturn(aResponse().withHeader("Content-Type", "application/json")
+                        .withStatus(org.springframework.http.HttpStatus.OK.value())));
+
+        deployActivitySpecs.deployActivities();
+        verify(0, putRequestedFor(urlEqualTo(urlPath)));
+    }
+
 }
diff --git a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
index aae5e5d..7a876a6 100644
--- a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
+++ b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
@@ -30,6 +30,7 @@
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
+import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.asdc.activity.ActivitySpecsActions;
 import org.onap.so.asdc.activity.DeployActivitySpecs;
@@ -54,6 +55,7 @@
     protected ActivitySpecsActions activitySpecsActions;
 
     @InjectMocks
+    @Spy
     private DeployActivitySpecs deployActivitySpecs;
 
     @Test
@@ -68,7 +70,8 @@
         List<org.onap.so.db.catalog.beans.ActivitySpec> catalogActivitySpecList =
                 new ArrayList<org.onap.so.db.catalog.beans.ActivitySpec>();
         catalogActivitySpecList.add(catalogActivitySpec);
-        when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("testEndpoint");
+        when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("http://testEndpoint");
+        doReturn(true).when(deployActivitySpecs).checkHttpOk("http://testEndpoint");
         when(activitySpecRepository.findAll()).thenReturn(catalogActivitySpecList);
         doReturn("testActivityId").when(activitySpecsActions).createActivitySpec(Mockito.any(), Mockito.any());
         doReturn(true).when(activitySpecsActions).certifyActivitySpec(Mockito.any(), Mockito.any());
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
index fc72f9b..e1b1247 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
@@ -51,11 +51,13 @@
 import org.onap.so.asdc.client.test.emulators.NotificationDataImpl;
 import org.onap.so.db.catalog.beans.AllottedResource;
 import org.onap.so.db.catalog.beans.AllottedResourceCustomization;
+import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
 import org.onap.so.db.catalog.beans.NetworkResource;
 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.ToscaCsar;
 import org.onap.so.db.catalog.beans.Workflow;
+import org.onap.so.db.catalog.data.repository.AllottedResourceCustomizationRepository;
 import org.onap.so.db.catalog.data.repository.AllottedResourceRepository;
 import org.onap.so.db.catalog.data.repository.NetworkResourceRepository;
 import org.onap.so.db.catalog.data.repository.ServiceRepository;
@@ -77,6 +79,9 @@
     private AllottedResourceRepository allottedRepo;
 
     @Autowired
+    private AllottedResourceCustomizationRepository allottedCustomRepo;
+
+    @Autowired
     private ServiceRepository serviceRepo;
 
     @Autowired
@@ -148,7 +153,6 @@
         AllottedResourceCustomization arCustomization = new AllottedResourceCustomization();
         arCustomization.setModelCustomizationUUID("f62bb612-c5d4-4406-865c-0abec30631ba");
         arCustomization.setModelInstanceName("rege1802pnf 0");
-        arCustomization.setResourceInput("{}");
         arCustomizationSet.add(arCustomization);
 
         arCustomization.setAllottedResource(expectedService);
diff --git a/asdc-controller/src/test/resources/schema.sql b/asdc-controller/src/test/resources/schema.sql
index ad6b156..f2c0480 100644
--- a/asdc-controller/src/test/resources/schema.sql
+++ b/asdc-controller/src/test/resources/schema.sql
@@ -1447,7 +1447,7 @@
   `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
   `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
   `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
-  `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+  `CLOUD_REGION` varchar(11) DEFAULT NULL,
   `CALLBACK_URL` varchar(200) DEFAULT NULL,
   `CORRELATOR` varchar(80) DEFAULT NULL,
   `NETWORK_ID` varchar(45) DEFAULT NULL,
@@ -1500,7 +1500,7 @@
   `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
   `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
   `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
-  `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+  `CLOUD_REGION` varchar(11) DEFAULT NULL,
   `CALLBACK_URL` varchar(200) DEFAULT NULL,
   `CORRELATOR` varchar(80) DEFAULT NULL,
   `NETWORK_ID` varchar(45) DEFAULT NULL,
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
index f14e3dc..ee70dcc 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
@@ -44,7 +44,7 @@
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import org.onap.so.openpojo.rules.HasToStringRule
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 @Deprecated
 class AaiUtil {
@@ -96,7 +96,7 @@
 		String regionId = ""
 		try{
 			URL Url = new URL(url)
-			HttpClient client = new HttpClientFactory().newXmlClient(Url, TargetEntity.AAI)
+			HttpClient client = new HttpClientFactory().newXmlClient(Url, ONAPComponents.AAI)
 			client.addBasicAuthHeader(UrnPropertiesReader.getVariable("aai.auth", execution), UrnPropertiesReader.getVariable("mso.msoKey", execution))
 			client.addAdditionalHeader("X-FromAppId", "MSO")
 			client.addAdditionalHeader("X-TransactionId", utils.getRequestID())
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtils.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtils.groovy
index 2bf7298..83784e1 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtils.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtils.groovy
@@ -37,7 +37,7 @@
 
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.web.util.UriUtils
 
 import javax.ws.rs.core.MediaType
@@ -442,7 +442,7 @@
 			String catalogDbEndpoint = UrnPropertiesReader.getVariable("mso.catalog.db.endpoint",execution)
 			String queryEndpoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + endPoint
 			def responseData = ''
-			HttpClient client = httpClientFactory.newJsonClient(new URL(queryEndpoint), TargetEntity.CATALOG_DB)
+			HttpClient client = httpClientFactory.newJsonClient(new URL(queryEndpoint), ONAPComponents.CATALOG_DB)
 			client.addAdditionalHeader(ONAPLogConstants.Headers.REQUEST_ID, UUID.randomUUID().toString())
 			client.addAdditionalHeader('X-FromAppId', "BPMN")
 			client.addAdditionalHeader('Accept', MediaType.APPLICATION_JSON)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExceptionUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExceptionUtil.groovy
index c231503..195b1fc 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExceptionUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExceptionUtil.groovy
@@ -34,7 +34,7 @@
 import org.camunda.bpm.engine.delegate.DelegateExecution
 import org.onap.so.bpmn.core.WorkflowException
 import org.onap.so.logger.MessageEnum
-import org.onap.so.utils.TargetEntities
+import org.onap.logging.filter.base.ONAPComponentsList
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
@@ -285,7 +285,7 @@
 		logger.debug("Outgoing WorkflowException is " + exception)
 	}
 	
-	public void buildWorkflowException(DelegateExecution execution, int errorCode, String errorMessage, TargetEntities extSystemErrorSource) {
+	public void buildWorkflowException(DelegateExecution execution, int errorCode, String errorMessage, ONAPComponentsList extSystemErrorSource) {
 		MsoUtils utils = new MsoUtils()
 		String processKey = getProcessKey(execution);
 		logger.debug("Building a WorkflowException for " + processKey)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
index 5525c26..a5111a6 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
@@ -29,7 +29,7 @@
 import org.onap.so.client.HttpClientFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.MediaType
 import javax.ws.rs.core.Response
@@ -145,7 +145,7 @@
 			logger.debug( "URL to be used is: " + url)
 			logger.debug("URL to be passed in header is: " + execution.getVariable("SPPartnerUrl"))
 
-			HttpClient client = httpClientFactory.newJsonClient(new URL(url), TargetEntity.EXTERNAL)
+			HttpClient client = httpClientFactory.newJsonClient(new URL(url), ONAPComponents.EXTERNAL)
 			client.addBasicAuthHeader(execution.getVariable("URN_externalapi_auth"), execution.getVariable("URN_mso_msoKey"))
 			client.addAdditionalHeader("X-FromAppId", "MSO")
 			client.addAdditionalHeader(ONAPLogConstants.Headers.REQUEST_ID, uuid)
@@ -183,7 +183,7 @@
 			logger.debug( "URL to be used is: " + url)
 			logger.debug("URL to be passed in header is: " + execution.getVariable("SPPartnerUrl"))
 
-			HttpClient httpClient = httpClientFactory.newJsonClient(new URL(url), TargetEntity.AAI)
+			HttpClient httpClient = httpClientFactory.newJsonClient(new URL(url), ONAPComponents.AAI)
 			httpClient.addBasicAuthHeader(execution.getVariable("URN_externalapi_auth"), execution.getVariable("URN_mso_msoKey"))
 			httpClient.addAdditionalHeader("X-FromAppId", "MSO")
 			httpClient.addAdditionalHeader("X-TransactionId", uuid)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
index 3008f77..6d4b50f 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
@@ -42,7 +42,7 @@
 import org.onap.so.client.aai.entities.uri.AAIResourceUri
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.onap.so.client.graphinventory.entities.uri.Depth
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
@@ -92,7 +92,7 @@
 			logger.debug("AAI endPoint: " + endPoint)
 
 			try {
-				HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), TargetEntity.AAI)
+				HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), ONAPComponents.AAI)
 
 				client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
 				client.addAdditionalHeader('X-FromAppId', 'MSO')
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofHoming.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofHoming.groovy
index 6583ded..b082c18 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofHoming.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofHoming.groovy
@@ -41,7 +41,7 @@
 import org.onap.so.db.catalog.beans.CloudSite
 import org.onap.so.db.catalog.beans.HomingInstance
 import org.onap.so.db.catalog.beans.ServerType
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
@@ -165,7 +165,7 @@
 
 
                 URL url = new URL(urlString)
-                HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.OOF)
+                HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.OOF)
                 httpClient.addAdditionalHeader("Authorization", authHeader)
                 Response httpResponse = httpClient.post(oofRequest)
 
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofUtils.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofUtils.groovy
index 4bfb29b..606b97b 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofUtils.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofUtils.groovy
@@ -40,7 +40,7 @@
 import org.onap.so.client.HttpClientFactory
 import org.onap.so.db.catalog.beans.CloudSite
 import org.onap.so.db.catalog.beans.HomingInstance
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.http.HttpEntity
 import org.springframework.http.HttpHeaders
 import org.springframework.http.HttpMethod
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1.groovy
index c30d807..52d6758 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1.groovy
@@ -47,7 +47,7 @@
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 
@@ -223,7 +223,7 @@
 
 			URL url = new URL(sdncAdapterUrl)
 
-			HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.SDNC_ADAPTER)
+			HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.SDNC_ADAPTER)
 			httpClient.addAdditionalHeader("X-ONAP-RequestID", execution.getVariable("mso-request-id"))
 			httpClient.addAdditionalHeader("X-ONAP-InvocationID", UUID.randomUUID().toString())
 			httpClient.addAdditionalHeader("X-ONAP-PartnerName", "SO-SDNCAdapter")
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SniroHomingV1.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SniroHomingV1.groovy
index 8c2da2c..08c032f 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SniroHomingV1.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/SniroHomingV1.groovy
@@ -37,7 +37,7 @@
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 
 import org.json.JSONArray
@@ -136,7 +136,7 @@
 				logger.debug("Sniro Url is: " + urlString)
 
 				URL url = new URL(urlString);
-				HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.SNIRO)
+				HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.SNIRO)
 				httpClient.addAdditionalHeader("Authorization", authHeader)
 				Response httpResponse = httpClient.post(sniroRequest)
 
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1.groovy
index 866229f..803a3f7 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1.groovy
@@ -35,8 +35,9 @@
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import java.util.UUID
+import org.onap.so.utils.Components
 
 
 
@@ -80,7 +81,7 @@
 				String msg = getProcessKey(execution) + ': no messageId in ' + requestType
 				logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 						ErrorCode.UnknownError.getValue());
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 			}
 
 			execution.setVariable('VNFAResponse_CORRELATOR', messageId)
@@ -94,7 +95,7 @@
 				String msg = getProcessKey(execution) + ': no notificationUrl in ' + requestType
 				logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 						ErrorCode.UnknownError.getValue());
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 			}
 
 			execution.setVariable(prefix + 'notificationUrl', notificationUrl)
@@ -108,7 +109,7 @@
 				String msg = getProcessKey(execution) + ': mso:adapters:vnf:rest:endpoint URN mapping is not defined'
 				logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 						ErrorCode.UnknownError.getValue());
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 			}
 
 			while (vnfAdapterEndpoint.endsWith('/')) {
@@ -126,7 +127,7 @@
 					String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'POST'
@@ -139,7 +140,7 @@
 					String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				String vfModuleId = getChildText(root, 'vfModuleId')
@@ -148,7 +149,7 @@
 					String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'PUT'
@@ -162,7 +163,7 @@
 					String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				String vfModuleId = getChildText(root, 'vfModuleId')
@@ -171,7 +172,7 @@
 					String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'DELETE'
@@ -185,7 +186,7 @@
 					String msg = getProcessKey(execution) + ': no vfModuleRollback in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				String vnfId = getChildText(vfModuleRollbackNode, 'vnfId')
@@ -194,7 +195,7 @@
 					String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				String vfModuleId = getChildText(vfModuleRollbackNode, 'vfModuleId')
@@ -203,7 +204,7 @@
 					String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'DELETE'
@@ -224,7 +225,7 @@
 					String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'PUT'
@@ -240,7 +241,7 @@
 					String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'DELETE'
@@ -256,7 +257,7 @@
 					String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
 					logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 							ErrorCode.UnknownError.getValue());
-					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 				}
 
 				vnfAdapterMethod = 'DELETE'
@@ -269,7 +270,7 @@
 				String msg = getProcessKey(execution) + ': Unsupported request type: ' + requestType
 				logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 						ErrorCode.UnknownError.getValue());
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 			}
 
 			execution.setVariable(prefix + 'vnfAdapterMethod', vnfAdapterMethod)
@@ -306,7 +307,7 @@
 			logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 					ErrorCode.UnknownError.getValue());
 			logger.debug(msg)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 		}
 	}
 
@@ -337,7 +338,7 @@
 
 			URL url = new URL(vnfAdapterUrl);
 
-			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.VNF_ADAPTER)
+			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.VNF_ADAPTER)
 			httpClient.addAdditionalHeader("Authorization", execution.getVariable(prefix + "basicAuthHeaderValue"))
 			
 			httpClient.addAdditionalHeader("X-ONAP-RequestID", execution.getVariable("mso-request-id"))
@@ -357,7 +358,7 @@
 				String msg = 'Unsupported HTTP method "' + vnfAdapterMethod + '" in ' + method + ": " + e
 				logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 						ErrorCode.UnknownError.getValue());
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 			}
 
 			execution.setVariable(prefix + "vnfAdapterStatusCode", response.getStatus())
@@ -370,7 +371,7 @@
 			String msg = 'Caught exception in ' + method + ": " + e
 			logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
 					ErrorCode.UnknownError.getValue());
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
 		}
 	}
 
@@ -399,7 +400,7 @@
 			}
 		} catch (Exception e) {
 			logger.debug("Error encountered within VnfAdapterRest ProcessCallback method: {}", e.getMessage(), e)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7020, "Error encountered within VnfAdapterRest ProcessCallback method", TargetEntity.SO)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7020, "Error encountered within VnfAdapterRest ProcessCallback method", ONAPComponents.SO)
 		}
 	}
 
@@ -418,10 +419,10 @@
 			String rolledBack = getChildText(root, "rolledBack")
 			rolledBack = rolledBack == null || rolledBack.isEmpty() ? "" : " rolledBack='" + rolledBack + "'"
 			exceptionUtil.buildWorkflowException(execution, 7020, "Received " + root.name() +
-				" from VnfAdapter:" + category + message + rolledBack, TargetEntity.OPENSTACK);
+				" from VnfAdapter:" + category + message + rolledBack, Components.OPENSTACK);
 		} catch (Exception e) {
 			response = response == null || String.valueOf(response).isEmpty() ? "NONE" : response
-			exceptionUtil.buildWorkflowException(execution, 7020, "Received error from VnfAdapter: " + response, TargetEntity.OPENSTACK)
+			exceptionUtil.buildWorkflowException(execution, 7020, "Received error from VnfAdapter: " + response, Components.OPENSTACK)
 		}
 	}
 
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
index 2c1d362..8efb6a3 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
@@ -44,7 +44,7 @@
 import org.onap.so.bpmn.core.json.JsonUtils;
 import org.onap.so.client.HttpClient;
 import org.onap.so.client.HttpClientFactory;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
@@ -383,7 +383,7 @@
 
         HttpClient client = new HttpClientFactory().newJsonClient(UriBuilder.fromUri(catalogEndPoint)
                 .path(SERVICE_URL_SERVICE_INSTANCE).queryParam("serviceModelUuid", uuid).build().toURL(),
-                TargetEntity.CATALOG_DB);
+                ONAPComponents.CATALOG_DB);
 
         client.addAdditionalHeader("Accept", "application/json");
         client.addAdditionalHeader("Authorization", UrnPropertiesReader.getVariable("mso.db.auth"));
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
index be53e50..ae7addc 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
@@ -25,6 +25,7 @@
 import java.util.Map;
 import org.camunda.bpm.engine.delegate.BpmnError;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.logging.filter.base.ONAPComponentsList;
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
@@ -35,8 +36,7 @@
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.client.RequestsDbClient;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -104,7 +104,7 @@
                     }
                 } catch (Exception ex) {
                     // keep default serviceType value
-                    logger.error("Exception in serviceType retrivel", ex);
+                    logger.error("Exception in serviceType retrieval", ex);
                 }
                 String vnfType = ASTERISK;
                 try {
@@ -116,22 +116,21 @@
                     }
                 } catch (Exception ex) {
                     // keep default vnfType value
-                    logger.error("Exception in vnfType retrivel", ex);
+                    logger.error("Exception in vnfType retrieval", ex);
                 }
 
                 String errorCode = ASTERISK;
-                try {
+                if (workflowException != null) {
                     errorCode = "" + workflowException.getErrorCode();
-                } catch (Exception ex) {
-                    // keep default errorCode value
-                    logger.error("Exception in errorCode retrivel", ex);
+                } else {
+                    logger.debug("WorkflowException is null, unable to get error code");
                 }
 
                 try {
                     errorCode = "" + (String) execution.getVariable("WorkflowExceptionCode");
                 } catch (Exception ex) {
                     // keep default errorCode value
-                    logger.error("Exception in errorCode retrivel", ex);
+                    logger.error("Exception in errorCode retrieval", ex);
                 }
 
                 String workStep = ASTERISK;
@@ -139,7 +138,7 @@
                     workStep = workflowException.getWorkStep();
                 } catch (Exception ex) {
                     // keep default workStep value
-                    logger.error("Exception in workStep retrivel", ex);
+                    logger.error("Exception in workStep retrieval", ex);
                 }
 
                 String errorMessage = ASTERISK;
@@ -147,7 +146,7 @@
                     errorMessage = workflowException.getErrorMessage();
                 } catch (Exception ex) {
                     // keep default workStep value
-                    logger.error("Exception in errorMessage retrivel", ex);
+                    logger.error("Exception in errorMessage retrieval", ex);
                 }
 
                 String serviceRole = ASTERISK;
@@ -223,7 +222,7 @@
         try {
             String requestId = (String) execution.getVariable("mso-request-id");
             WorkflowException exception = (WorkflowException) execution.getVariable("WorkflowException");
-            TargetEntities extSystemErrorSource = exception.getExtSystemErrorSource();
+            ONAPComponentsList extSystemErrorSource = exception.getExtSystemErrorSource();
             InfraActiveRequests request = requestDbclient.getInfraActiveRequestbyRequestId(requestId);
             Boolean isRollbackFailure = (Boolean) execution.getVariable("isRollback");
             if (isRollbackFailure == null) {
@@ -244,10 +243,10 @@
             } else if (isRollbackFailure) {
                 logger.debug(
                         "rollbackExtSystemErrorSource is null for isRollbackFailure. Setting rollbackExtSystemErrorSource to UNKNOWN");
-                request.setRollbackExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+                request.setRollbackExtSystemErrorSource(Components.UNKNOWN.toString());
             } else {
                 logger.debug("extSystemErrorSource is null. Setting extSystemErrorSource to UNKNOWN");
-                request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+                request.setExtSystemErrorSource(Components.UNKNOWN.toString());
             }
 
             request.setLastModifiedBy("CamundaBPMN");
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
index 729f5c9..c26a1cf 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
@@ -43,8 +43,8 @@
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -92,7 +92,7 @@
     }
 
     public void buildAndThrowWorkflowException(BuildingBlockExecution execution, int errorCode, Exception exception,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String msg = "Exception in %s.%s ";
         try {
             logger.error("Exception occurred", exception);
@@ -156,7 +156,7 @@
     }
 
     public void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode, Exception exception,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String msg = "Exception in %s.%s ";
         try {
             logger.error("Exception occurred", exception);
@@ -195,7 +195,7 @@
     }
 
     public void buildAndThrowWorkflowException(BuildingBlockExecution execution, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         if (execution instanceof DelegateExecutionImpl) {
             buildAndThrowWorkflowException(((DelegateExecutionImpl) execution).getDelegateExecution(), errorCode,
                     errorMessage, extSystemErrorSource);
@@ -215,7 +215,7 @@
     }
 
     public void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String processKey = getProcessKey(execution);
         logger.info("Building a WorkflowException for Subflow");
 
@@ -293,7 +293,7 @@
                 execution.setVariable("StatusMessage", errorMessage.toString());
             } else {
                 WorkflowException exception =
-                        new WorkflowException(processKey, 400, errorMessage.toString(), TargetEntity.SO);
+                        new WorkflowException(processKey, 400, errorMessage.toString(), ONAPComponents.SO);
                 execution.setVariable("WorkflowException", exception);
                 execution.setVariable("WorkflowExceptionErrorMessage", errorMessage.toString());
                 logger.info("Outgoing WorkflowException is {}", exception);
@@ -303,7 +303,7 @@
 
         } else {
             String errorMessage = "Unable to process audit results due to auditInventoryResult being null";
-            WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, TargetEntity.SO);
+            WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, ONAPComponents.SO);
             execution.setVariable("WorkflowException", exception);
             execution.setVariable("WorkflowExceptionErrorMessage", errorMessage);
             logger.info("Outgoing WorkflowException is {}", exception);
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy
index d7438f8..fda6b8e 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy
@@ -32,7 +32,7 @@
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.skyscreamer.jsonassert.JSONAssert
 import org.skyscreamer.jsonassert.JSONCompareMode
 import org.springframework.core.env.Environment
@@ -127,7 +127,7 @@
     private void mockGetResponseFromCatalogDb(String queryEndpoint) {
         Environment environmentMock = createEnvironmentMock()
         when(environmentMock.getProperty("mso.catalog.db.endpoint")).thenReturn("http://testUrl")
-        when(httpClientFactoryMock.newJsonClient(new URL(queryEndpoint), TargetEntity.CATALOG_DB)).thenReturn(httpClientMock)
+        when(httpClientFactoryMock.newJsonClient(new URL(queryEndpoint), ONAPComponents.CATALOG_DB)).thenReturn(httpClientMock)
 
         Response responseMock = mock(Response.class)
         when(httpClientMock.get()).thenReturn(responseMock)
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy
index 837bc77..7abfcff 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy
@@ -26,7 +26,7 @@
 import org.onap.logging.ref.slf4j.ONAPLogConstants
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.http.HttpStatus
 
 import javax.ws.rs.core.MediaType
@@ -53,7 +53,7 @@
         HttpClient httpClient = mock(HttpClient.class)
         given(httpClient.get()).willReturn(expectedResponse)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.EXTERNAL)).willReturn(httpClient)
 
         // WHEN
         ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
@@ -75,7 +75,7 @@
         HttpClient httpClient = mock(HttpClient.class)
         willThrow(new RuntimeException("error occurred")).given(httpClient).get()
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.EXTERNAL)).willReturn(httpClient)
         DelegateExecution delegateExecution = createDelegateExecution()
         DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
 
@@ -97,7 +97,7 @@
         HttpClient httpClient = mock(HttpClient.class)
         willThrow(new RuntimeException("error occurred")).given(httpClient).post(BODY_PAYLOAD)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.AAI)).willReturn(httpClient)
         DelegateExecution delegateExecution = createDelegateExecution()
         DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
 
@@ -120,7 +120,7 @@
         HttpClient httpClient = mock(HttpClient.class)
         given(httpClient.post(BODY_PAYLOAD)).willReturn(expectedResponse)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.AAI)).willReturn(httpClient)
 
         // WHEN
         ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDayUnitTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDayUnitTest.java
index 6a48558..6d5ce62 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDayUnitTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDayUnitTest.java
@@ -33,10 +33,11 @@
 import org.mockito.Mockito;
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.client.RequestsDbClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ExecuteBuildingBlockRainyDayUnitTest {
@@ -57,7 +58,7 @@
 
     @Before
     public void setup() {
-        exception = new WorkflowException("Test exception", 7000, "", "", TargetEntity.SDNC);
+        exception = new WorkflowException("Test exception", 7000, "", "", ONAPComponents.SDNC);
         noExtSystemErrorSourceException =
                 new WorkflowException("Test exception without extsystemErrorSource", 7000, "", "");
 
@@ -75,7 +76,7 @@
         execution.setVariable("isRollback", false);
         execution.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
@@ -87,42 +88,42 @@
         execution.setVariable("isRollback", true);
         execution.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceisRollbackTargetEntityNullTest() {
+    public void updateExtSystemErrorSourceisRollbackONAPComponentsNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         execution.setVariable("isRollback", true);
         execution.setVariable("WorkflowException", noExtSystemErrorSourceException);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+        request.setExtSystemErrorSource(Components.UNKNOWN.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceTargetEntityNullTest() {
+    public void updateExtSystemErrorSourceONAPComponentsNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         execution.setVariable("isRollback", false);
         execution.setVariable("WorkflowException", noExtSystemErrorSourceException);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+        request.setExtSystemErrorSource(Components.UNKNOWN.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceTargetEntityisRollbackNullTest() {
+    public void updateExtSystemErrorSourceONAPComponentsisRollbackNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         executionNullisRollback.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(executionNullisRollback);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderUnitTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderUnitTest.java
index b109ae2..5baafbb 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderUnitTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderUnitTest.java
@@ -39,7 +39,7 @@
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ExceptionBuilderUnitTest {
@@ -67,12 +67,12 @@
         String expectedErrorMessage =
                 "Exception in org.onap.so.client.exception.ExceptionBuilder.buildAndThrowWorkflowException failure message";
         doNothing().when(exceptionBuilder).buildAndThrowWorkflowException(execution, 7000, expectedErrorMessage,
-                TargetEntity.SDNC);
+                ONAPComponents.SDNC);
 
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e, TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e, ONAPComponents.SDNC);
 
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(execution, 7000, expectedErrorMessage,
-                TargetEntity.SDNC);
+                ONAPComponents.SDNC);
     }
 
     @Test
@@ -80,12 +80,12 @@
         String expectedErrorMessage =
                 "Exception in org.onap.so.client.exception.ExceptionBuilder.buildAndThrowWorkflowException failure message";
         doNothing().when(exceptionBuilder).buildAndThrowWorkflowException(buildingBlockExecution, 7000,
-                expectedErrorMessage, TargetEntity.SDNC);
+                expectedErrorMessage, ONAPComponents.SDNC);
 
-        exceptionBuilder.buildAndThrowWorkflowException(buildingBlockExecution, 7000, e, TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(buildingBlockExecution, 7000, e, ONAPComponents.SDNC);
 
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(buildingBlockExecution, 7000,
-                expectedErrorMessage, TargetEntity.SDNC);
+                expectedErrorMessage, ONAPComponents.SDNC);
     }
 
     @Test
@@ -93,6 +93,6 @@
         doReturn("Process key").when(exceptionBuilder).getProcessKey(execution);
 
         thrown.expect(BpmnError.class);
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), ONAPComponents.SDNC);
     }
 }
diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/WorkflowException.java b/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/WorkflowException.java
index 7d5bb0d..f8dfad6 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/WorkflowException.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/WorkflowException.java
@@ -21,7 +21,7 @@
 package org.onap.so.bpmn.core;
 
 import java.io.Serializable;
-import org.onap.so.utils.TargetEntities;
+import org.onap.logging.filter.base.ONAPComponentsList;
 
 /**
  * An object that represents a workflow exception.
@@ -33,7 +33,7 @@
     private final int errorCode;
     private final String errorMessage;
     private final String workStep;
-    private TargetEntities extSystemErrorSource;
+    private ONAPComponentsList extSystemErrorSource;
 
     /**
      * Constructor
@@ -50,7 +50,7 @@
     }
 
     public WorkflowException(String processKey, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         this.processKey = processKey;
         this.errorCode = errorCode;
         this.errorMessage = errorMessage;
@@ -66,7 +66,7 @@
     }
 
     public WorkflowException(String processKey, int errorCode, String errorMessage, String workStep,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         this.processKey = processKey;
         this.errorCode = errorCode;
         this.errorMessage = errorMessage;
@@ -102,7 +102,7 @@
         return workStep;
     }
 
-    public TargetEntities getExtSystemErrorSource() {
+    public ONAPComponentsList getExtSystemErrorSource() {
         return extSystemErrorSource;
     }
 
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
index a049f81..03feda6 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
@@ -38,9 +38,7 @@
 import org.onap.so.bpmn.common.workflow.service.WorkflowResource;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingInInterceptor;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -65,7 +63,7 @@
     private WorkflowAsyncResource workflowAsyncResource;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private ObjectMapper mapper;
@@ -108,7 +106,7 @@
         endpoint.setServiceBeans(Arrays.<Object>asList(wmr, workflowResource, workflowAsyncResource));
         endpoint.setAddress("/");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
 
         return endpoint.create();
     }
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
index a4fc6e5..29fc4e9 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
@@ -33,7 +33,7 @@
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
 import org.onap.so.db.catalog.beans.Workflow;
 import org.onap.so.db.catalog.client.CatalogDbClient;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java b/bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
index dd993bc..0783178 100644
--- a/bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
+++ b/bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
@@ -20,9 +20,8 @@
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
-import java.util.HashMap;
+import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import org.onap.so.bpmn.infrastructure.pnf.dmaap.DmaapClient;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
@@ -35,8 +34,7 @@
     private Runnable informConsumer;
 
     @Override
-    public void registerForUpdate(String pnfCorrelationId, Runnable informConsumer,
-            Optional<HashMap<String, String>> updateInfo) {
+    public void registerForUpdate(String pnfCorrelationId, Runnable informConsumer, Map<String, String> updateInfo) {
         this.pnfCorrelationId = pnfCorrelationId;
         this.informConsumer = informConsumer;
     }
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
index 901964f..2e664d9 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
@@ -37,7 +37,7 @@
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
 import javax.ws.rs.core.Response
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 /**
  * This groovy class supports the <class>DoCreateVFCNetworkServiceInstance.bpmn</class> process.
@@ -273,7 +273,7 @@
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
index 7abdd49..1d3b275 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
@@ -52,7 +52,7 @@
 import org.apache.commons.lang3.*
 import javax.ws.rs.core.MediaType
 import org.apache.commons.codec.binary.Base64
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 /**
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
index 41a302f..e34e505 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
@@ -35,7 +35,7 @@
 import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
 import org.onap.so.bpmn.common.scripts.VidUtils
 import org.onap.so.bpmn.core.WorkflowException
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.Response
 import org.camunda.bpm.engine.delegate.BpmnError
@@ -199,7 +199,7 @@
 			execution.setVariable(Prefix + "urlRollbackPoNetwork", urlRollbackPoNetwork)
 
 			URL url = new URL(urlRollbackPoNetwork)
-			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.OPENSTACK_ADAPTER)
+			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
 			httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
 			Response response = httpClient.delete(rollbackNetworkRequest)
 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
index 1517a33..2def9e2 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
@@ -39,7 +39,7 @@
 import org.slf4j.LoggerFactory
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.Response
 
@@ -258,7 +258,7 @@
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVfModule.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
index 731c5b8..dafc4b5 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
@@ -67,7 +67,7 @@
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.w3c.dom.Document
 import org.w3c.dom.Element
 import org.w3c.dom.NamedNodeMap
@@ -698,7 +698,7 @@
 			String endPoint = aaiUriUtil.createAaiUri(uri)
 
 			try {
-				HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), TargetEntity.AAI)
+				HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), ONAPComponents.AAI)
 				client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
 				client.addAdditionalHeader('X-FromAppId', 'MSO')
 				client.addAdditionalHeader('Content-Type', MediaType.APPLICATION_XML)
@@ -781,7 +781,7 @@
 			AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, vnfId).queryParam("vf-module-name",vfModuleName)
 			String endPoint = aaiUriUtil.createAaiUri(uri)
 
-			HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), TargetEntity.AAI)
+			HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), ONAPComponents.AAI)
 			client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
 			client.addAdditionalHeader('X-FromAppId', 'MSO')
 			client.addAdditionalHeader('Content-Type', MediaType.APPLICATION_XML)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
index 34ea20b..a24bc44 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
@@ -54,7 +54,7 @@
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.web.util.UriUtils
 
 import javax.ws.rs.NotFoundException
@@ -388,7 +388,7 @@
 		String serviceAaiPath = "${aai_endpoint}${urlLink}"
 
 		URL url = new URL(serviceAaiPath)
-		HttpClient client = new HttpClientFactory().newXmlClient(url, TargetEntity.AAI)
+		HttpClient client = new HttpClientFactory().newXmlClient(url, ONAPComponents.AAI)
         client.addBasicAuthHeader(UrnPropertiesReader.getVariable("aai.auth", execution), UrnPropertiesReader.getVariable("mso.msoKey", execution))
         client.addAdditionalHeader("X-FromAppId", "MSO")
         client.addAdditionalHeader("X-TransactionId", utils.getRequestID())
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
index df8735a..09eb799 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
@@ -51,7 +51,7 @@
 import org.slf4j.LoggerFactory
 
 import org.springframework.web.util.UriUtils
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import groovy.json.JsonOutput
 import javax.ws.rs.core.Response
@@ -455,7 +455,7 @@
 			String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
 
 			URL url = new URL(vnfAdapterUrl)
-			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.OPENSTACK_ADAPTER)
+			HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
 			httpClient.accept = "application/xml"
 			httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
 			Response response = httpClient.delete(vnfAdapterRequest)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
index 00244ad..28f4460 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
@@ -34,7 +34,7 @@
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
 import javax.ws.rs.core.Response
@@ -226,7 +226,7 @@
 			// Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
@@ -257,7 +257,7 @@
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
             httpClient.addAdditionalHeader("Content-Type", "application/json")
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoScaleVFCNetworkServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoScaleVFCNetworkServiceInstance.groovy
index 2a8cc08..367975e 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoScaleVFCNetworkServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoScaleVFCNetworkServiceInstance.groovy
@@ -51,7 +51,7 @@
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 
@@ -209,7 +209,7 @@
         try{
 			URL url = new URL(urlString);
 
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
 			httpClient.addAdditionalHeader("Authorization", "Basic QlBFTENsaWVudDpwYXNzd29yZDEk")
 
 			apiResponse = httpClient.post(requestBody)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy
index 75ac690..cfdba89 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy
@@ -45,7 +45,7 @@
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 /**
  * This class supports the VID Flow
@@ -164,7 +164,7 @@
 			logger.debug("AAI endPoint: " + endPoint)
 
 			try {
-				HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), TargetEntity.AAI)
+				HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), ONAPComponents.AAI)
 				client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
 				client.addAdditionalHeader('X-FromAppId', 'MSO')
 				client.addAdditionalHeader('Content-Type', 'application/xml')
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/InformDmaapClient.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/InformDmaapClient.java
index 2ababac..a55f32a 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/InformDmaapClient.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/InformDmaapClient.java
@@ -3,6 +3,7 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Nokia.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,14 +21,12 @@
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
+import java.util.Map;
 import org.camunda.bpm.engine.RuntimeService;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.camunda.bpm.engine.runtime.Execution;
-import org.onap.aai.domain.yang.v13.Metadatum;
 import org.onap.so.bpmn.common.recipe.ResourceInput;
 import org.onap.so.bpmn.common.resource.ResourceRequestBuilder;
-import org.onap.so.bpmn.core.json.JsonUtils;
 import org.onap.so.bpmn.infrastructure.pnf.dmaap.DmaapClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,7 +38,7 @@
 @Component
 public class InformDmaapClient implements JavaDelegate {
 
-    private Logger logger = LoggerFactory.getLogger(getClass());
+    private static final Logger LOGGER = LoggerFactory.getLogger(InformDmaapClient.class);
     private DmaapClient dmaapClient;
 
     @Override
@@ -47,25 +46,34 @@
         String pnfCorrelationId = (String) execution.getVariable(ExecutionVariableNames.PNF_CORRELATION_ID);
         RuntimeService runtimeService = execution.getProcessEngineServices().getRuntimeService();
         String processBusinessKey = execution.getProcessBusinessKey();
-        HashMap<String, String> updateInfo = createUpdateInfo(execution);
-        updateInfo.put("pnfCorrelationId", pnfCorrelationId);
-        dmaapClient
-                .registerForUpdate(pnfCorrelationId,
-                        () -> runtimeService.createMessageCorrelation("WorkflowMessage")
-                                .processInstanceBusinessKey(processBusinessKey).correlateWithResult(),
-                        Optional.of(updateInfo));
+        dmaapClient.registerForUpdate(pnfCorrelationId,
+                () -> runtimeService.createMessageCorrelation("WorkflowMessage")
+                        .processInstanceBusinessKey(processBusinessKey).correlateWithResult(),
+                createUpdateInfoMap(execution));
     }
 
-    private HashMap<String, String> createUpdateInfo(DelegateExecution execution) {
-        HashMap<String, String> map = new HashMap();
+    private Map<String, String> createUpdateInfoMap(DelegateExecution execution) {
+        Map<String, String> updateInfoMap = new HashMap<>();
+        updateInfoMap.put("pnfCorrelationId",
+                (String) execution.getVariable(ExecutionVariableNames.PNF_CORRELATION_ID));
+        getResourceInput(execution).ifPresent(resourceInput -> {
+            updateInfoMap.put("globalSubscriberID", resourceInput.getGlobalSubscriberId());
+            updateInfoMap.put("serviceType", resourceInput.getServiceType());
+            updateInfoMap.put("serviceInstanceId", resourceInput.getServiceInstanceId());
+        });
+        return updateInfoMap;
+    }
 
-        ResourceInput resourceInputObj = ResourceRequestBuilder
-
-                .getJsonObject((String) execution.getVariable("resourceInput"), ResourceInput.class);
-        map.put("globalSubscriberID", resourceInputObj.getGlobalSubscriberId());
-        map.put("serviceType", resourceInputObj.getServiceType());
-        map.put("serviceInstanceId", resourceInputObj.getServiceInstanceId());
-        return map;
+    private Optional<ResourceInput> getResourceInput(DelegateExecution execution) {
+        ResourceInput resourceInput = null;
+        if (execution.getVariable("resourceInput") != null) {
+            resourceInput = ResourceRequestBuilder.getJsonObject((String) execution.getVariable("resourceInput"),
+                    ResourceInput.class);
+        } else {
+            LOGGER.warn("resourceInput value is null for correlation id: {}",
+                    execution.getVariable(ExecutionVariableNames.PNF_CORRELATION_ID));
+        }
+        return Optional.ofNullable(resourceInput);
     }
 
     @Autowired
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/DmaapClient.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/DmaapClient.java
index d513684..bafb749 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/DmaapClient.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/DmaapClient.java
@@ -3,6 +3,7 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Nokia.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,13 +21,11 @@
 
 package org.onap.so.bpmn.infrastructure.pnf.dmaap;
 
-import java.util.HashMap;
-import java.util.Optional;
+import java.util.Map;
 
 public interface DmaapClient {
 
-    void registerForUpdate(String pnfCorrelationId, Runnable informConsumer,
-            Optional<HashMap<String, String>> updateInfo);
+    void registerForUpdate(String pnfCorrelationId, Runnable informConsumer, Map<String, String> updateInfo);
 
     Runnable unregister(String pnfCorrelationId);
 }
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClient.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClient.java
index 48061db..02303a6 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClient.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClient.java
@@ -54,8 +54,7 @@
     private int topicListenerDelayInSeconds;
     private volatile ScheduledThreadPoolExecutor executor;
     private volatile boolean dmaapThreadListenerIsRunning;
-
-    public volatile List<HashMap<String, String>> updateInfoMap;
+    private volatile List<Map<String, String>> listOfUpdateInfoMap;
 
     @Autowired
     public PnfEventReadyDmaapClient(Environment env) {
@@ -68,18 +67,15 @@
                 .port(env.getProperty("pnf.dmaap.port", Integer.class)).path(env.getProperty("pnf.dmaap.topicName"))
                 .path(env.getProperty("pnf.dmaap.consumerGroup")).path(env.getProperty("pnf.dmaap.consumerId"))
                 .build());
-        updateInfoMap = new ArrayList<>();
+        listOfUpdateInfoMap = new ArrayList<>();
     }
 
     @Override
     public synchronized void registerForUpdate(String pnfCorrelationId, Runnable informConsumer,
-            Optional<HashMap<String, String>> updateInfo) {
+            Map<String, String> updateInfo) {
         logger.debug("registering for pnf ready dmaap event for pnf correlation id: {}", pnfCorrelationId);
-        HashMap<String, String> map = updateInfo.get();
-        if (map != null && map.size() > 0) {
-            synchronized (updateInfoMap) {
-                updateInfoMap.add(map);
-            }
+        synchronized (listOfUpdateInfoMap) {
+            listOfUpdateInfoMap.add(updateInfo);
         }
         pnfCorrelationIdToThreadMap.put(pnfCorrelationId, informConsumer);
         if (!dmaapThreadListenerIsRunning) {
@@ -91,14 +87,14 @@
     public synchronized Runnable unregister(String pnfCorrelationId) {
         logger.debug("unregistering from pnf ready dmaap event for pnf correlation id: {}", pnfCorrelationId);
         Runnable runnable = pnfCorrelationIdToThreadMap.remove(pnfCorrelationId);
-        synchronized (updateInfoMap) {
-            for (int i = updateInfoMap.size() - 1; i >= 0; i--) {
-                if (!updateInfoMap.get(i).containsKey("pnfCorrelationId"))
+        synchronized (listOfUpdateInfoMap) {
+            for (int i = listOfUpdateInfoMap.size() - 1; i >= 0; i--) {
+                if (!listOfUpdateInfoMap.get(i).containsKey("pnfCorrelationId"))
                     continue;
-                String id = updateInfoMap.get(i).get("pnfCorrelationId");
+                String id = listOfUpdateInfoMap.get(i).get("pnfCorrelationId");
                 if (id != pnfCorrelationId)
                     continue;
-                updateInfoMap.remove(i);
+                listOfUpdateInfoMap.remove(i);
             }
         }
         if (pnfCorrelationIdToThreadMap.isEmpty()) {
@@ -174,8 +170,8 @@
             String customerId = null;
             String serviceType = null;
             String serId = null;
-            synchronized (updateInfoMap) {
-                for (HashMap<String, String> map : updateInfoMap) {
+            synchronized (listOfUpdateInfoMap) {
+                for (Map<String, String> map : listOfUpdateInfoMap) {
                     if (!map.containsKey("pnfCorrelationId"))
                         continue;
                     if (pnfCorrelationId != map.get("pnfCorrelationId"))
diff --git a/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java b/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
index 2634f03..598582b 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/DmaapClientTestImpl.java
@@ -3,6 +3,7 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Nokia.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,10 +21,9 @@
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
+import java.util.Map;
 import org.onap.so.bpmn.infrastructure.pnf.dmaap.DmaapClient;
-import java.util.HashMap;
 import java.util.Objects;
-import java.util.Optional;
 
 public class DmaapClientTestImpl implements DmaapClient {
 
@@ -31,8 +31,7 @@
     private Runnable informConsumer;
 
     @Override
-    public void registerForUpdate(String pnfCorrelationId, Runnable informConsumer,
-            Optional<HashMap<String, String>> updateInfo) {
+    public void registerForUpdate(String pnfCorrelationId, Runnable informConsumer, Map<String, String> updateInfo) {
         this.pnfCorrelationId = pnfCorrelationId;
         this.informConsumer = informConsumer;
     }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/buildingblock/SniroHomingV2.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/buildingblock/SniroHomingV2.java
index f1fd23f..f10b503 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/buildingblock/SniroHomingV2.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/buildingblock/SniroHomingV2.java
@@ -65,7 +65,7 @@
 import org.onap.so.client.sniro.beans.SniroManagerRequest;
 import org.onap.so.client.sniro.beans.SubscriberInfo;
 import org.onap.so.db.catalog.beans.OrchestrationStatus;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -162,14 +162,14 @@
         } catch (BpmnError e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(e.getErrorCode()), e.getMessage(),
-                    TargetEntity.SNIRO);
+                    ONAPComponents.SNIRO);
         } catch (BadResponseException e) {
             logger.error(EXCEPTION_OCCURRED, e);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), TargetEntity.SNIRO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), ONAPComponents.SNIRO);
         } catch (Exception e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, INTERNAL,
-                    "Internal Error - occurred while preparing sniro request: " + e.getMessage(), TargetEntity.SO);
+                    "Internal Error - occurred while preparing sniro request: " + e.getMessage(), ONAPComponents.SO);
         }
     }
 
@@ -214,15 +214,15 @@
         } catch (BpmnError e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(e.getErrorCode()), e.getMessage(),
-                    TargetEntity.SNIRO);
+                    ONAPComponents.SNIRO);
         } catch (BadResponseException e) {
             logger.error(EXCEPTION_OCCURRED, e);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), TargetEntity.SNIRO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), ONAPComponents.SNIRO);
         } catch (Exception e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, INTERNAL,
                     "Internal Error - occurred while processing sniro asynchronous response: " + e.getMessage(),
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1.java
index e9d33f4..2705d00 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1.java
@@ -38,11 +38,12 @@
 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.orchestration.NetworkAdapterResources;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.onap.so.utils.Components;
 
 @Component
 public class NetworkAdapterRestV1 {
@@ -94,7 +95,7 @@
                 throw new Exception("No Network Request was created. networkAdapterRequest was null.");
             }
         } catch (Exception ex) {
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 
@@ -139,7 +140,7 @@
             }
         } catch (Exception e) {
             logger.error("Error in Openstack Adapter callback", e);
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.OPENSTACK);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), Components.OPENSTACK);
         }
     }
 
@@ -152,7 +153,7 @@
 
     public void handleTimeOutException(DelegateExecution execution) {
         exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                "Error timed out waiting on Openstack Async-Response", TargetEntity.SO);
+                "Error timed out waiting on Openstack Async-Response", ONAPComponents.SO);
     }
 
     public void handleSyncError(DelegateExecution execution) {
@@ -160,6 +161,6 @@
         String responseString = (String) execution.getVariable(NETWORK_SYNC_RESPONSE);
         String errorMessage = "Error with Openstack Adapter Sync Request: StatusCode = " + statusCode + " Response = "
                 + responseString;
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, errorMessage, TargetEntity.OPENSTACK);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, errorMessage, Components.OPENSTACK);
     }
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java
index 127d21c..9c72d22 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java
@@ -60,6 +60,8 @@
     public static final String ROLLBACK_VNF_STOP = "rollbackVnfStop";
     public static final String ROLLBACK_VNF_LOCK = "rollbackVnfLock";
     public static final String ROLLBACK_QUIESCE_TRAFFIC = "rollbackQuiesceTraffic";
+    public static final String CONTROLLER_TYPE_DEFAULT = "APPC";
+    public static final String GENERIC_APPC_ERROR_CODE = "1002";
     @Autowired
     private ExceptionBuilder exceptionUtil;
     @Autowired
@@ -139,7 +141,12 @@
 
             ControllerSelectionReference controllerSelectionReference = catalogDbClient
                     .getControllerSelectionReferenceByVnfTypeAndActionCategory(vnfType, action.toString());
-            String controllerType = controllerSelectionReference.getControllerName();
+            String controllerType = null;
+            if (controllerSelectionReference != null) {
+                controllerType = controllerSelectionReference.getControllerName();
+            } else {
+                controllerType = CONTROLLER_TYPE_DEFAULT;
+            }
 
             String vfModuleId = null;
             VfModule vfModule = null;
@@ -153,7 +160,7 @@
 
             HashMap<String, String> payloadInfo = buildPayloadInfo(vnfName, aicIdentity, vnfHostIpAddress, vmIdList,
                     vserverIdList, identityUrl, vfModuleId);
-            Optional<String> payload = null;
+            Optional<String> payload = Optional.empty();
             RequestParameters requestParameters = gBBInput.getRequestContext().getRequestParameters();
             if (requestParameters != null) {
                 String pay = requestParameters.getPayload();
@@ -169,7 +176,9 @@
             mapRollbackVariables(execution, action, appcCode);
         } catch (Exception e) {
             logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION.toString(),
-                    "Caught exception in runAppcCommand", "BPMN", ErrorCode.UnknownError.getValue(), "APPC Error", e);
+                    "Caught exception in runAppcCommand", "BPMN", ErrorCode.UnknownError.getValue(),
+                    "Error on request to APPC", e);
+            appcCode = GENERIC_APPC_ERROR_CODE;
             appcMessage = e.getMessage();
         }
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnf.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnf.java
index bc71fc6..9413e8e 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnf.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnf.java
@@ -3,13 +3,14 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2019 TechMahindra.
+ * Copyright (C) 2019 Nokia.
  * ================================================================================
  * 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.
@@ -20,8 +21,10 @@
 
 package org.onap.so.bpmn.infrastructure.flowspecific.tasks;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.UUID;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
@@ -33,15 +36,15 @@
 import org.onap.so.client.cds.beans.ConfigAssignPropertiesForVnf;
 import org.onap.so.client.cds.beans.ConfigAssignRequestVnf;
 import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.serviceinstancebeans.Service;
+import org.onap.so.serviceinstancebeans.Vnfs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * 
  * Get vnf related data and config assign
- *
  */
 @Component
 public class ConfigAssignVnf {
@@ -51,48 +54,42 @@
     private static final String ACTION_NAME = "config-assign";
     private static final String MODE = "sync";
 
+    private final ExtractPojosForBB extractPojosForBB;
+    private final ExceptionBuilder exceptionBuilder;
+
     @Autowired
-    private ExceptionBuilder exceptionUtil;
-    @Autowired
-    private ExtractPojosForBB extractPojosForBB;
+    public ConfigAssignVnf(ExtractPojosForBB extractPojosForBB, ExceptionBuilder exceptionBuilder) {
+        this.extractPojosForBB = extractPojosForBB;
+        this.exceptionBuilder = exceptionBuilder;
+    }
 
     /**
      * Getting the vnf data, blueprint name, blueprint version etc and setting them in execution object and calling the
      * subprocess.
-     * 
-     * @param execution
      */
     public void preProcessAbstractCDSProcessing(BuildingBlockExecution execution) {
         logger.info("Start preProcessAbstractCDSProcessing ");
         try {
-            GenericVnf vnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID);
+            GenericVnf genericVnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID);
             ServiceInstance serviceInstance =
                     extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);
-
-            List<Map<String, Object>> userParams =
-                    execution.getGeneralBuildingBlock().getRequestContext().getRequestParameters().getUserParams();
-
             ConfigAssignPropertiesForVnf configAssignPropertiesForVnf = new ConfigAssignPropertiesForVnf();
             configAssignPropertiesForVnf.setServiceInstanceId(serviceInstance.getServiceInstanceId());
             configAssignPropertiesForVnf
                     .setServiceModelUuid(serviceInstance.getModelInfoServiceInstance().getModelUuid());
             configAssignPropertiesForVnf
-                    .setVnfCustomizationUuid(vnf.getModelInfoGenericVnf().getModelCustomizationUuid());
-            configAssignPropertiesForVnf.setVnfId(vnf.getVnfId());
-            configAssignPropertiesForVnf.setVnfName(vnf.getVnfName());
-
-            for (Map<String, Object> params : userParams) {
-                for (Map.Entry<String, Object> entry : params.entrySet()) {
-                    configAssignPropertiesForVnf.setUserParam(entry.getKey(), entry.getValue());
-                }
-            }
-
+                    .setVnfCustomizationUuid(genericVnf.getModelInfoGenericVnf().getModelCustomizationUuid());
+            configAssignPropertiesForVnf.setVnfId(genericVnf.getVnfId());
+            configAssignPropertiesForVnf.setVnfName(genericVnf.getVnfName());
+            setUserParamsInConfigAssignPropertiesForVnf(configAssignPropertiesForVnf,
+                    execution.getGeneralBuildingBlock().getRequestContext().getRequestParameters().getUserParams(),
+                    genericVnf);
             ConfigAssignRequestVnf configAssignRequestVnf = new ConfigAssignRequestVnf();
-            configAssignRequestVnf.setResolutionKey(vnf.getVnfName());
+            configAssignRequestVnf.setResolutionKey(genericVnf.getVnfName());
             configAssignRequestVnf.setConfigAssignPropertiesForVnf(configAssignPropertiesForVnf);
 
-            String blueprintName = vnf.getModelInfoGenericVnf().getBlueprintName();
-            String blueprintVersion = vnf.getModelInfoGenericVnf().getBlueprintVersion();
+            String blueprintName = genericVnf.getModelInfoGenericVnf().getBlueprintName();
+            String blueprintVersion = genericVnf.getModelInfoGenericVnf().getBlueprintVersion();
             logger.debug(" BlueprintName : " + blueprintName + " BlueprintVersion : " + blueprintVersion);
 
             AbstractCDSPropertiesBean abstractCDSPropertiesBean = new AbstractCDSPropertiesBean();
@@ -109,9 +106,48 @@
             abstractCDSPropertiesBean.setActionName(ACTION_NAME);
             abstractCDSPropertiesBean.setMode(MODE);
             execution.setVariable("executionObject", abstractCDSPropertiesBean);
-
         } catch (Exception ex) {
-            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
+            logger.error("An exception occurred when creating ConfigAssignPropertiesForVnf for CDS request", ex);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, ex);
+        }
+    }
+
+    private void setUserParamsInConfigAssignPropertiesForVnf(ConfigAssignPropertiesForVnf configAssignProperties,
+            List<Map<String, Object>> userParamsFromRequest, GenericVnf vnf) throws Exception {
+        Service service = getServiceFromRequestUserParams(userParamsFromRequest);
+        List<Map<String, String>> instanceParamsList =
+                getInstanceParamForVnf(service, vnf.getModelInfoGenericVnf().getModelCustomizationUuid());
+        instanceParamsList
+                .forEach(instanceParamsMap -> instanceParamsMap.forEach(configAssignProperties::setUserParam));
+    }
+
+    private Service getServiceFromRequestUserParams(List<Map<String, Object>> userParams) throws Exception {
+        Map<String, Object> serviceMap = userParams.stream().filter(key -> key.containsKey("service")).findFirst()
+                .orElseThrow(() -> new Exception("Can not find service in userParams section in generalBuildingBlock"));
+        return convertServiceFromJsonToServiceObject((String) serviceMap.get("service"));
+    }
+
+    private Service convertServiceFromJsonToServiceObject(String serviceFromJson) throws Exception {
+        try {
+            return new ObjectMapper().readValue(serviceFromJson, Service.class);
+        } catch (Exception e) {
+            logger.error(String.format(
+                    "An exception occurred while converting json object to Service object. The json is: %s",
+                    serviceFromJson), e);
+            throw e;
+        }
+    }
+
+    private List<Map<String, String>> getInstanceParamForVnf(Service service, String genericVnfModelCustomizationUuid)
+            throws Exception {
+        Optional<Vnfs> foundedVnf = service.getResources().getVnfs().stream()
+                .filter(vnfs -> vnfs.getModelInfo().getModelCustomizationId().equals(genericVnfModelCustomizationUuid))
+                .findFirst();
+        if (foundedVnf.isPresent()) {
+            return foundedVnf.get().getInstanceParams();
+        } else {
+            throw new Exception(String.format("Can not find vnf for genericVnfModelCustomizationUuid: %s",
+                    genericVnfModelCustomizationUuid));
         }
     }
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasks.java
index 080d6d3..192cb3f 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasks.java
@@ -32,7 +32,7 @@
 import org.onap.so.client.exception.BadResponseException;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.orchestration.SDNCVnfResources;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.client.orchestration.SDNCVfModuleResources;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -80,13 +80,13 @@
         } catch (BadResponseException ex) {
             logger.error("Exception occurred", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 
@@ -121,9 +121,9 @@
         } catch (BadResponseException ex) {
             logger.error("Exception occurred for BadResponse ", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
@@ -158,18 +158,18 @@
             // module id, then we should throw
             // the error as normal
             if (!ResourceKey.VF_MODULE_ID.equals(bbException.getResourceKey())) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, bbException, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, bbException, ONAPComponents.SO);
             }
         } catch (BadResponseException ex) {
             logger.error("Error occurred for BadResponseException in SDNCQueryTasks queryVfModuleForVolumeGroup ", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasks.java
index 03714db..3383fde 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasks.java
@@ -37,7 +37,7 @@
 import org.onap.so.client.exception.MapperException;
 import org.onap.so.client.sdnc.SDNCClient;
 import org.onap.so.client.sdnc.beans.SDNCRequest;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,19 +80,19 @@
         } catch (PathNotFoundException e) {
             logger.error("Error Parsing SDNC Response. Could not find read final ack indicator from JSON.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                    "Recieved invalid response from SDNC, unable to read message content.", TargetEntity.SO);
+                    "Recieved invalid response from SDNC, unable to read message content.", ONAPComponents.SO);
         } catch (MapperException e) {
             logger.error("Failed to map SDNC object to JSON prior to POST.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                    "Failed to map SDNC object to JSON prior to POST.", TargetEntity.SO);
+                    "Failed to map SDNC object to JSON prior to POST.", ONAPComponents.SO);
         } catch (BadResponseException e) {
             logger.error("Did not receive a successful response from SDNC.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getLocalizedMessage(),
-                    TargetEntity.SDNC);
+                    ONAPComponents.SDNC);
         } catch (HttpClientErrorException e) {
             logger.error("HttpClientErrorException: 404 Not Found, Failed to contact SDNC", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, "SDNC cannot be contacted.",
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
@@ -123,17 +123,17 @@
             }
         } catch (SDNCErrorResponseException e) {
             logger.error("SDNC error response - " + e.getMessage());
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.SDNC);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), ONAPComponents.SDNC);
         } catch (Exception e) {
             logger.error("Error processing SDNC callback", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, "Error processing SDNC callback",
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
     public void handleTimeOutException(DelegateExecution execution) {
         exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                "Error timed out waiting on SDNC Async-Response", TargetEntity.SO);
+                "Error timed out waiting on SDNC Async-Response", ONAPComponents.SO);
     }
 
     protected boolean convertIndicatorToBoolean(String finalMessageIndicator) {
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java
index 8822bc3..64f0072 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java
@@ -153,16 +153,6 @@
                     .getOrchestrationStatusStateTransitionDirective(buildingBlockDetail.getResourceType(),
                             orchestrationStatus, buildingBlockDetail.getTargetAction());
 
-            if (aLaCarte && ResourceType.VF_MODULE.equals(buildingBlockDetail.getResourceType())
-                    && OrchestrationAction.CREATE.equals(buildingBlockDetail.getTargetAction())
-                    && OrchestrationStatus.PENDING_ACTIVATION.equals(orchestrationStatus)) {
-                org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf genericVnf =
-                        extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID);
-                orchestrationStatusStateTransitionDirective = processPossibleSecondStageofVfModuleCreate(execution,
-                        previousOrchestrationStatusValidationResult, genericVnf,
-                        orchestrationStatusStateTransitionDirective);
-            }
-
             if (orchestrationStatusStateTransitionDirective
                     .getFlowDirective() == OrchestrationStatusValidationDirective.FAIL) {
                 throw new OrchestrationStatusValidationException(
@@ -187,23 +177,4 @@
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e);
         }
     }
-
-    private OrchestrationStatusStateTransitionDirective processPossibleSecondStageofVfModuleCreate(
-            BuildingBlockExecution execution,
-            OrchestrationStatusValidationDirective previousOrchestrationStatusValidationResult,
-            org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf genericVnf,
-            OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective) {
-        if (previousOrchestrationStatusValidationResult != null && previousOrchestrationStatusValidationResult
-                .equals(OrchestrationStatusValidationDirective.SILENT_SUCCESS)) {
-            String multiStageDesign = MULTI_STAGE_DESIGN_OFF;
-            if (genericVnf.getModelInfoGenericVnf() != null) {
-                multiStageDesign = genericVnf.getModelInfoGenericVnf().getMultiStageDesign();
-            }
-            if (multiStageDesign != null && multiStageDesign.equalsIgnoreCase(MULTI_STAGE_DESIGN_ON)) {
-                orchestrationStatusStateTransitionDirective
-                        .setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
-            }
-        }
-        return orchestrationStatusStateTransitionDirective;
-    }
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfAdapterClientImpl.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfAdapterClientImpl.java
index e24e862..9af2128 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfAdapterClientImpl.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfAdapterClientImpl.java
@@ -7,9 +7,9 @@
  * 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.
@@ -33,11 +33,16 @@
 import org.onap.so.adapters.vnfrest.UpdateVfModuleRequest;
 import org.onap.so.adapters.vnfrest.UpdateVfModuleResponse;
 import org.onap.so.client.adapter.rest.AdapterRestClient;
+import org.onap.so.client.adapter.vnf.mapper.VnfAdapterVfModuleObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
 public class VnfAdapterClientImpl implements VnfAdapterClient {
 
+    private static final Logger logger = LoggerFactory.getLogger(VnfAdapterClientImpl.class);
+
     private static final String VF_MODULES = "/vf-modules/";
 
     private VnfAdapterRestProperties props;
@@ -57,6 +62,7 @@
             return new AdapterRestClient(this.props, this.getUri("/" + aaiVnfId + "/vf-modules").build()).post(req,
                     CreateVfModuleResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in createVfModule", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -69,6 +75,7 @@
                     this.getUri("/" + aaiVnfId + VF_MODULES + aaiVfModuleId + "/rollback").build()).delete(req,
                             RollbackVfModuleResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in rollbackVfModule", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -80,6 +87,7 @@
             return new AdapterRestClient(this.props, this.getUri("/" + aaiVnfId + VF_MODULES + aaiVfModuleId).build())
                     .delete(req, DeleteVfModuleResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in deleteVfModule", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -91,6 +99,7 @@
             return new AdapterRestClient(this.props, this.getUri("/" + aaiVnfId + VF_MODULES + aaiVfModuleId).build())
                     .put(req, UpdateVfModuleResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in updateVfModule", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -122,6 +131,7 @@
             return new AdapterRestClient(this.props, builder.build(), MediaType.APPLICATION_JSON,
                     MediaType.APPLICATION_JSON).get(QueryVfModuleResponse.class).get();
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in queryVfModule", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfVolumeAdapterClientImpl.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfVolumeAdapterClientImpl.java
index 2af4d5f..c5e8bf7 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfVolumeAdapterClientImpl.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/VnfVolumeAdapterClientImpl.java
@@ -7,9 +7,9 @@
  * 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.
@@ -34,11 +34,15 @@
 import org.onap.so.adapters.vnfrest.UpdateVolumeGroupResponse;
 import org.onap.so.client.RestClient;
 import org.onap.so.client.adapter.rest.AdapterRestClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
 public class VnfVolumeAdapterClientImpl implements VnfVolumeAdapterClient {
 
+    private static final Logger logger = LoggerFactory.getLogger(VnfVolumeAdapterClientImpl.class);
+
     private final VnfVolumeAdapterRestProperties props;
 
     public VnfVolumeAdapterClientImpl() {
@@ -50,6 +54,7 @@
         try {
             return this.getAdapterRestClient("").post(req, CreateVolumeGroupResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in createVNFVolumes", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -60,6 +65,7 @@
         try {
             return this.getAdapterRestClient("/" + aaiVolumeGroupId).delete(req, DeleteVolumeGroupResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in deleteVNFVolumes", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -71,6 +77,7 @@
             return this.getAdapterRestClient("/" + aaiVolumeGroupId + "/rollback").delete(req,
                     RollbackVolumeGroupResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in rollbackVNFVolumes", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -81,6 +88,7 @@
         try {
             return this.getAdapterRestClient("/" + aaiVolumeGroupId).put(req, UpdateVolumeGroupResponse.class);
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in updateVNFVolumes", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
@@ -94,6 +102,7 @@
                     requestId, serviceInstanceId);
             return this.getAdapterRestClient(path).get(QueryVolumeGroupResponse.class).get();
         } catch (InternalServerErrorException e) {
+            logger.error("InternalServerErrorException in queryVNFVolumes", e);
             throw new VnfAdapterClientException(e.getMessage());
         }
     }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/AttributeNameValue.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/AttributeNameValue.java
index 6daed56..6278d48 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/AttributeNameValue.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/AttributeNameValue.java
@@ -23,10 +23,10 @@
 import java.io.Serializable;
 
 public class AttributeNameValue implements Serializable {
-    private final static long serialVersionUID = -5215028275587848311L;
+    private static final long serialVersionUID = -5215028275587848311L;
 
     private String attributeName;
-    private Object attributeValue;
+    private transient Object attributeValue;
 
     public AttributeNameValue(String attributeName, Object attributeValue) {
         this.attributeName = attributeName;
@@ -51,7 +51,7 @@
 
     @Override
     public String toString() {
-        return new StringBuilder().append("{\"attribute_name\": \"").append(attributeName.toString())
+        return new StringBuilder().append("{\"attribute_name\": \"").append(attributeName)
                 .append("\", \"attribute_value\": \"").append(attributeValue.toString()).append("\"}").toString();
     }
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java
index 5c69987..8c13c9b 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java
@@ -33,7 +33,6 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
 import javax.annotation.PostConstruct;
 import org.apache.commons.lang3.StringUtils;
@@ -76,10 +75,10 @@
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
+import org.onap.so.client.adapter.vnf.mapper.exceptions.MissingValueTagException;
 import org.onap.so.entity.MsoRequest;
 import org.onap.so.jsonpath.JsonPathUtil;
 import org.onap.so.openstack.utils.MsoMulticloudUtils;
-import org.onap.so.client.adapter.vnf.mapper.exceptions.MissingValueTagException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -481,7 +480,7 @@
                     }
                 }
                 sbInterfaceRoutePrefixes.append("]");
-                if (interfaceRoutePrefixesList.size() > 0) {
+                if (!interfaceRoutePrefixesList.isEmpty()) {
                     paramsMap.put(key + UNDERSCORE + networkKey + "_route_prefixes",
                             sbInterfaceRoutePrefixes.toString());
                 }
@@ -508,7 +507,7 @@
                             sriovFilterBuf.append(heatVlanFilterValue);
                         }
                     }
-                    if (heatVlanFiltersList.size() > 0) {
+                    if (!heatVlanFiltersList.isEmpty()) {
                         paramsMap.put(networkKey + "_ATT_VF_VLAN_FILTER", sriovFilterBuf.toString());
                     }
                 }
@@ -540,7 +539,7 @@
                                 String ipVersion = ipAddress.getIpVersion();
                                 for (int b = 0; b < ipsList.size(); b++) {
                                     String ipAddressValue = ipsList.get(b);
-                                    if (ipVersion.equals("ipv4")) {
+                                    if ("ipv4".equals(ipVersion)) {
                                         if (b != ipsList.size() - 1) {
                                             sbIpv4Ips.append(ipAddressValue + ",");
                                         } else {
@@ -548,7 +547,7 @@
                                         }
                                         paramsMap.put(key + UNDERSCORE + networkKey + IP + UNDERSCORE + b,
                                                 ipAddressValue);
-                                    } else if (ipVersion.equals("ipv6")) {
+                                    } else if ("ipv6".equals(ipVersion)) {
                                         if (b != ipsList.size() - 1) {
                                             sbIpv6Ips.append(ipAddressValue + ",");
                                         } else {
@@ -897,6 +896,7 @@
         try {
             json = mapper.writeValueAsString(obj);
         } catch (JsonProcessingException e) {
+            logger.error("JsonProcessingException in convertToString", e);
             json = "{}";
         }
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIVnfResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIVnfResources.java
index 63bde79..7ad74a6 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIVnfResources.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIVnfResources.java
@@ -33,6 +33,7 @@
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
 import org.onap.so.client.aai.AAIObjectPlurals;
 import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIRestClientImpl;
 import org.onap.so.client.aai.AAIValidatorImpl;
 import org.onap.so.client.aai.entities.AAIResultWrapper;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
@@ -151,6 +152,8 @@
                 .get(org.onap.aai.domain.yang.GenericVnf.class,
                         AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId))
                 .orElse(new org.onap.aai.domain.yang.GenericVnf());
+        AAIRestClientImpl client = new AAIRestClientImpl();
+        aaiValidatorImpl.setClient(client);
         return aaiValidatorImpl.isPhysicalServerLocked(vnf.getVnfId());
 
     }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1Test.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1Test.java
index 8aea2d2..3994208 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1Test.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterRestV1Test.java
@@ -39,7 +39,8 @@
 import org.onap.so.client.exception.BadResponseException;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.exception.MapperException;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
+import org.onap.logging.filter.base.ONAPComponents;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
@@ -113,7 +114,7 @@
         delegateExecution.setVariable("NetworkAResponse_MESSAGE", updateNetworkResponse.toXmlString());
 
         doThrow(new BpmnError("MSOWorkflowException")).when(exceptionBuilder).buildAndThrowWorkflowException(
-                any(DelegateExecution.class), anyInt(), any(String.class), any(TargetEntity.class));
+                any(DelegateExecution.class), anyInt(), any(String.class), any(ONAPComponents.class));
 
         try {
             networkAdapterRestV1Tasks.processCallback(delegateExecution);
@@ -122,6 +123,6 @@
         }
         assertNull(delegateExecution.getVariable("updateNetworkResponse"));
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(any(DelegateExecution.class), eq(7000),
-                eq("test error message"), eq(TargetEntity.OPENSTACK));
+                eq("test error message"), eq(Components.OPENSTACK));
     }
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnfTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnfTest.java
index 7d96a18..468bc7d 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnfTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigAssignVnfTest.java
@@ -3,13 +3,14 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2019 TechMahindra.
+ * Copyright (C) 2019 Nokia.
  * ================================================================================
  * 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.
@@ -20,57 +21,139 @@
 
 package org.onap.so.bpmn.infrastructure.flowspecific.tasks;
 
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doThrow;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import java.util.UUID;
-import org.camunda.bpm.engine.delegate.BpmnError;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.ArgumentMatchers;
-import org.mockito.InjectMocks;
-import org.onap.so.bpmn.BaseTaskTest;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.DelegateExecutionImpl;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
-import org.onap.so.client.exception.BBObjectNotFoundException;
+import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
+import org.onap.so.client.cds.beans.AbstractCDSPropertiesBean;
+import org.onap.so.client.exception.ExceptionBuilder;
 
-public class ConfigAssignVnfTest extends BaseTaskTest {
-    @InjectMocks
-    private ConfigAssignVnf configAssignVnf = new ConfigAssignVnf();
+public class ConfigAssignVnfTest {
 
-    private GenericVnf genericVnf;
-    private ServiceInstance serviceInstance;
-    private RequestContext requestContext;
-    private String msoRequestId;
+    private static final String GENERIC_VNF_ID = "vnfId_configVnfTest";
+    private static final String GENERIC_VNF_NAME = "vnfName_configVnfTest";
+    private static final String VNF_MODEL_CUSTOMIZATION_UUID = "0c1ac643-377e-475b-be50-6be65f91a7ad";
+    private static final String SERVICE_INSTANCE_ID = "serviceInst_configTest";
+    private static final String SERVICE_MODEL_UUID = "5af91c26-8418-4d3f-944c-965842deda94";
+    private static final String TARGET_VNF_MODEL_CUSTOMIZATION_UUID = "0c1ac643-377e-475b-be50-6be65f91a7ad";
+    private static final String GENERAL_BLOCK_EXECUTION_MAP_KEY = "gBBInput";
+    private static final int THE_NUMBER_OF_EXPECTED_CONFIG_PROPERTIES = 8;
+
+    private static final String USER_PARAMS_FROM_REQUEST = "{\"resources\":{\"vnfs\":["
+            + "{\"modelInfo\":{\"modelCustomizationId\":\"" + VNF_MODEL_CUSTOMIZATION_UUID + "\"},"
+            + "\"instanceParams\":[{\"paramName1\":\"paramValue1\",\"paramName2\":\"paramValue2\"},{\"paramName3\":\"paramValue3\"}]},"
+            + "{\"modelInfo\":{\"modelCustomizationId\":\"2d1ac656-377e-467b-be50-6ce65f66a7ca\"},"
+            + "\"instanceParams\":[{\"parName4\":\"parValue4\",\"parName5\":\"parValue5\"}]}]}}\n";
+
+
+    private ConfigAssignVnf testedObject;
+
+    private BuildingBlockExecution buildingBlockExecution;
+    private ExtractPojosForBB extractPojosForBB;
 
     @Before
-    public void before() throws BBObjectNotFoundException {
-        genericVnf = setGenericVnf();
-        serviceInstance = setServiceInstance();
-        msoRequestId = UUID.randomUUID().toString();
-        requestContext = setRequestContext();
-        requestContext.setMsoRequestId(msoRequestId);
-        gBBInput.setRequestContext(requestContext);
-
-        doThrow(new BpmnError("BPMN Error")).when(exceptionUtil)
-                .buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(7000), any(Exception.class));
-        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.GENERIC_VNF_ID)))
-                .thenReturn(genericVnf);
-        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
-                .thenReturn(serviceInstance);
+    public void setup() {
+        buildingBlockExecution = createBuildingBlockExecution();
+        extractPojosForBB = mock(ExtractPojosForBB.class);
+        testedObject = new ConfigAssignVnf(extractPojosForBB, new ExceptionBuilder());
     }
 
     @Test
-    public void preProcessAbstractCDSProcessingTest() throws Exception {
-
-        configAssignVnf.preProcessAbstractCDSProcessing(execution);
-
-        assertTrue(true);
+    public void prepareAbstractCDSPropertiesBean_success() throws Exception {
+        // given
+        when(extractPojosForBB.extractByKey(buildingBlockExecution, ResourceKey.GENERIC_VNF_ID))
+                .thenReturn(createGenericVnf());
+        when(extractPojosForBB.extractByKey(buildingBlockExecution, ResourceKey.SERVICE_INSTANCE_ID))
+                .thenReturn(createServiceInstance());
+        // when
+        testedObject.preProcessAbstractCDSProcessing(buildingBlockExecution);
+        // then
+        verifyConfigAssignPropertiesJsonContent();
     }
 
+    private void verifyConfigAssignPropertiesJsonContent() throws Exception {
+        AbstractCDSPropertiesBean abstractCDSPropertiesBean = buildingBlockExecution.getVariable("executionObject");
+        String payload = abstractCDSPropertiesBean.getRequestObject();
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode payloadJson = mapper.readTree(payload);
+        JsonNode configAssignPropertiesNode = payloadJson.findValue("config-assign-properties");
+        assertThat(configAssignPropertiesNode.size()).isEqualTo(THE_NUMBER_OF_EXPECTED_CONFIG_PROPERTIES);
+        assertThat(configAssignPropertiesNode.get("service-instance-id").asText()).isEqualTo(SERVICE_INSTANCE_ID);
+        assertThat(configAssignPropertiesNode.get("vnf-id").asText()).isEqualTo(GENERIC_VNF_ID);
+        assertThat(configAssignPropertiesNode.get("vnf-name").asText()).isEqualTo(GENERIC_VNF_NAME);
+        assertThat(configAssignPropertiesNode.get("service-model-uuid").asText()).isEqualTo(SERVICE_MODEL_UUID);
+        assertThat(configAssignPropertiesNode.get("vnf-customization-uuid").asText())
+                .isEqualTo(VNF_MODEL_CUSTOMIZATION_UUID);
+        assertThat(configAssignPropertiesNode.has("paramName1")).isTrue();
+        assertThat(configAssignPropertiesNode.get("paramName1").asText()).isEqualTo("paramValue1");
+        assertThat(configAssignPropertiesNode.has("paramName2")).isTrue();
+        assertThat(configAssignPropertiesNode.get("paramName2").asText()).isEqualTo("paramValue2");
+        assertThat(configAssignPropertiesNode.has("paramName3")).isTrue();
+        assertThat(configAssignPropertiesNode.get("paramName3").asText()).isEqualTo("paramValue3");
+    }
+
+    private BuildingBlockExecution createBuildingBlockExecution() {
+        DelegateExecution execution = new DelegateExecutionFake();
+        execution.setVariable(GENERAL_BLOCK_EXECUTION_MAP_KEY, createGeneralBuildingBlock());
+        return new DelegateExecutionImpl(execution);
+    }
+
+    private ServiceInstance createServiceInstance() {
+        ServiceInstance serviceInstance = new ServiceInstance();
+        serviceInstance.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
+        modelInfoServiceInstance.setModelUuid(SERVICE_MODEL_UUID);
+        serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
+        return serviceInstance;
+    }
+
+    private GenericVnf createGenericVnf() {
+        GenericVnf genericVnf = new GenericVnf();
+        genericVnf.setVnfId(GENERIC_VNF_ID);
+        genericVnf.setVnfName(GENERIC_VNF_NAME);
+        ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
+        modelInfoGenericVnf.setModelCustomizationUuid(TARGET_VNF_MODEL_CUSTOMIZATION_UUID);
+        modelInfoGenericVnf.setBlueprintName("blueprintTest");
+        modelInfoGenericVnf.setBlueprintVersion("blueprintVerTest");
+        genericVnf.setModelInfoGenericVnf(modelInfoGenericVnf);
+        return genericVnf;
+    }
+
+    private GeneralBuildingBlock createGeneralBuildingBlock() {
+        GeneralBuildingBlock generalBuildingBlock = new GeneralBuildingBlock();
+        RequestContext requestContext = new RequestContext();
+        RequestParameters requestParameters = new RequestParameters();
+        requestParameters.setUserParams(createRequestUserParams());
+        requestContext.setRequestParameters(requestParameters);
+        generalBuildingBlock.setRequestContext(requestContext);
+        return generalBuildingBlock;
+    }
+
+    private List<Map<String, Object>> createRequestUserParams() {
+        List<Map<String, Object>> userParams = new ArrayList<>();
+        Map<String, Object> userParamMap = new HashMap<>();
+        userParamMap.put("service", USER_PARAMS_FROM_REQUEST);
+        userParams.add(userParamMap);
+        return userParams;
+    }
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasksTest.java
index 0ba9237..e158925 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCQueryTasksTest.java
@@ -44,8 +44,8 @@
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import org.onap.so.client.exception.BBObjectNotFoundException;
 import org.onap.so.client.exception.BadResponseException;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class SDNCQueryTasksTest extends BaseTaskTest {
     @InjectMocks
@@ -65,7 +65,7 @@
         vfModule = setVfModule();
 
         doThrow(new BpmnError("BPMN Error")).when(exceptionUtil).buildAndThrowWorkflowException(
-                any(BuildingBlockExecution.class), eq(7000), any(Exception.class), any(TargetEntities.class));
+                any(BuildingBlockExecution.class), eq(7000), any(Exception.class), any(ONAPComponentsList.class));
         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
                 .thenReturn(serviceInstance);
 
@@ -98,7 +98,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModule(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
@@ -109,7 +109,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModule(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
@@ -133,7 +133,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVnf(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
@@ -144,7 +144,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVnf(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
@@ -169,7 +169,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModuleForVolumeGroup(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
@@ -180,7 +180,7 @@
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModuleForVolumeGroup(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasksTest.java
index 0fc33fe..e435909 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/sdnc/tasks/SDNCRequestTasksTest.java
@@ -49,7 +49,7 @@
 import org.onap.so.client.sdnc.SDNCClient;
 import org.onap.so.client.sdnc.beans.SDNCRequest;
 import org.onap.so.client.sdnc.endpoint.SDNCTopology;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 import com.fasterxml.jackson.core.JsonParseException;
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidatorTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidatorTest.java
index b371e3a..ffe4887 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidatorTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidatorTest.java
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.infrastructure.workflow.tasks;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
@@ -50,7 +51,6 @@
 import org.onap.so.db.catalog.beans.ResourceType;
 import org.springframework.beans.factory.annotation.Autowired;
 
-@Ignore
 public class OrchestrationStatusValidatorTest extends BaseTaskTest {
     @InjectMocks
     protected OrchestrationStatusValidator orchestrationStatusValidator = new OrchestrationStatusValidator();
@@ -72,6 +72,13 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
+        serviceInstance.setServiceInstanceId("serviceInstanceId");
+        serviceInstance.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
+                .thenReturn(serviceInstance);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
@@ -115,6 +122,13 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration configuration =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration();
+        configuration.setConfigurationId("configurationId");
+        configuration.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.CONFIGURATION_ID)))
+                .thenReturn(configuration);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective
@@ -134,6 +148,7 @@
                 execution.getVariable("orchestrationStatusValidationResult"));
     }
 
+    @Ignore
     @Test
     public void test_validateOrchestrationStatus_buildingBlockDetailNotFound() throws Exception {
         expectedException.expect(BpmnError.class);
@@ -147,6 +162,7 @@
         orchestrationStatusValidator.validateOrchestrationStatus(execution);
     }
 
+    @Ignore
     @Test
     public void test_validateOrchestrationStatus_orchestrationValidationFail() throws Exception {
         expectedException.expect(BpmnError.class);
@@ -178,6 +194,7 @@
         orchestrationStatusValidator.validateOrchestrationStatus(execution);
     }
 
+    @Ignore
     @Test
     public void test_validateOrchestrationStatus_orchestrationValidationNotFound() throws Exception {
         expectedException.expect(BpmnError.class);
@@ -228,8 +245,7 @@
 
         orchestrationStatusValidator.validateOrchestrationStatus(execution);
 
-        assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
-                execution.getVariable("orchestrationStatusValidationResult"));
+        assertNull(execution.getVariable("orchestrationStatusValidationResult"));
     }
 
     @Test
@@ -247,6 +263,12 @@
         setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
         setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
         buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
         buildingBlockDetail.setId(1);
@@ -257,7 +279,7 @@
 
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
-        orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
+        orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
         orchestrationStatusStateTransitionDirective.setId(1);
         orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
         orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
@@ -288,6 +310,12 @@
         setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
         setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
         buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
         buildingBlockDetail.setId(1);
@@ -338,6 +366,12 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective
@@ -380,6 +414,12 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective
@@ -422,6 +462,12 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective
@@ -464,6 +510,12 @@
 
         doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
 
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
         OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
                 new OrchestrationStatusStateTransitionDirective();
         orchestrationStatusStateTransitionDirective
@@ -482,4 +534,39 @@
         assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
                 execution.getVariable("orchestrationStatusValidationResult"));
     }
+
+    @Test
+    public void continueValidationActivatedTest() throws Exception {
+        String flowToBeCalled = "DeactivateVnfBB";
+        BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
+        buildingBlockDetail.setBuildingBlockName(flowToBeCalled);
+        buildingBlockDetail.setId(1);
+        buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
+        buildingBlockDetail.setTargetAction(OrchestrationAction.DEACTIVATE);
+        when(catalogDbClient.getBuildingBlockDetail(flowToBeCalled)).thenReturn(buildingBlockDetail);
+
+        org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
+                new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        vfModule.setOrchestrationStatus(OrchestrationStatus.ACTIVATED);
+        when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
+
+        OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
+                new OrchestrationStatusStateTransitionDirective();
+        orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
+        orchestrationStatusStateTransitionDirective.setId(1);
+        orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.ACTIVATED);
+        orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
+        orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.DEACTIVATE);
+        doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
+                .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.ACTIVATED,
+                        OrchestrationAction.DEACTIVATE);
+
+        execution.setVariable("aLaCarte", true);
+        execution.setVariable("flowToBeCalled", flowToBeCalled);
+        orchestrationStatusValidator.validateOrchestrationStatus(execution);
+
+        assertEquals(OrchestrationStatusValidationDirective.CONTINUE,
+                execution.getVariable("orchestrationStatusValidationResult"));
+    }
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIVnfResourcesTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIVnfResourcesTest.java
index 3680eaa..425b595 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIVnfResourcesTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIVnfResourcesTest.java
@@ -53,6 +53,7 @@
 import org.onap.so.client.aai.AAIObjectPlurals;
 import org.onap.so.client.aai.AAIObjectType;
 import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.AAIRestClientImpl;
 import org.onap.so.client.aai.AAIValidatorImpl;
 import org.onap.so.client.aai.entities.AAIResultWrapper;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
@@ -234,6 +235,7 @@
         boolean isVnfPserversLockedFlag = aaiVnfResources.checkVnfPserversLockedFlag("vnfId");
         verify(MOCK_aaiResourcesClient, times(1)).get(eq(org.onap.aai.domain.yang.GenericVnf.class),
                 isA(AAIResourceUri.class));
+        verify(MOCK_aaiValidatorImpl, times(1)).setClient(isA(AAIRestClientImpl.class));
         verify(MOCK_aaiValidatorImpl, times(1)).isPhysicalServerLocked(isA(String.class));
         assertTrue(isVnfPserversLockedFlag);
     }
diff --git a/common/pom.xml b/common/pom.xml
index 2553038..9e43826 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -118,11 +118,6 @@
       <artifactId>spring-security-web</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.onap.logging-analytics</groupId>
-      <artifactId>logging-slf4j</artifactId>
-      <version>1.2.2</version>
-    </dependency>
-    <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
     </dependency>
@@ -191,7 +186,11 @@
       <artifactId>javatuples</artifactId>
       <version>1.2</version>
     </dependency>
-
+        <dependency>
+      <groupId>org.camunda.bpm</groupId>
+      <artifactId>camunda-external-task-client</artifactId>
+      <version>1.1.1</version>
+    </dependency>
   </dependencies>
   <dependencyManagement>
     <dependencies>
diff --git a/common/src/main/java/org/onap/so/client/BaseClient.java b/common/src/main/java/org/onap/so/client/BaseClient.java
index d939a33..d1523a1 100644
--- a/common/src/main/java/org/onap/so/client/BaseClient.java
+++ b/common/src/main/java/org/onap/so/client/BaseClient.java
@@ -22,7 +22,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -80,7 +80,7 @@
         RestTemplate restTemplate = new RestTemplate();
         restTemplate
                 .setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory()));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         ResponseEntity<O> responseEntity =
                 restTemplate.exchange(getTargetUrl(), method, requestEntity, typeRef, uriVariables);
         return responseEntity.getBody();
diff --git a/common/src/main/java/org/onap/so/client/HttpClient.java b/common/src/main/java/org/onap/so/client/HttpClient.java
index 715ba32..63a4b1c 100644
--- a/common/src/main/java/org/onap/so/client/HttpClient.java
+++ b/common/src/main/java/org/onap/so/client/HttpClient.java
@@ -24,22 +24,22 @@
 import java.util.Map;
 import java.util.Optional;
 import static org.apache.commons.lang3.StringUtils.*;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class HttpClient extends RestClient {
 
     protected final Logger log = LoggerFactory.getLogger(HttpClient.class);
-    private TargetEntity targetEntity;
+    private ONAPComponents targetEntity;
 
-    HttpClient(URL host, String contentType, TargetEntity targetEntity) {
+    HttpClient(URL host, String contentType, ONAPComponents targetEntity) {
         super(host, contentType);
         this.targetEntity = targetEntity;
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
+    public ONAPComponents getTargetEntity() {
         return targetEntity;
     }
 
diff --git a/common/src/main/java/org/onap/so/client/HttpClientFactory.java b/common/src/main/java/org/onap/so/client/HttpClientFactory.java
index d02c18f..3a8a9ee 100644
--- a/common/src/main/java/org/onap/so/client/HttpClientFactory.java
+++ b/common/src/main/java/org/onap/so/client/HttpClientFactory.java
@@ -21,19 +21,19 @@
 
 import java.net.URL;
 import javax.ws.rs.core.MediaType;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class HttpClientFactory {
 
-    public HttpClient newJsonClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newJsonClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.APPLICATION_JSON, targetEntity);
     }
 
-    public HttpClient newXmlClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newXmlClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.APPLICATION_XML, targetEntity);
     }
 
-    public HttpClient newTextXmlClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newTextXmlClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.TEXT_XML, targetEntity);
     }
 }
diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java
index d3a4d44..c8d7dc9 100644
--- a/common/src/main/java/org/onap/so/client/RestClient.java
+++ b/common/src/main/java/org/onap/so/client/RestClient.java
@@ -44,11 +44,13 @@
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriBuilder;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.PayloadLoggingClientFilter;
 import org.onap.so.client.policy.CommonObjectMapperProvider;
-import org.onap.so.logging.jaxrs.filter.JaxRsClientLogging;
-import org.onap.so.logging.jaxrs.filter.PayloadLoggingFilter;
+import org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
@@ -71,7 +73,8 @@
     protected String accept;
     protected String contentType;
     protected String requestId = "";
-    protected JaxRsClientLogging jaxRsClientLogging;
+    protected SOMetricLogClientFilter metricLogClientFilter;
+    protected MDCSetup mdcSetup = new MDCSetup();
     protected RestProperties props;
 
     protected RestClient(RestProperties props, Optional<URI> path) {
@@ -179,18 +182,18 @@
         return ClientBuilder.newBuilder().build();
     }
 
-    protected abstract TargetEntity getTargetEntity();
+    protected abstract ONAPComponentsList getTargetEntity();
 
     protected void initializeClient(Client client) {
         if (this.enableLogging()) {
-            client.register(new PayloadLoggingFilter(this.getMaxPayloadSize()));
+            client.register(new PayloadLoggingClientFilter(this.getMaxPayloadSize()));
         }
         CommonObjectMapperProvider provider = this.getCommonObjectMapperProvider();
         client.register(new JacksonJsonProvider(provider.getMapper()));
 
-        jaxRsClientLogging = new JaxRsClientLogging();
-        jaxRsClientLogging.setTargetService(getTargetEntity());
-        client.register(jaxRsClientLogging);
+        metricLogClientFilter = new SOMetricLogClientFilter();
+        mdcSetup.setTargetEntity(getTargetEntity());
+        client.register(metricLogClientFilter);
 
         if (!path.isPresent()) {
             webTarget = client.target(host.toString());
diff --git a/common/src/main/java/org/onap/so/client/RestTemplateConfig.java b/common/src/main/java/org/onap/so/client/RestTemplateConfig.java
index 0633ae7..5fbc912 100644
--- a/common/src/main/java/org/onap/so/client/RestTemplateConfig.java
+++ b/common/src/main/java/org/onap/so/client/RestTemplateConfig.java
@@ -21,7 +21,7 @@
 package org.onap.so.client;
 
 import org.onap.so.configuration.rest.HttpComponentsClientConfiguration;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
@@ -45,7 +45,7 @@
         final RestTemplate restTemplate = new RestTemplate();
         restTemplate
                 .setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory()));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         return restTemplate;
     }
 
@@ -56,7 +56,7 @@
                 httpComponentsClientConfiguration.httpComponentsClientHttpRequestFactory();
         final RestTemplate restTemplate =
                 new RestTemplate(new BufferingClientHttpRequestFactory(clientHttpRequestFactory));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         return restTemplate;
     }
 }
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
index 2fe3910..e255b29 100644
--- a/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
@@ -50,6 +50,8 @@
     }
 
     protected String format(String s, List<String> variables) {
-        return String.format(s.replaceAll("%(\\d+)", "%$1\\$s"), variables.toArray());
+        s = s.replaceAll("%(\\d(?!\\d))", "%$1\\$s");
+        s = s.replaceAll("%(\\d{2})", "%%$1");
+        return String.format(s, variables.toArray());
     }
 }
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
index b546aaa..610ff72 100644
--- a/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
@@ -26,7 +26,7 @@
 import org.onap.so.client.ResponseExceptionMapper;
 import org.onap.so.client.graphinventory.GraphInventoryPatchConverter;
 import org.onap.so.client.graphinventory.GraphInventoryRestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AAIRestClient extends GraphInventoryRestClient {
 
@@ -38,8 +38,8 @@
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.AAI;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.AAI;
     }
 
     @Override
diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
index d6c7072..88899a7 100644
--- a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
+++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
@@ -29,7 +29,7 @@
 import org.onap.so.client.policy.CommonObjectMapperProvider;
 import org.onap.so.client.policy.JettisonStyleMapperProvider;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AdapterRestClient extends RestClient {
 
@@ -46,8 +46,8 @@
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.OPENSTACK_ADAPTER;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.OPENSTACK_ADAPTER;
     }
 
     @Override
diff --git a/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
index 68b4e84..b0ffb93 100644
--- a/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
@@ -22,11 +22,15 @@
 
 import java.net.URL;
 import java.util.Map;
+import java.util.UUID;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.client.RestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.slf4j.MDC;
 
 public class DMaaPRestClient extends RestClient {
 
+    private static final String SO = "SO";
     private final String auth;
     private final String key;
 
@@ -37,8 +41,8 @@
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.DMAAP;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.DMAAP;
     }
 
     @Override
@@ -46,6 +50,8 @@
         if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) {
             addBasicAuthHeader(auth, key);
         }
+        String onapRequestId = UUID.randomUUID().toString();
+        headerMap.put(ONAPLogConstants.Headers.REQUEST_ID, onapRequestId);
+        headerMap.put(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
     }
-
 }
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java
index 434c65d..babfa14 100644
--- a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java
@@ -28,7 +28,8 @@
 import org.onap.so.client.RestClientSSL;
 import org.onap.so.client.RestProperties;
 import org.onap.so.client.policy.CommonObjectMapperProvider;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.filter.base.ONAPComponentsList;
 
 public abstract class GraphInventoryRestClient extends RestClientSSL {
 
@@ -42,7 +43,7 @@
     }
 
     @Override
-    public abstract TargetEntity getTargetEntity();
+    public abstract ONAPComponentsList getTargetEntity();
 
     @Override
     protected abstract void initializeHeaderMap(Map<String, String> headerMap);
diff --git a/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
index 507f113..147f688 100644
--- a/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
@@ -25,7 +25,7 @@
 import java.util.Map;
 import java.util.Optional;
 import org.onap.so.client.RestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class GRMRestClient extends RestClient {
 
@@ -37,8 +37,8 @@
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.GRM;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.GRM;
     }
 
     @Override
diff --git a/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
index 95bc428..33ece07 100644
--- a/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
@@ -26,7 +26,7 @@
 import javax.ws.rs.core.UriBuilder;
 import org.onap.so.client.RestClient;
 import org.onap.so.client.policy.entities.PolicyServiceType;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class PolicyRestClient extends RestClient {
 
@@ -38,8 +38,8 @@
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.POLICY;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.POLICY;
     }
 
     @Override
diff --git a/common/src/main/java/org/onap/so/externaltasks/logging/AuditMDCSetup.java b/common/src/main/java/org/onap/so/externaltasks/logging/AuditMDCSetup.java
new file mode 100644
index 0000000..8d30ad3
--- /dev/null
+++ b/common/src/main/java/org/onap/so/externaltasks/logging/AuditMDCSetup.java
@@ -0,0 +1,56 @@
+package org.onap.so.externaltasks.logging;
+
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import org.camunda.bpm.client.task.ExternalTask;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+
+@Component
+public class AuditMDCSetup {
+
+    private MDCSetup mdcSetup = new MDCSetup();
+
+    private static final Logger logger = LoggerFactory.getLogger(AuditMDCSetup.class);
+
+    public void setupMDC(ExternalTask externalTask) {
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP,
+                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
+        String msoRequestId = externalTask.getVariable("mso-request-id");
+        if (msoRequestId != null && !msoRequestId.isEmpty()) {
+            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+        }
+        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, externalTask.getTopicName());
+        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, ONAPComponents.OPENSTACK_ADAPTER.toString());
+        setResponseCode(ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        setElapsedTime();
+        mdcSetup.setServerFQDN();
+        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
+    }
+
+    public void setElapsedTime() {
+        DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
+        MDC.put(ONAPLogConstants.MDCs.ELAPSED_TIME, Long.toString(System.currentTimeMillis() - ZonedDateTime
+                .parse(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP), timeFormatter).toInstant().toEpochMilli()));
+    }
+
+    public void setResponseCode(String code) {
+        MDC.put(MdcConstants.OPENSTACK_STATUS_CODE, code);
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, code);
+    }
+
+    public void clearClientMDCs() {
+        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
+        MDC.remove(MdcConstants.OPENSTACK_STATUS_CODE);
+        MDC.remove(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP);
+        MDC.remove(ONAPLogConstants.MDCs.ELAPSED_TIME);
+        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
+    }
+}
diff --git a/common/src/main/java/org/onap/so/logger/HttpHeadersConstants.java b/common/src/main/java/org/onap/so/logger/HttpHeadersConstants.java
index 83b860f..2010bc1 100644
--- a/common/src/main/java/org/onap/so/logger/HttpHeadersConstants.java
+++ b/common/src/main/java/org/onap/so/logger/HttpHeadersConstants.java
@@ -21,13 +21,5 @@
 package org.onap.so.logger;
 
 public class HttpHeadersConstants {
-    public static final String HEADER_FROM_APP_ID = "X-FromAppId";
-    public static final String ONAP_PARTNER_NAME = "X-ONAP-PartnerName";
-    public static final String HEADER_REQUEST_ID = "X-RequestId";
-    public static final String TRANSACTION_ID = "X-TransactionID";
-    public static final String ECOMP_REQUEST_ID = "X-ECOMP-RequestID";
-    public static final String ONAP_REQUEST_ID = "X-ONAP-RequestID";
-    public static final String CLIENT_ID = "X-ClientID";
-    public static final String INVOCATION_ID_HEADER = "X-InvocationID";
     public static final String REQUESTOR_ID = "X-RequestorID";
 }
diff --git a/common/src/main/java/org/onap/so/logger/LogConstants.java b/common/src/main/java/org/onap/so/logger/LogConstants.java
index 30915c6..3dc0c06 100644
--- a/common/src/main/java/org/onap/so/logger/LogConstants.java
+++ b/common/src/main/java/org/onap/so/logger/LogConstants.java
@@ -21,8 +21,6 @@
 package org.onap.so.logger;
 
 public class LogConstants {
-    public static final String TARGET_ENTITY_HEADER = "X-Target-Entity";
-    public static final String UNKNOWN_TARGET_ENTITY = "Unknown-Target-Entity";
     public static final String HTTP_URL = "Http-Url";
     public static final String URI_BASE = "Uri-Base";
 }
diff --git a/common/src/main/java/org/onap/so/logger/MdcConstants.java b/common/src/main/java/org/onap/so/logger/MdcConstants.java
index 33fceb2..4c6672e 100644
--- a/common/src/main/java/org/onap/so/logger/MdcConstants.java
+++ b/common/src/main/java/org/onap/so/logger/MdcConstants.java
@@ -21,14 +21,6 @@
 package org.onap.so.logger;
 
 public class MdcConstants {
-    public static final String INVOCATION_ID = "InvocationID";
-    public static final String RESPONSECODE = "ResponseCode";
-    public static final String RESPONSEDESC = "ResponseDesc";
-    public static final String ECOMP_REQUEST_ID = "X-ECOMP-RequestID";
-    public static final String CLIENT_ID = "X-ClientID";
-    public static final String PARTNERNAME = "PartnerName";
-    public static final String SERVICE_NAME = "ServiceName";
-    public static final String STATUSCODE = "StatusCode";
-    public static final String ENDTIME = "EndTimestamp";
     public static final String ORIGINAL_PARTNER_NAME = "OriginalPartnerName";
+    public static final String OPENSTACK_STATUS_CODE = "OpenstackStatusCode";
 }
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java
deleted file mode 100644
index 5dbf88d..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.utils.TargetEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.stereotype.Component;
-import javax.annotation.Priority;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Providers;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.UUID;
-
-@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
-@Component
-@Priority(0)
-public class JaxRsClientLogging implements ClientRequestFilter, ClientResponseFilter {
-
-    @Context
-    private Providers providers;
-
-    private static final String TRACE = "trace-#";
-    private static final String SO = "SO";
-    private static Logger logger = LoggerFactory.getLogger(JaxRsClientLogging.class);
-
-    public void setTargetService(TargetEntity targetEntity) {
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, targetEntity.toString());
-    }
-
-    @Override
-    public void filter(ClientRequestContext clientRequest) {
-        try {
-            setupMDC(clientRequest);
-            setupHeaders(clientRequest);
-            logger.info(ONAPLogConstants.Markers.INVOKE, "Invoke");
-        } catch (Exception e) {
-            logger.warn("Error in incoming JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void setupHeaders(ClientRequestContext clientRequest) {
-        MultivaluedMap<String, Object> headers = clientRequest.getHeaders();
-        headers.add(ONAPLogConstants.Headers.REQUEST_ID, extractRequestID(clientRequest));
-        headers.add(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-        headers.add(ONAPLogConstants.Headers.PARTNER_NAME, SO);
-    }
-
-    private void setupMDC(ClientRequestContext clientRequest) {
-        MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-        MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, clientRequest.getUri().toString());
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        setInvocationId();
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
-    }
-
-    private String extractRequestID(ClientRequestContext clientRequest) {
-        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty() || requestId.equals(TRACE)) {
-            requestId = UUID.randomUUID().toString();
-            logger.warn("Could not Find Request ID Generating New One: {}", clientRequest.getUri().getPath());
-        }
-        return requestId;
-    }
-
-    private void setInvocationId() {
-        String invocationId = MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-
-    @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
-
-        try {
-            String statusCode;
-            if (Response.Status.Family.familyOf(responseContext.getStatus())
-                    .equals(Response.Status.Family.SUCCESSFUL)) {
-                statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-            } else {
-                statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-            }
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-            logger.info(ONAPLogConstants.Markers.INVOKE_RETURN, "InvokeReturn");
-            clearClientMDCs();
-        } catch (Exception e) {
-            logger.warn("Error in outgoing JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP);
-    }
-
-}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsFilterLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsFilterLogging.java
deleted file mode 100644
index 7e2b603..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsFilterLogging.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.UUID;
-import javax.annotation.Priority;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
-import javax.ws.rs.ext.Providers;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logger.HttpHeadersConstants;
-import org.onap.so.logger.LogConstants;
-import org.onap.so.logger.MdcConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Priority(1)
-@Provider
-@Component
-public class JaxRsFilterLogging implements ContainerRequestFilter, ContainerResponseFilter {
-
-    protected static Logger logger = LoggerFactory.getLogger(JaxRsFilterLogging.class);
-
-    @Context
-    private HttpServletRequest httpServletRequest;
-
-    @Context
-    private Providers providers;
-
-    @Autowired
-    private MDCSetup mdcSetup;
-
-    @Override
-    public void filter(ContainerRequestContext containerRequest) {
-        try {
-            MultivaluedMap<String, String> headers = containerRequest.getHeaders();
-            setRequestId(headers);
-            containerRequest.setProperty("requestId", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
-            setInvocationId(headers);
-            setServiceName(containerRequest);
-            setMDCPartnerName(headers);
-            mdcSetup.setServerFQDN();
-            mdcSetup.setClientIPAddress(httpServletRequest);
-            mdcSetup.setInstanceUUID();
-            mdcSetup.setEntryTimeStamp();
-            MDC.put(HttpHeadersConstants.REQUESTOR_ID, headers.getFirst("X-RequestorID"));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-            MDC.put(LogConstants.URI_BASE, containerRequest.getUriInfo().getBaseUri().toString());
-            MDC.put(MdcConstants.ORIGINAL_PARTNER_NAME, MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
-            logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        } catch (Exception e) {
-            logger.warn("Error in incoming JAX-RS Inteceptor", e);
-        }
-    }
-
-    @Override
-    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
-            throws IOException {
-        try {
-            setResponseStatusCode(responseContext);
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, payloadMessage(responseContext));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
-            logger.info(ONAPLogConstants.Markers.EXIT, "Exiting.");
-            MDC.clear();
-        } catch (Exception e) {
-            MDC.clear();
-            logger.warn("Error in outgoing JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void setResponseStatusCode(ContainerResponseContext responseContext) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-
-    private String payloadMessage(ContainerResponseContext responseContext) throws IOException {
-        String message = "";
-        if (responseContext.hasEntity()) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            Class<?> entityClass = responseContext.getEntityClass();
-            Type entityType = responseContext.getEntityType();
-            Annotation[] entityAnnotations = responseContext.getEntityAnnotations();
-            MediaType mediaType = responseContext.getMediaType();
-            @SuppressWarnings("unchecked")
-            MessageBodyWriter<Object> bodyWriter = (MessageBodyWriter<Object>) providers
-                    .getMessageBodyWriter(entityClass, entityType, entityAnnotations, mediaType);
-            bodyWriter.writeTo(responseContext.getEntity(), entityClass, entityType, entityAnnotations, mediaType,
-                    responseContext.getHeaders(), baos);
-            message = message.concat(new String(baos.toByteArray()));
-        }
-        return message;
-    }
-
-    private void setRequestId(MultivaluedMap<String, String> headers) {
-        String requestId = headers.getFirst(ONAPLogConstants.Headers.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    private void setInvocationId(MultivaluedMap<String, String> headers) {
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, findInvocationId(headers));
-    }
-
-    private void setMDCPartnerName(MultivaluedMap<String, String> headers) {
-        String partnerName = headers.getFirst(ONAPLogConstants.Headers.PARTNER_NAME);
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-    private String findInvocationId(MultivaluedMap<String, String> headers) {
-        String invocationId = headers.getFirst(ONAPLogConstants.Headers.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        return invocationId;
-    }
-
-    private void setServiceName(ContainerRequestContext containerRequest) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, containerRequest.getUriInfo().getPath());
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-    }
-
-}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCSetup.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCSetup.java
deleted file mode 100644
index 607f067..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCSetup.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Map;
-import java.util.UUID;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Response;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MDCSetup {
-
-    protected static Logger logger = LoggerFactory.getLogger(MDCSetup.class);
-
-    private static final String INSTANCE_UUID = UUID.randomUUID().toString();
-
-    public void setInstanceUUID() {
-        MDC.put(ONAPLogConstants.MDCs.INSTANCE_UUID, INSTANCE_UUID);
-    }
-
-    public void setServerFQDN() {
-        String serverFQDN = "";
-        InetAddress addr = null;
-        try {
-            addr = InetAddress.getLocalHost();
-            serverFQDN = addr.toString();
-        } catch (UnknownHostException e) {
-            logger.warn("Cannot Resolve Host Name");
-            serverFQDN = "";
-        }
-        MDC.put(ONAPLogConstants.MDCs.SERVER_FQDN, serverFQDN);
-    }
-
-    public void setClientIPAddress(HttpServletRequest httpServletRequest) {
-        String remoteIpAddress = "";
-        if (httpServletRequest != null) {
-            remoteIpAddress = httpServletRequest.getRemoteAddr();
-        }
-        MDC.put(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS, remoteIpAddress);
-    }
-
-    public void setEntryTimeStamp() {
-        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-    }
-
-    public void setServiceName(HttpServletRequest request) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI());
-    }
-
-    public void setRequestId(Map<String, String> headers) {
-        String requestId = headers.get(ONAPLogConstants.Headers.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    public void setInvocationId(Map<String, String> headers) {
-        String invocationId = headers.get(ONAPLogConstants.Headers.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-    public void setMDCPartnerName(Map<String, String> headers) {
-        String partnerName = headers.get(ONAPLogConstants.Headers.PARTNER_NAME);
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-
-    public void setResponseStatusCode(HttpServletResponse response) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCTaskDecorator.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCTaskDecorator.java
deleted file mode 100644
index e644f9e..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/MDCTaskDecorator.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.util.Map;
-import org.slf4j.MDC;
-import org.springframework.core.task.TaskDecorator;
-
-public class MDCTaskDecorator implements TaskDecorator {
-
-    @Override
-    public Runnable decorate(Runnable runnable) {
-        Map<String, String> contextMap = MDC.getCopyOfContextMap();
-        return () -> {
-            try {
-                if (contextMap != null) {
-                    MDC.setContextMap(contextMap);
-                    runnable.run();
-                }
-            } finally {
-                MDC.clear();
-            }
-        };
-    }
-}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java
deleted file mode 100644
index 21c0b52..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import javax.annotation.Priority;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.ext.Provider;
-import javax.ws.rs.ext.WriterInterceptor;
-import javax.ws.rs.ext.WriterInterceptorContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-@Provider
-@Priority(1)
-public class PayloadLoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor {
-
-    private static final Logger logger = LoggerFactory.getLogger(PayloadLoggingFilter.class);
-    private static final String ENTITY_STREAM_PROPERTY = "LoggingFilter.entityStream";
-    private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
-    private final int maxEntitySize;
-
-    public PayloadLoggingFilter() {
-        maxEntitySize = 1024 * 1024;
-    }
-
-    public PayloadLoggingFilter(int maxPayloadSize) {
-        this.maxEntitySize = Integer.min(maxPayloadSize, 1024 * 1024);
-    }
-
-    private void log(StringBuilder sb) {
-        logger.debug(sb.toString());
-    }
-
-    protected InputStream logInboundEntity(final StringBuilder b, InputStream stream, final Charset charset)
-            throws IOException {
-        if (!stream.markSupported()) {
-            stream = new BufferedInputStream(stream);
-        }
-        stream.mark(maxEntitySize + 1);
-        final byte[] entity = new byte[maxEntitySize + 1];
-        final int entitySize = stream.read(entity);
-        if (entitySize != -1) {
-            b.append(new String(entity, 0, Math.min(entitySize, maxEntitySize), charset));
-        }
-        if (entitySize > maxEntitySize) {
-            b.append("...more...");
-        }
-        b.append('\n');
-        stream.reset();
-        return stream;
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext) throws IOException {
-        if (requestContext.hasEntity()) {
-            final OutputStream stream = new LoggingStream(requestContext.getEntityStream());
-            requestContext.setEntityStream(stream);
-            requestContext.setProperty(ENTITY_STREAM_PROPERTY, stream);
-        }
-        String method = formatMethod(requestContext);
-        log(new StringBuilder("Making " + method + " request to: " + requestContext.getUri() + "\nRequest Headers: "
-                + requestContext.getHeaders().toString()));
-
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
-        final StringBuilder sb = new StringBuilder();
-        if (responseContext.hasEntity()) {
-            responseContext.setEntityStream(logInboundEntity(sb, responseContext.getEntityStream(), DEFAULT_CHARSET));
-            String method = formatMethod(requestContext);
-            log(sb.insert(0, "Response from " + method + ": " + requestContext.getUri() + "\nResponse Headers: "
-                    + responseContext.getHeaders().toString()));
-        }
-    }
-
-    @Override
-    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
-        final LoggingStream stream = (LoggingStream) context.getProperty(ENTITY_STREAM_PROPERTY);
-        context.proceed();
-        if (stream != null) {
-            log(stream.getStringBuilder(DEFAULT_CHARSET));
-        }
-    }
-
-    private class LoggingStream extends FilterOutputStream {
-
-        private final StringBuilder sb = new StringBuilder();
-        private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-        LoggingStream(OutputStream out) {
-            super(out);
-        }
-
-        StringBuilder getStringBuilder(Charset charset) {
-            // write entity to the builder
-            final byte[] entity = baos.toByteArray();
-
-            sb.append(new String(entity, 0, entity.length, charset));
-            if (entity.length > maxEntitySize) {
-                sb.append("...more...");
-            }
-            sb.append('\n');
-
-            return sb;
-        }
-
-        @Override
-        public void write(final int i) throws IOException {
-            if (baos.size() <= maxEntitySize) {
-                baos.write(i);
-            }
-            out.write(i);
-        }
-    }
-
-    private String formatMethod(ClientRequestContext requestContext) {
-        String method = requestContext.getHeaderString("X-HTTP-Method-Override");
-        if (method == null) {
-            method = requestContext.getMethod();
-        } else {
-            method = requestContext.getMethod() + " (overridden to " + method + ")";
-        }
-
-        return method;
-    }
-}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOAuditLogContainerFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOAuditLogContainerFilter.java
new file mode 100644
index 0000000..5ae1082
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOAuditLogContainerFilter.java
@@ -0,0 +1,34 @@
+package org.onap.so.logging.jaxrs.filter;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.HttpHeadersConstants;
+import org.onap.so.logger.LogConstants;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+import org.onap.logging.filter.base.AuditLogContainerFilter;
+
+@Priority(1)
+@Component
+public class SOAuditLogContainerFilter extends AuditLogContainerFilter {
+
+    private static final String ORIGINAL_PARTNER_NAME = "OriginalPartnerName";
+
+    @Override
+    protected void additionalPreHandling(ContainerRequestContext request) {
+        request.setProperty("requestId", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+        MDC.put(ORIGINAL_PARTNER_NAME, MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+        String requestorId = request.getHeaders().getFirst("X-RequestorID");
+        if (requestorId != null) {
+            MDC.put(HttpHeadersConstants.REQUESTOR_ID, requestorId);
+        }
+        MDC.put(LogConstants.URI_BASE, request.getUriInfo().getBaseUri().toString());
+    }
+
+    @Override
+    protected void additionalPostHandling(ContainerResponseContext response) {
+        // override to add additional post handling
+    }
+}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOMetricLogClientFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOMetricLogClientFilter.java
new file mode 100644
index 0000000..248e2f0
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOMetricLogClientFilter.java
@@ -0,0 +1,44 @@
+package org.onap.so.logging.jaxrs.filter;
+
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientResponseContext;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.MetricLogClientFilter;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.slf4j.Marker;
+import org.slf4j.MarkerFactory;
+
+
+public class SOMetricLogClientFilter extends MetricLogClientFilter {
+
+    protected static Logger logger = LoggerFactory.getLogger(MDCSetup.class);
+    private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE-RETURN");
+
+    private MDCSetup mdcSetup = new MDCSetup();
+
+    @Override
+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
+        try {
+            mdcSetup.setLogTimestamp();
+            mdcSetup.setElapsedTimeInvokeTimestamp();
+            mdcSetup.setResponseStatusCode(responseContext.getStatus());
+            mdcSetup.setResponseDescription(responseContext.getStatus());
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
+            logger.info(INVOKE_RETURN, "InvokeReturn");
+            mdcSetup.clearClientMDCs();
+            setOpenStackResponseCode();
+        } catch (Exception e) {
+            logger.warn("Error in JAX-RS request,response client filter", e);
+        }
+    }
+
+    protected void setOpenStackResponseCode() {
+        if (MDC.get(MdcConstants.OPENSTACK_STATUS_CODE) != null) {
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        }
+    }
+}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOSpringClientFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOSpringClientFilter.java
new file mode 100644
index 0000000..c2b8df3
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOSpringClientFilter.java
@@ -0,0 +1,52 @@
+package org.onap.so.logging.jaxrs.filter;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.spring.SpringClientFilter;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.slf4j.Marker;
+import org.slf4j.MarkerFactory;
+import org.springframework.http.client.ClientHttpRequestInterceptor;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StreamUtils;
+
+@Component
+public class SOSpringClientFilter extends SpringClientFilter implements ClientHttpRequestInterceptor {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    private MDCSetup mdcSetup = new MDCSetup();
+    private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE-RETURN");
+
+
+    protected void processResponse(ClientHttpResponse response) throws IOException {
+        if (logger.isDebugEnabled()) {
+            logger.debug("============================response begin==========================================");
+            logger.debug("Status code  : {}", response.getStatusCode());
+            logger.debug("Status text  : {}", response.getStatusText());
+            logger.debug("Headers      : {}", response.getHeaders());
+            logger.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
+            logger.debug("=======================response end=================================================");
+        }
+        mdcSetup.setLogTimestamp();
+        mdcSetup.setElapsedTimeInvokeTimestamp();
+        mdcSetup.setResponseStatusCode(response.getRawStatusCode());
+        int statusCode = response.getRawStatusCode();
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(statusCode));
+        mdcSetup.setResponseDescription(statusCode);
+        logger.info(INVOKE_RETURN, "InvokeReturn");
+        mdcSetup.clearClientMDCs();
+        setOpenStackResponseCode();
+    }
+
+    protected void setOpenStackResponseCode() {
+        if (MDC.get(MdcConstants.OPENSTACK_STATUS_CODE) != null) {
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        }
+    }
+}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/SpringClientFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/SpringClientFilter.java
deleted file mode 100644
index c763dd4..0000000
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/SpringClientFilter.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logger.LogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpRequest;
-import org.springframework.http.client.ClientHttpRequestExecution;
-import org.springframework.http.client.ClientHttpRequestInterceptor;
-import org.springframework.http.client.ClientHttpResponse;
-import org.springframework.util.StreamUtils;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.UUID;
-import javax.ws.rs.core.Response;
-
-public class SpringClientFilter implements ClientHttpRequestInterceptor {
-
-    private final Logger log = LoggerFactory.getLogger(this.getClass());
-
-    private static final String TRACE = "trace-#";
-    private static final String SO = "SO";
-
-    @Override
-    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
-            throws IOException {
-        processRequest(request, body);
-        ClientHttpResponse response = execution.execute(request, body);
-        processResponse(response);
-        return response;
-    }
-
-    private void processRequest(HttpRequest request, byte[] body) throws IOException {
-        setInvocationId();
-        setupHeaders(request);
-        setupMDC(request);
-        if (log.isDebugEnabled()) {
-            log.debug("===========================request begin================================================");
-            log.debug("URI         : {}", request.getURI());
-            log.debug("Method      : {}", request.getMethod());
-            log.debug("Headers     : {}", request.getHeaders());
-            log.debug("Request body: {}", new String(body, "UTF-8"));
-            log.debug("==========================request end================================================");
-        }
-    }
-
-    private void setupHeaders(HttpRequest clientRequest) {
-        HttpHeaders headers = clientRequest.getHeaders();
-        headers.add(ONAPLogConstants.Headers.REQUEST_ID, extractRequestID(clientRequest));
-        headers.add(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-        headers.add(ONAPLogConstants.Headers.PARTNER_NAME, SO);
-    }
-
-    private String extractRequestID(HttpRequest clientRequest) {
-        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty() || requestId.equals(TRACE)) {
-            requestId = UUID.randomUUID().toString();
-            log.warn("Could not Find Request ID Generating New One: {}", clientRequest.getURI());
-        }
-        return requestId;
-    }
-
-    private void setupMDC(HttpRequest clientRequest) {
-        MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-        MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, clientRequest.getURI().toString());
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, extractTargetEntity(clientRequest));
-    }
-
-    private String extractTargetEntity(HttpRequest clientRequest) {
-        HttpHeaders headers = clientRequest.getHeaders();
-        String headerTargetEntity = null;
-        List<String> headerTargetEntityList = headers.get(LogConstants.TARGET_ENTITY_HEADER);
-        if (headerTargetEntityList != null && !headerTargetEntityList.isEmpty())
-            headerTargetEntity = headerTargetEntityList.get(0);
-        String targetEntity = MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        if (targetEntity != null && !targetEntity.isEmpty()) {
-            return targetEntity;
-        } else if (headerTargetEntity != null && !headerTargetEntity.isEmpty()) {
-            targetEntity = headerTargetEntity;
-        } else {
-            targetEntity = LogConstants.UNKNOWN_TARGET_ENTITY;
-            log.warn("Could not Target Entity: {}", clientRequest.getURI());
-        }
-        return targetEntity;
-    }
-
-    private void setInvocationId() {
-        String invocationId = MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-
-    private void processResponse(ClientHttpResponse response) throws IOException {
-        if (log.isDebugEnabled()) {
-            log.debug("============================response begin==========================================");
-            log.debug("Status code  : {}", response.getStatusCode());
-            log.debug("Status text  : {}", response.getStatusText());
-            log.debug("Headers      : {}", response.getHeaders());
-            log.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
-            log.debug("=======================response end=================================================");
-        }
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getRawStatusCode()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(response.getRawStatusCode()));
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, "");
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-        log.info(ONAPLogConstants.Markers.INVOKE_RETURN, "InvokeReturn");
-        clearClientMDCs();
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP);
-    }
-}
diff --git a/common/src/main/java/org/onap/so/logging/spring/interceptor/LoggingInterceptor.java b/common/src/main/java/org/onap/so/logging/spring/interceptor/LoggingInterceptor.java
deleted file mode 100644
index fa5a5d5..0000000
--- a/common/src/main/java/org/onap/so/logging/spring/interceptor/LoggingInterceptor.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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=========================================================
- */
-
-package org.onap.so.logging.spring.interceptor;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Providers;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logging.jaxrs.filter.MDCSetup;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-@Component
-public class LoggingInterceptor extends HandlerInterceptorAdapter {
-
-    Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class);
-
-    @Autowired
-    private MDCSetup mdcSetup;
-
-    @Context
-    private Providers providers;
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
-            throws Exception {
-
-        Map<String, String> headers = Collections.list((request).getHeaderNames()).stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-        setRequestId(headers);
-        setInvocationId(headers);
-        setServiceName(request);
-        setMDCPartnerName(headers);
-        mdcSetup.setClientIPAddress(request);
-        mdcSetup.setEntryTimeStamp();
-        mdcSetup.setInstanceUUID();
-        mdcSetup.setServerFQDN();
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        if (logger.isDebugEnabled())
-            logRequestInformation(request);
-        return true;
-    }
-
-    protected void logRequestInformation(HttpServletRequest request) {
-        Map<String, String> headers = Collections.list((request).getHeaderNames()).stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-
-        logger.debug("===========================request begin================================================");
-        logger.debug("URI         : {}", request.getRequestURI());
-        logger.debug("Method      : {}", request.getMethod());
-        logger.debug("Headers     : {}", headers);
-        logger.debug("==========================request end================================================");
-
-    }
-
-    @Override
-    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-            ModelAndView modelAndView) throws Exception {
-        setResponseStatusCode(response);
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, "");
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(response.getStatus()));
-        logger.info(ONAPLogConstants.Markers.EXIT, "Exiting.");
-        MDC.clear();
-    }
-
-    protected void setResponseStatusCode(HttpServletResponse response) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-
-    protected void setServiceName(HttpServletRequest request) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI());
-    }
-
-    protected void setRequestId(Map<String, String> headers) {
-        String requestId = headers.get(ONAPLogConstants.Headers.REQUEST_ID.toLowerCase());
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    protected void setInvocationId(Map<String, String> headers) {
-        String invocationId = headers.get(ONAPLogConstants.Headers.INVOCATION_ID.toLowerCase());
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-    protected void setMDCPartnerName(Map<String, String> headers) {
-        String partnerName = headers.get(ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase());
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-
-}
diff --git a/common/src/main/java/org/onap/so/utils/Components.java b/common/src/main/java/org/onap/so/utils/Components.java
new file mode 100644
index 0000000..0713723
--- /dev/null
+++ b/common/src/main/java/org/onap/so/utils/Components.java
@@ -0,0 +1,7 @@
+package org.onap.so.utils;
+
+import org.onap.logging.filter.base.ONAPComponentsList;
+
+public enum Components implements ONAPComponentsList {
+    OPENSTACK, UNKNOWN;
+}
diff --git a/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java b/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java
new file mode 100644
index 0000000..e43b431
--- /dev/null
+++ b/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java
@@ -0,0 +1,46 @@
+package org.onap.so.utils;
+
+import java.security.GeneralSecurityException;
+import org.camunda.bpm.client.ExternalTaskClient;
+import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
+import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ExternalTaskServiceUtils {
+
+    @Autowired
+    public Environment env;
+
+    private static final Logger logger = LoggerFactory.getLogger(ExternalTaskServiceUtils.class);
+
+    public ExternalTaskClient createExternalTaskClient() throws Exception {
+        String auth = getAuth();
+        ClientRequestInterceptor interceptor = createClientInterceptor(auth);
+        return ExternalTaskClient.create().baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1)
+                .addInterceptor(interceptor).asyncResponseTimeout(120000).build();
+    }
+
+    protected ClientRequestInterceptor createClientInterceptor(String auth) {
+        return new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"), auth);
+    }
+
+    protected String getAuth() throws Exception {
+        try {
+            return CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
+        } catch (IllegalStateException | GeneralSecurityException e) {
+            logger.error("Error Decrypting Password", e);
+            throw new Exception("Cannot load password");
+        }
+    }
+
+    public int getMaxClients() {
+        return Integer.parseInt(env.getProperty("workflow.topics.maxClients", "3"));
+    }
+
+
+}
diff --git a/common/src/main/java/org/onap/so/utils/ExternalTaskUtils.java b/common/src/main/java/org/onap/so/utils/ExternalTaskUtils.java
new file mode 100644
index 0000000..a2aed63
--- /dev/null
+++ b/common/src/main/java/org/onap/so/utils/ExternalTaskUtils.java
@@ -0,0 +1,36 @@
+package org.onap.so.utils;
+
+import org.camunda.bpm.client.task.ExternalTask;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public abstract class ExternalTaskUtils {
+
+    @Autowired
+    Environment env;
+
+    private static final Logger logger = LoggerFactory.getLogger(ExternalTaskUtils.class);
+
+    public long calculateRetryDelay(int currentRetries) {
+        int retrySequence = getRetrySequence().length - currentRetries;
+        return Integer.parseInt(getRetrySequence()[retrySequence]) * getRetryMutiplier();
+    }
+
+    protected Long getRetryMutiplier() {
+        return Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier", "6000"));
+    }
+
+    protected String[] getRetrySequence() {
+        String[] seq = {"1", "1", "2", "3", "5", "8", "13", "20"};
+        if (env.getProperty("mso.workflow.topics.retrySequence") != null) {
+            seq = env.getProperty("mso.workflow.topics.retrySequence", String[].class);
+        }
+        return seq;
+    }
+}
diff --git a/common/src/main/java/org/onap/so/utils/TargetEntities.java b/common/src/main/java/org/onap/so/utils/TargetEntities.java
deleted file mode 100644
index 67016a1..0000000
--- a/common/src/main/java/org/onap/so/utils/TargetEntities.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2019 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=========================================================
- */
-
-package org.onap.so.utils;
-
-import java.io.Serializable;
-
-public interface TargetEntities extends Serializable {
-
-}
diff --git a/common/src/main/java/org/onap/so/utils/TargetEntity.java b/common/src/main/java/org/onap/so/utils/TargetEntity.java
deleted file mode 100644
index 3a3ec91..0000000
--- a/common/src/main/java/org/onap/so/utils/TargetEntity.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * 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=========================================================
- */
-
-package org.onap.so.utils;
-
-import java.util.EnumSet;
-
-public enum TargetEntity implements TargetEntities {
-    OPENSTACK_ADAPTER,
-    BPMN,
-    GRM,
-    AAI,
-    DMAAP,
-    POLICY,
-    CATALOG_DB,
-    REQUEST_DB,
-    VNF_ADAPTER,
-    SDNC_ADAPTER,
-    SNIRO,
-    SDC,
-    EXTERNAL,
-    MULTICLOUD,
-    OOF,
-    SDNC,
-    SO,
-    UNKNOWN,
-    OPENSTACK;
-
-    private static final String PREFIX = "SO";
-
-    public static EnumSet<TargetEntity> getSOInternalComponents() {
-        return EnumSet.of(OPENSTACK_ADAPTER, BPMN, CATALOG_DB, REQUEST_DB, VNF_ADAPTER, SDNC_ADAPTER);
-    }
-
-    @Override
-    public String toString() {
-        if (getSOInternalComponents().contains(this))
-            return TargetEntity.PREFIX + "." + this.name();
-        else
-            return this.name();
-    }
-}
diff --git a/common/src/test/java/org/onap/so/client/HttpClientTest.java b/common/src/test/java/org/onap/so/client/HttpClientTest.java
index b12ed59..a01e2bb 100644
--- a/common/src/test/java/org/onap/so/client/HttpClientTest.java
+++ b/common/src/test/java/org/onap/so/client/HttpClientTest.java
@@ -32,7 +32,7 @@
 import java.net.URL;
 import org.junit.Rule;
 import org.junit.Test;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 public class HttpClientTest {
@@ -49,7 +49,7 @@
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addBasicAuthHeader(
                 "97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF",
@@ -68,7 +68,7 @@
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addAdditionalHeader("Accept", "application/json");
         client.addAdditionalHeader("id", null);
@@ -86,7 +86,7 @@
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addBasicAuthHeader("", "12345");
         client.addAdditionalHeader("Accept", "application/json");
diff --git a/common/src/test/java/org/onap/so/client/RestClientTest.java b/common/src/test/java/org/onap/so/client/RestClientTest.java
index 745dee2..cd00a9e 100644
--- a/common/src/test/java/org/onap/so/client/RestClientTest.java
+++ b/common/src/test/java/org/onap/so/client/RestClientTest.java
@@ -39,7 +39,7 @@
 import org.mockito.ArgumentMatchers;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 @RunWith(MockitoJUnitRunner.class)
 public class RestClientTest {
@@ -82,7 +82,7 @@
 
     private RestClient buildSpy() throws MalformedURLException, IllegalArgumentException, UriBuilderException {
         RestClient client = httpClientFactory.newJsonClient(UriBuilder.fromUri("http://localhost/test").build().toURL(),
-                TargetEntity.BPMN);
+                ONAPComponents.BPMN);
 
         return spy(client);
     }
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
index 2ef50dd..3587c71 100644
--- a/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
@@ -79,6 +79,22 @@
     }
 
     @Test
+    public void errorMessageOnPercentEncodedTest() {
+        ServiceException svcException = new ServiceException();
+        svcException.setText("test my%20Test %1 message - %2");
+        svcException.setVariables(Arrays.asList("error", "service exception %1 test"));
+
+        RequestError requestError = new RequestError();
+        requestError.setServiceException(svcException);
+
+        doReturn(requestError).when(errorObj).getRequestError();
+
+        AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
+        String result = formatter.getMessage();
+        assertEquals("equal", "test my%20Test error message - service exception error test", result);
+    }
+
+    @Test
     public void testGetMessageNoParsable() {
         errorObj.setRequestError(null);
         AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
diff --git a/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java b/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
index bc60031..5075da3 100644
--- a/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
+++ b/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
@@ -34,7 +34,7 @@
 import org.junit.Test;
 import org.onap.so.client.policy.JettisonStyleMapperProvider;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AdapterRestClientTest {
 
@@ -88,9 +88,9 @@
     }
 
     @Test
-    public void getTargetEntity_success() throws URISyntaxException {
+    public void getONAPComponents_success() throws URISyntaxException {
         AdapterRestClient testedObject = new AdapterRestClient(adapterRestPropertiesMock, new URI(""));
-        assertThat(testedObject.getTargetEntity()).isEqualTo(TargetEntity.OPENSTACK_ADAPTER);
+        assertThat(testedObject.getTargetEntity()).isEqualTo(ONAPComponents.OPENSTACK_ADAPTER);
     }
 
     @Test
diff --git a/common/src/test/java/org/onap/so/externaltasks/logging/AuditMDCSetupTest.java b/common/src/test/java/org/onap/so/externaltasks/logging/AuditMDCSetupTest.java
new file mode 100644
index 0000000..5e2a51a
--- /dev/null
+++ b/common/src/test/java/org/onap/so/externaltasks/logging/AuditMDCSetupTest.java
@@ -0,0 +1,89 @@
+package org.onap.so.externaltasks.logging;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.doReturn;
+import org.camunda.bpm.client.task.ExternalTask;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AuditMDCSetupTest {
+
+    @Mock
+    private ExternalTask externalTask;
+
+    @Spy
+    @InjectMocks
+    private AuditMDCSetup mdcSetup;
+
+    private String requestId = "9bb86b8d-a02f-4a0b-81a9-2eb963850009";
+    private String serviceName = "testServiceName";
+
+    @After
+    public void tearDown() {
+        MDC.clear();
+    }
+
+    @Test
+    public void setupMDCTest() {
+        doReturn(requestId).when(externalTask).getVariable("mso-request-id");
+        doReturn(serviceName).when(externalTask).getTopicName();
+
+        mdcSetup.setupMDC(externalTask);
+
+        assertNotNull(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+        assertEquals(requestId, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+        assertEquals(serviceName, MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+        assertEquals("SO.OPENSTACK_ADAPTER", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+    }
+
+    @Test
+    public void setElapsedTimeTest() {
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+
+        mdcSetup.setElapsedTime();
+
+        assertNotNull(MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+    }
+
+    @Test
+    public void setResponseCodeTest() {
+        mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+    }
+
+    @Test
+    public void clearClientMDCsTest() {
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        MDC.put(MdcConstants.OPENSTACK_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+        MDC.put(ONAPLogConstants.MDCs.ELAPSED_TIME, "318");
+        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, "SO.OPENSTACK_ADAPTER");
+
+        mdcSetup.clearClientMDCs();
+
+        assertNull(MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+        assertNull(MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+
+    }
+
+}
diff --git a/common/src/test/java/org/onap/so/utils/ExternalTaskServiceUtilsTest.java b/common/src/test/java/org/onap/so/utils/ExternalTaskServiceUtilsTest.java
new file mode 100644
index 0000000..b2db986
--- /dev/null
+++ b/common/src/test/java/org/onap/so/utils/ExternalTaskServiceUtilsTest.java
@@ -0,0 +1,61 @@
+package org.onap.so.utils;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import org.camunda.bpm.client.ExternalTaskClient;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.core.env.Environment;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ExternalTaskServiceUtilsTest {
+
+    @Spy
+    @InjectMocks
+    private ExternalTaskServiceUtils utils = new ExternalTaskServiceUtils();
+
+    @Mock
+    private Environment mockEnv;
+
+    @Mock
+    private ExternalTaskClient mockClient;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        doReturn("3").when(mockEnv).getProperty("workflow.topics.maxClients", "3");
+        doReturn("07a7159d3bf51a0e53be7a8f89699be7").when(mockEnv).getRequiredProperty("mso.msoKey");
+        doReturn("6B466C603A260F3655DBF91E53CE54667041C01406D10E8CAF9CC24D8FA5388D06F90BFE4C852052B436").when(mockEnv)
+                .getRequiredProperty("mso.auth");
+        doReturn("someid").when(mockEnv).getRequiredProperty("mso.config.cadi.aafId");
+        doReturn("http://camunda.com").when(mockEnv).getRequiredProperty("mso.workflow.endpoint");
+    }
+
+    @Test
+    public void testCreateExternalTaskClient() throws Exception {
+        ExternalTaskClient actualClient = utils.createExternalTaskClient();
+        Assert.assertNotNull(actualClient);
+    }
+
+    @Test
+    public void testGetAuth() throws Exception {
+        String actual = utils.getAuth();
+        String expected = "Att32054Life!@";
+        assertEquals(expected, actual);
+    }
+
+    @Test
+    public void testGetMaxClients() throws Exception {
+        int actual = utils.getMaxClients();
+        int expected = 3;
+        assertEquals(expected, actual);
+    }
+
+}
diff --git a/common/src/test/java/org/onap/so/utils/ExternalTaskUtilsTest.java b/common/src/test/java/org/onap/so/utils/ExternalTaskUtilsTest.java
new file mode 100644
index 0000000..f918781
--- /dev/null
+++ b/common/src/test/java/org/onap/so/utils/ExternalTaskUtilsTest.java
@@ -0,0 +1,65 @@
+package org.onap.so.utils;
+
+import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.core.env.Environment;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ExternalTaskUtilsTest {
+
+    @Mock
+    private Environment mockenv;
+
+    @InjectMocks
+    private ExternalTaskUtils externalTaskUtilsAnony = new ExternalTaskUtils() {
+
+    };
+
+    @Test
+    public void retry_sequence_calculation_Test() {
+        Mockito.when(mockenv.getProperty("mso.workflow.topics.retryMultiplier", "6000")).thenReturn("6000");
+        long firstRetry = externalTaskUtilsAnony.calculateRetryDelay(8);
+        assertEquals(6000L, firstRetry);
+        long secondRetry = externalTaskUtilsAnony.calculateRetryDelay(7);
+        assertEquals(6000L, secondRetry);
+        long thirdRetry = externalTaskUtilsAnony.calculateRetryDelay(6);
+        assertEquals(12000L, thirdRetry);
+        long fourthRetry = externalTaskUtilsAnony.calculateRetryDelay(5);
+        assertEquals(18000L, fourthRetry);
+        long fifthRetry = externalTaskUtilsAnony.calculateRetryDelay(4);
+        assertEquals(30000L, fifthRetry);
+        long sixRetry = externalTaskUtilsAnony.calculateRetryDelay(3);
+        assertEquals(48000L, sixRetry);
+        long seventhRetry = externalTaskUtilsAnony.calculateRetryDelay(2);
+        assertEquals(78000L, seventhRetry);
+        long eigthRetry = externalTaskUtilsAnony.calculateRetryDelay(1);
+        assertEquals(120000L, eigthRetry);
+    }
+
+    @Test
+    public void retry_sequence_Test() {
+        Mockito.when(mockenv.getProperty("mso.workflow.topics.retryMultiplier", "6000")).thenReturn("6000");
+        long firstRetry = externalTaskUtilsAnony.calculateRetryDelay(8);
+        assertEquals(6000L, firstRetry);
+        long secondRetry = externalTaskUtilsAnony.calculateRetryDelay(7);
+        assertEquals(6000L, secondRetry);
+        long thirdRetry = externalTaskUtilsAnony.calculateRetryDelay(6);
+        assertEquals(12000L, thirdRetry);
+        long fourthRetry = externalTaskUtilsAnony.calculateRetryDelay(5);
+        assertEquals(18000L, fourthRetry);
+        long fifthRetry = externalTaskUtilsAnony.calculateRetryDelay(4);
+        assertEquals(30000L, fifthRetry);
+        long sixRetry = externalTaskUtilsAnony.calculateRetryDelay(3);
+        assertEquals(48000L, sixRetry);
+        long seventhRetry = externalTaskUtilsAnony.calculateRetryDelay(2);
+        assertEquals(78000L, seventhRetry);
+        long eigthRetry = externalTaskUtilsAnony.calculateRetryDelay(1);
+        assertEquals(120000L, eigthRetry);
+    }
+
+}
diff --git a/cxf-logging/pom.xml b/cxf-logging/pom.xml
index 2c891f2..f0c969a 100644
--- a/cxf-logging/pom.xml
+++ b/cxf-logging/pom.xml
@@ -37,11 +37,6 @@
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.onap.logging-analytics</groupId>
-      <artifactId>logging-slf4j</artifactId>
-      <version>1.2.2</version>
-    </dependency>
   </dependencies>
   <build>
     <resources>
diff --git a/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
index a6cce27..f6ac449 100644
--- a/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
+++ b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
@@ -75,7 +75,7 @@
 
     // CXF Appears to flatten headers to lower case
     private void setMDCPartnerName(Map<String, List<String>> headers) {
-        String partnerName = getValueOrDefault(headers, ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase(), "");
+        String partnerName = getValueOrDefault(headers, ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase(), "UNKNOWN");
         MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
     }
 
diff --git a/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
index 92b2668..3785d31 100644
--- a/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
+++ b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
@@ -51,7 +51,7 @@
             Exception ex = message.getContent(Exception.class);
             if (ex == null) {
                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE,
-                        ONAPLogConstants.ResponseStatus.COMPLETED.toString());
+                        ONAPLogConstants.ResponseStatus.COMPLETE.toString());
             } else {
                 int responseCode = 0;
                 responseCode = (int) message.get(Message.RESPONSE_CODE);
diff --git a/deployment-configs/src/main/resources/logger/logback-spring.xml b/deployment-configs/src/main/resources/logger/logback-spring.xml
new file mode 100644
index 0000000..607d7b1
--- /dev/null
+++ b/deployment-configs/src/main/resources/logger/logback-spring.xml
@@ -0,0 +1,231 @@
+<!-- ============LICENSE_START======================================================= 
+	ECOMP MSO ================================================================================ 
+	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========================================================= -->
+
+<configuration scan="false" debug="false">
+	<contextListener class="org.onap.so.logger.LoggerStartupListener" />
+
+	<property name="queueSize" value="256" />
+	<property name="maxFileSize" value="200MB" />
+	<property name="maxHistory" value="30" />
+	<property name="totalSizeCap" value="10GB" />
+
+	<!-- log file names -->
+	<property name="errorLogName" value="error" />
+	<property name="metricsLogName" value="metrics" />
+	<property name="auditLogName" value="audit" />
+	<property name="debugLogName" value="debug" />
+	<property name="cadiLogName" value="cadi" />
+	
+	<property name="currentTimeStamp" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;,UTC}"/>
+
+	<property name="errorPattern"
+		value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+
+	<property name="debugPattern"
+		value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%logger{50} - %msg%n" />
+
+	<property name="auditPattern"
+		value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%marker|%mdc|||%msg%n" />
+
+	<property name="metricPattern"
+		value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|%marker|%mdc|||%msg%n" />
+
+	<property name="defaultPattern"
+		value="%nopexception%logger
+                \t%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}
+                \t%level
+                \t%replace(%replace(%message){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%mdc){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%rootException){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%marker){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%thread
+                \t%n" />
+
+	<appender name="Audit"
+		class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">				
+				<marker>EXIT</marker>
+			</evaluator>
+			<onMismatch>DENY</onMismatch>
+			<onMatch>ACCEPT</onMatch>
+		</filter>
+		<file>${logs_dir:-.}/${auditLogName}.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${logs_dir:-.}/${auditLogName}.%d{yyyy-MM-dd}.%i.log.zip
+			</fileNamePattern>
+			<maxFileSize>${maxFileSize}</maxFileSize>
+			<maxHistory>${maxHistory}</maxHistory>
+			<totalSizeCap>${totalSizeCap}</totalSizeCap>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${auditPattern}</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="asyncAudit" class="ch.qos.logback.classic.AsyncAppender">
+		<queueSize>256</queueSize>
+		<appender-ref ref="Audit" />
+	</appender>
+
+	<appender name="Metric"
+		class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">				
+				<marker>INVOKE-RETURN</marker>
+			</evaluator>
+			<onMismatch>DENY</onMismatch>
+			<onMatch>ACCEPT</onMatch>
+		</filter>
+		<file>${logs_dir:-.}/${metricsLogName}.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${logs_dir:-.}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log.zip
+			</fileNamePattern>
+			<maxFileSize>${maxFileSize}</maxFileSize>
+			<maxHistory>${maxHistory}</maxHistory>
+			<totalSizeCap>${totalSizeCap}</totalSizeCap>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${metricPattern}</pattern>
+		</encoder>
+	</appender>
+
+
+	<appender name="asyncMetric" class="ch.qos.logback.classic.AsyncAppender">
+		<queueSize>256</queueSize>
+		<appender-ref ref="Metric" />
+	</appender>
+
+	<appender name="Error"
+		class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+		<file>${logs_dir:-.}/${errorLogName}.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${logs_dir:-.}/${errorLogName}.%d{yyyy-MM-dd}.%i.log.zip
+			</fileNamePattern>
+			<maxFileSize>${maxFileSize}</maxFileSize>
+			<maxHistory>${maxHistory}</maxHistory>
+			<totalSizeCap>${totalSizeCap}</totalSizeCap>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${errorPattern}</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="asyncError" class="ch.qos.logback.classic.AsyncAppender">
+		<queueSize>256</queueSize>
+		<appender-ref ref="Error" />
+	</appender>
+
+	<appender name="Debug"
+		class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+				<marker>INVOKE</marker>
+				<marker>INVOKE-RETURN</marker>
+				<marker>ENTRY</marker>
+				<marker>EXIT</marker>
+			</evaluator>
+			<onMismatch>ACCEPT</onMismatch>
+			<onMatch>DENY</onMatch>
+		</filter>
+		<file>${logs_dir:-.}/${debugLogName}.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${logs_dir:-.}/${debugLogName}.%d{yyyy-MM-dd}.%i.log.zip
+			</fileNamePattern>
+			<maxFileSize>${maxFileSize}</maxFileSize>
+			<maxHistory>${maxHistory}</maxHistory>
+			<totalSizeCap>${totalSizeCap}</totalSizeCap>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${debugPattern}</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="asyncDebug" class="ch.qos.logback.classic.AsyncAppender">
+		<queueSize>256</queueSize>
+		<appender-ref ref="Debug" />
+		<includeCallerData>true</includeCallerData>
+	</appender>
+	
+	<appender name="Cadi"
+		class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${logs_dir:-.}/${cadiLogName}.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${logs_dir:-.}/${cadiLogName}.%d{yyyy-MM-dd}.%i.log.zip
+			</fileNamePattern>
+			<maxFileSize>${maxFileSize}</maxFileSize>
+			<maxHistory>${maxHistory}</maxHistory>
+			<totalSizeCap>${totalSizeCap}</totalSizeCap>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${debugPattern}</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="asyncCadi" class="ch.qos.logback.classic.AsyncAppender">
+		<queueSize>256</queueSize>
+		<appender-ref ref="Cadi" />
+		<includeCallerData>true</includeCallerData>
+	</appender>
+
+	<!-- Spring related loggers -->
+	<logger name="org.springframework" level="WARN" />
+	<logger
+		name="org.springframework.security.authentication.dao.DaoAuthenticationProvider"
+		level="DEBUG" />
+
+	<!-- Camunda related loggers -->
+	<logger name="org.camunda.bpm.engine.jobexecutor.level" level="DEBUG" />
+	<logger
+		name="org.camunda.bpm.engine.impl.persistence.entity.JobEntity.level"
+		level="DEBUG" />
+
+	<logger name="org.flywaydb" level="DEBUG"/>
+	<logger name="org.apache.wire" level="DEBUG" />
+	<logger name="org.onap" level="DEBUG" />
+	<logger name="org.apache.cxf.interceptor" level="DEBUG" />
+	<logger name="com.woorea.openstack.connector" level="DEBUG" />
+	
+	<!-- AAF Logs go here-->
+	<logger name="org.apache.catalina.core.ContainerBase" level="INFO" additivity="false">
+		<appender-ref ref="asyncCadi" />
+	</logger>
+	
+	<logger name="org.reflections.Reflections" level="ERROR" additivity="false">
+		<appender-ref ref="asyncCadi" />
+	</logger>
+
+	<logger name="AUDIT" level="INFO" additivity="false">
+		<appender-ref ref="asyncAudit" />
+	</logger>
+
+	<logger name="METRIC" level="INFO" additivity="false">
+		<appender-ref ref="asyncMetric" />
+	</logger>
+
+	<root level="INFO">
+		<appender-ref ref="asyncDebug" />
+		<appender-ref ref="asyncError" />
+		<appender-ref ref="asyncAudit" />
+		<appender-ref ref="asyncMetric" />
+	</root>
+
+</configuration>
diff --git a/mso-api-handlers/mso-api-handler-infra/pom.xml b/mso-api-handlers/mso-api-handler-infra/pom.xml
index a3b9827..bb726e6 100644
--- a/mso-api-handlers/mso-api-handler-infra/pom.xml
+++ b/mso-api-handlers/mso-api-handler-infra/pom.xml
@@ -18,7 +18,7 @@
     <camunda.bpm.assert.version>1.2</camunda.bpm.assert.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <swagger-version>1.3.0</swagger-version>
+    <swagger.version>2.0.8</swagger.version>
     <jax-rs-version>1.1.1</jax-rs-version>
     <json4s-jackson-version>3.6.0</json4s-jackson-version>
     <json4s-core-version>3.6.0</json4s-core-version>
@@ -56,10 +56,16 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-jersey2-jaxrs</artifactId>
-      <version>1.5.16</version>
+      <groupId>io.swagger.core.v3</groupId>
+      <artifactId>swagger-annotations</artifactId>
+      <version>${swagger.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.swagger.core.v3</groupId>
+      <artifactId>swagger-jaxrs2</artifactId>
+      <version>2.0.6</version>
     </dependency>
     <dependency>
       <groupId>com.h2database</groupId>
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ApiHandlerApplication.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ApiHandlerApplication.java
index 5beb481..482fd88 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ApiHandlerApplication.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ApiHandlerApplication.java
@@ -21,7 +21,7 @@
 package org.onap.so.apihandlerinfra;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
index d3a279f..6509220 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
@@ -76,13 +76,19 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/e2eServiceInstances")
-@Api(value = "/onap/so/infra/e2eServiceInstances", description = "API Requests for E2E Service Instances")
+@OpenAPIDefinition(info = @Info(title = "/onap/so/infra/e2eServiceInstances",
+        description = "API Requests for E2E Service Instances"))
+
 public class E2EServiceInstances {
 
     private HashMap<String, String> instanceIdMap = new HashMap<>();
@@ -119,7 +125,8 @@
     @Path("/{version:[vV][3-5]}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create an E2E Service Instance on a version provided", response = Response.class)
+    @Operation(description = "Create an E2E Service Instance on a version provided", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response createE2EServiceInstance(String request, @PathParam("version") String version) throws ApiException {
 
         return processE2EserviceInstances(request, Action.createInstance, null, version);
@@ -135,8 +142,9 @@
     @Path("/{version:[vV][3-5]}/{serviceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update an E2E Service Instance on a version provided and serviceId",
-            response = Response.class)
+    @Operation(description = "Update an E2E Service Instance on a version provided and serviceId",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response updateE2EServiceInstance(String request, @PathParam("version") String version,
             @PathParam("serviceId") String serviceId) throws ApiException {
 
@@ -155,7 +163,9 @@
     @Path("/{version:[vV][3-5]}/{serviceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete E2E Service Instance on a specified version and serviceId", response = Response.class)
+    @Operation(description = "Delete E2E Service Instance on a specified version and serviceId",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response deleteE2EServiceInstance(String request, @PathParam("version") String version,
             @PathParam(SERVICE_ID) String serviceId) throws ApiException {
 
@@ -166,8 +176,9 @@
 
     @GET
     @Path("/{version:[vV][3-5]}/{serviceId}/operations/{operationId}")
-    @ApiOperation(value = "Find e2eServiceInstances Requests for a given serviceId and operationId",
-            response = Response.class)
+    @Operation(description = "Find e2eServiceInstances Requests for a given serviceId and operationId",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Produces(MediaType.APPLICATION_JSON)
     public Response getE2EServiceInstances(@PathParam(SERVICE_ID) String serviceId,
             @PathParam("version") String version, @PathParam("operationId") String operationId) {
@@ -184,7 +195,8 @@
     @Path("/{version:[vV][3-5]}/{serviceId}/scale")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Scale E2E Service Instance on a specified version", response = Response.class)
+    @Operation(description = "Scale E2E Service Instance on a specified version", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response scaleE2EServiceInstance(String request, @PathParam("version") String version,
             @PathParam(SERVICE_ID) String serviceId) throws ApiException {
 
@@ -203,9 +215,10 @@
     @Path("/{version:[vV][3-5]}/{serviceId}/modeldifferences")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(
-            value = "Find added and deleted resources of target model for the e2eserviceInstance on a given serviceId ",
-            response = Response.class)
+    @Operation(
+            description = "Find added and deleted resources of target model for the e2eserviceInstance on a given serviceId ",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response compareModelwithTargetVersion(String request, @PathParam("serviceId") String serviceId,
             @PathParam("version") String version) throws ApiException {
 
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandler.java
index 0379ae3..5327211 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandler.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandler.java
@@ -53,13 +53,18 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 
 @Component
 @Path("/globalhealthcheck")
-@Api(value = "/globalhealthcheck", description = "APIH Infra Global Health Check")
+@OpenAPIDefinition(info = @Info(title = "/globalhealthcheck", description = "APIH Infra Global Health Check"))
 public class GlobalHealthcheckHandler {
     private static Logger logger = LoggerFactory.getLogger(GlobalHealthcheckHandler.class);
     protected static final String CONTEXTPATH_PROPERTY = "management.endpoints.web.base-path";
@@ -98,7 +103,8 @@
 
     @GET
     @Produces("application/json")
-    @ApiOperation(value = "Performing global health check", response = Response.class)
+    @Operation(description = "Performing global health check", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response globalHealthcheck(@DefaultValue("true") @QueryParam("enableBpmn") boolean enableBpmn,
             @Context ContainerRequestContext requestContext) {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/InstanceManagement.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/InstanceManagement.java
index 15572f2..d3bd769 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/InstanceManagement.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/InstanceManagement.java
@@ -23,8 +23,6 @@
 
 package org.onap.so.apihandlerinfra;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.apache.http.HttpStatus;
 import org.onap.so.apihandler.common.ErrorNumbers;
 import org.onap.so.apihandler.common.RequestClientParameter;
@@ -61,10 +59,18 @@
 import javax.ws.rs.core.Response;
 import java.io.IOException;
 import java.util.HashMap;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/instanceManagement")
-@Api(value = "/onap/so/infra/instanceManagement", description = "Infrastructure API Requests for Instance Management")
+@OpenAPIDefinition(info = @Info(title = "/onap/so/infra/instanceManagement",
+        description = "Infrastructure API Requests for Instance Management"))
 public class InstanceManagement {
 
     private static Logger logger = LoggerFactory.getLogger(InstanceManagement.class);
@@ -87,7 +93,8 @@
     @Path("/{version:[vV][1]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/workflows/{workflowUuid}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Execute custom workflow", response = Response.class)
+    @Operation(description = "Execute custom workflow", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response executeCustomWorkflow(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/JerseyConfiguration.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/JerseyConfiguration.java
index e162a67..271efdd 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/JerseyConfiguration.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/JerseyConfiguration.java
@@ -20,10 +20,15 @@
 
 package org.onap.so.apihandlerinfra;
 
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import javax.annotation.PostConstruct;
+import javax.servlet.ServletConfig;
 import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Context;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.servlet.ServletProperties;
+import org.onap.logging.filter.base.Constants;
 import org.onap.so.apihandler.filters.RequestIdFilter;
 import org.onap.so.apihandlerinfra.exceptions.ApiExceptionMapper;
 import org.onap.so.apihandlerinfra.infra.rest.Network;
@@ -39,12 +44,16 @@
 import org.onap.so.apihandlerinfra.tenantisolation.CloudOrchestration;
 import org.onap.so.apihandlerinfra.tenantisolation.CloudResourcesOrchestration;
 import org.onap.so.apihandlerinfra.tenantisolation.ModelDistributionRequest;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.onap.so.web.exceptions.RuntimeExceptionMapper;
 import org.springframework.context.annotation.Configuration;
-import io.swagger.jaxrs.config.BeanConfig;
-import io.swagger.jaxrs.listing.ApiListingResource;
-import io.swagger.jaxrs.listing.SwaggerSerializers;
+import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder;
+import io.swagger.v3.jaxrs2.integration.resources.AcceptHeaderOpenApiResource;
+import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;
+import io.swagger.v3.oas.integration.OpenApiConfigurationException;
+import io.swagger.v3.oas.integration.SwaggerConfiguration;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
 
 @Configuration
 @ApplicationPath("/")
@@ -52,6 +61,7 @@
 
     @PostConstruct
     public void setUp() {
+        System.setProperty(Constants.Property.PARTNER_NAME, "SO.APIH");
         register(GlobalHealthcheckHandler.class);
         register(NodeHealthcheckHandler.class);
         register(ServiceInstances.class);
@@ -64,11 +74,11 @@
         register(Network.class);
         register(Volumes.class);
         register(ServiceInstance.class);
-        register(JaxRsFilterLogging.class);
+        register(SOAuditLogContainerFilter.class);
         register(ManualTasks.class);
         register(TasksHandler.class);
-        register(ApiListingResource.class);
-        register(SwaggerSerializers.class);
+        register(OpenApiResource.class);
+        register(AcceptHeaderOpenApiResource.class);
         register(ApiExceptionMapper.class);
         register(RuntimeExceptionMapper.class);
         register(RequestIdFilter.class);
@@ -86,12 +96,21 @@
         register(com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider.class);
         register(ModelDistributionRequest.class);
         property(ServletProperties.FILTER_FORWARD_ON_404, true);
-        BeanConfig beanConfig = new BeanConfig();
-        beanConfig.setVersion("1.0.2");
-        beanConfig.setSchemes(new String[] {"https"});
-        beanConfig.setResourcePackage("org.onap.so.apihandlerinfra");
-        beanConfig.setPrettyPrint(true);
-        beanConfig.setScan(true);
+
+        OpenAPI oas = new OpenAPI();
+        Info info = new Info();
+        info.title("Swagger apihandlerinfra bootstrap code");
+        info.setVersion("1.0.2");
+
+        SwaggerConfiguration oasConfig = new SwaggerConfiguration().openAPI(oas).prettyPrint(true)
+                .resourcePackages(Stream.of("org.onap.so.apihandlerinfra").collect(Collectors.toSet()));
+
+        try {
+            new JaxrsOpenApiContextBuilder().application(this).openApiConfiguration(oasConfig).buildContext(true);
+        } catch (OpenApiConfigurationException e) {
+            throw new RuntimeException(e.getMessage(), e);
+        }
+
     }
 
 }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ManualTasks.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ManualTasks.java
index b9b7fcc..4bafb40 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ManualTasks.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ManualTasks.java
@@ -34,7 +34,6 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.onap.so.logger.LoggingAnchor;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
 import org.onap.so.apihandler.common.ErrorNumbers;
@@ -52,6 +51,7 @@
 import org.onap.so.apihandlerinfra.tasksbeans.Variables;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.ErrorCode;
+import org.onap.so.logger.LoggingAnchor;
 import org.onap.so.logger.MessageEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -60,8 +60,11 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
-import io.swagger.annotations.ApiOperation;
-
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Path("/tasks")
 @Component
@@ -85,7 +88,8 @@
     @Path("/{version:[vV]1}/{taskId}/complete")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Complete specified task", response = Response.class)
+    @Operation(description = "Complete specified task", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response completeTask(String request, @PathParam("version") String version,
             @PathParam("taskId") String taskId, @Context ContainerRequestContext requestContext) throws ApiException {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/NodeHealthcheckHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/NodeHealthcheckHandler.java
index 3337c62..e56ee24 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/NodeHealthcheckHandler.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/NodeHealthcheckHandler.java
@@ -22,7 +22,19 @@
 
 package org.onap.so.apihandlerinfra;
 
-import java.net.UnknownHostException;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import org.apache.http.HttpStatus;
+import org.onap.so.logger.LoggingAnchor;
+import org.onap.so.logger.MessageEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
 import javax.transaction.Transactional;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
@@ -30,17 +42,10 @@
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
-import org.onap.so.logger.LoggingAnchor;
-import org.apache.http.HttpStatus;
-import org.onap.so.logger.MessageEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import java.net.UnknownHostException;
 
 @Path("/nodehealthcheck")
-@Api(value = "/nodehealthcheck", description = "API Handler Infra Node Health Check")
+@OpenAPIDefinition(info = @Info(title = "/nodehealthcheck", description = "API Handler Infra Node Health Check"))
 @Component
 public class NodeHealthcheckHandler {
 
@@ -53,7 +58,8 @@
 
     @GET
     @Produces("text/html")
-    @ApiOperation(value = "Performing node health check", response = Response.class)
+    @Operation(description = "Performing node health check", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response nodeHealthcheck(@Context ContainerRequestContext requestContext) throws UnknownHostException {
         // Generated RequestId
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
index 8896e93..b49f9b5 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
@@ -73,12 +73,19 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 
 @Path("onap/so/infra/orchestrationRequests")
-@Api(value = "onap/so/infra/orchestrationRequests", description = "API Requests for Orchestration requests")
+@OpenAPIDefinition(info = @Info(title = "onap/so/infra/orchestrationRequests",
+        description = "API Requests for Orchestration requests"))
+
 @Component
 public class OrchestrationRequests {
 
@@ -99,7 +106,8 @@
 
     @GET
     @Path("/{version:[vV][4-7]}/{requestId}")
-    @ApiOperation(value = "Find Orchestrated Requests for a given requestId", response = Response.class)
+    @Operation(description = "Find Orchestrated Requests for a given requestId", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Produces(MediaType.APPLICATION_JSON)
     @Transactional
     public Response getOrchestrationRequest(@PathParam("requestId") String requestId,
@@ -164,7 +172,8 @@
 
     @GET
     @Path("/{version:[vV][4-7]}")
-    @ApiOperation(value = "Find Orchestrated Requests for a URI Information", response = Response.class)
+    @Operation(description = "Find Orchestrated Requests for a URI Information", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Produces(MediaType.APPLICATION_JSON)
     @Transactional
     public Response getOrchestrationRequest(@Context UriInfo ui, @PathParam("version") String version,
@@ -221,7 +230,8 @@
     @Path("/{version: [vV][4-7]}/{requestId}/unlock")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Unlock Orchestrated Requests for a given requestId", response = Response.class)
+    @Operation(description = "Unlock Orchestrated Requests for a given requestId", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response unlockOrchestrationRequest(String requestJSON, @PathParam("requestId") String requestId,
             @PathParam("version") String version) throws ApiException {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/RequestHandlerUtils.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/RequestHandlerUtils.java
index 2fddfd9..dc38d4e 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/RequestHandlerUtils.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/RequestHandlerUtils.java
@@ -4,6 +4,7 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ================================================================================
  * Modifications Copyright (c) 2019 Samsung
  * ================================================================================
@@ -84,7 +85,6 @@
 import org.springframework.core.env.Environment;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestClientException;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequest.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequest.java
index ed300d9..b462415 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequest.java
@@ -57,11 +57,17 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.HttpClientErrorException;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Path("onap/so/infra/orchestrationRequests")
-@Api(value = "onap/so/infra/orchestrationRequests")
+@OpenAPIDefinition(info = @Info(title = "onap/so/infra/orchestrationRequests"))
+
 @Component
 public class ResumeOrchestrationRequest {
     private static Logger logger = LoggerFactory.getLogger(ResumeOrchestrationRequest.class);
@@ -84,7 +90,8 @@
     @Path("/{version:[vV][7]}/{requestId}/resume")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Resume request for a given requestId", response = Response.class)
+    @Operation(description = "Resume request for a given requestId", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response resumeOrchestrationRequest(@PathParam("requestId") String requestId,
             @PathParam("version") String version, @Context ContainerRequestContext requestContext) throws ApiException {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
index 9b72bdc..da101a2 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
@@ -89,16 +89,19 @@
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/serviceInstantiation")
-@Api(value = "/onap/so/infra/serviceInstantiation", description = "Infrastructure API Requests for Service Instances")
+@OpenAPIDefinition(info = @Info(title = "/onap/so/infra/serviceInstantiation",
+        description = "Infrastructure API Requests for Service Instances"))
 public class ServiceInstances extends AbstractRestHandler {
 
     private static Logger logger = LoggerFactory.getLogger(MsoRequest.class);
@@ -132,7 +135,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create a Service Instance on a version provided", response = Response.class)
+    @Operation(description = "Create a Service Instance on a version provided", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createServiceInstance(String request, @PathParam("version") String version,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -145,7 +149,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/activate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Activate provided Service Instance", response = Response.class)
+    @Operation(description = "Activate provided Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response activateServiceInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -161,7 +166,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/deactivate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Deactivate provided Service Instance", response = Response.class)
+    @Operation(description = "Deactivate provided Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deactivateServiceInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -177,7 +183,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided Service Instance", response = Response.class)
+    @Operation(description = "Delete provided Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteServiceInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -193,7 +200,8 @@
     @Path("/{version:[vV][7]}/serviceInstances/assign")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Assign Service Instance", response = Response.class)
+    @Operation(description = "Assign Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response assignServiceInstance(String request, @PathParam("version") String version,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -206,7 +214,8 @@
     @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/unassign")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Unassign Service Instance", response = Response.class)
+    @Operation(description = "Unassign Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response unassignServiceInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -222,7 +231,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create Port Mirroring Configuration", response = Response.class)
+    @Operation(description = "Create Port Mirroring Configuration", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createPortConfiguration(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -238,7 +248,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided Port", response = Response.class)
+    @Operation(description = "Delete provided Port", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deletePortConfiguration(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -256,7 +267,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/enablePort")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Enable Port Mirroring", response = Response.class)
+    @Operation(description = "Enable Port Mirroring", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response enablePort(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -274,7 +286,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/disablePort")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Disable Port Mirroring", response = Response.class)
+    @Operation(description = "Disable Port Mirroring", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response disablePort(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -292,7 +305,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/activate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Activate Port Mirroring", response = Response.class)
+    @Operation(description = "Activate Port Mirroring", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response activatePort(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -310,7 +324,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/deactivate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Deactivate Port Mirroring", response = Response.class)
+    @Operation(description = "Deactivate Port Mirroring", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deactivatePort(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -328,7 +343,8 @@
     @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/addRelationships")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Add Relationships to a Service Instance", response = Response.class)
+    @Operation(description = "Add Relationships to a Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response addRelationships(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -344,7 +360,8 @@
     @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/removeRelationships")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Remove Relationships from Service Instance", response = Response.class)
+    @Operation(description = "Remove Relationships from Service Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response removeRelationships(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -360,7 +377,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create VNF on a specified version and serviceInstance", response = Response.class)
+    @Operation(description = "Create VNF on a specified version and serviceInstance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createVnfInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -381,7 +399,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/replace")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Replace provided VNF instance", response = Response.class)
+    @Operation(description = "Replace provided VNF instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response replaceVnfInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -398,8 +417,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update VNF on a specified version, serviceInstance and vnfInstance",
-            response = Response.class)
+    @Operation(description = "Update VNF on a specified version, serviceInstance and vnfInstance",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response updateVnfInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -416,7 +436,8 @@
     @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/applyUpdatedConfig")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Apply updated configuration", response = Response.class)
+    @Operation(description = "Apply updated configuration", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response applyUpdatedConfig(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -432,7 +453,8 @@
     @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/recreate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Recreate VNF Instance", response = Response.class)
+    @Operation(description = "Recreate VNF Instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     public Response recreateVnfInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -448,7 +470,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided VNF instance", response = Response.class)
+    @Operation(description = "Delete provided VNF instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteVnfInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -465,8 +488,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create VfModule on a specified version, serviceInstance and vnfInstance",
-            response = Response.class)
+    @Operation(description = "Create VfModule on a specified version, serviceInstance and vnfInstance",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createVfModuleInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -483,8 +507,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/replace")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create VfModule on a specified version, serviceInstance and vnfInstance",
-            response = Response.class)
+    @Operation(description = "Create VfModule on a specified version, serviceInstance and vnfInstance",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response replaceVfModuleInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -503,8 +528,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update VfModule on a specified version, serviceInstance, vnfInstance and vfModule",
-            response = Response.class)
+    @Operation(description = "Update VfModule on a specified version, serviceInstance, vnfInstance and vfModule",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response updateVfModuleInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -523,7 +549,8 @@
     @Path("/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/inPlaceSoftwareUpdate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Perform VNF software update", response = Response.class)
+    @Operation(description = "Perform VNF software update", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response inPlaceSoftwareUpdate(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -540,7 +567,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided VfModule instance", response = Response.class)
+    @Operation(description = "Delete provided VfModule instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteVfModuleInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -559,7 +587,8 @@
     @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/deactivateAndCloudDelete")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Deactivate and Cloud Delete VfModule instance", response = Response.class)
+    @Operation(description = "Deactivate and Cloud Delete VfModule instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deactivateAndCloudDeleteVfModuleInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -579,7 +608,8 @@
     @Path("/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/scaleOut")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "VF Auto Scale Out", response = Response.class)
+    @Operation(description = "VF Auto Scale Out", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response scaleOutVfModule(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -596,8 +626,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create VolumeGroup on a specified version, serviceInstance, vnfInstance",
-            response = Response.class)
+    @Operation(description = "Create VolumeGroup on a specified version, serviceInstance, vnfInstance",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createVolumeGroupInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -614,8 +645,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update VolumeGroup on a specified version, serviceInstance, vnfInstance and volumeGroup",
-            response = Response.class)
+    @Operation(description = "Update VolumeGroup on a specified version, serviceInstance, vnfInstance and volumeGroup",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response updateVolumeGroupInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -634,7 +666,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided VolumeGroup instance", response = Response.class)
+    @Operation(description = "Delete provided VolumeGroup instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteVolumeGroupInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
@@ -653,8 +686,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create NetworkInstance on a specified version and serviceInstance ",
-            response = Response.class)
+    @Operation(description = "Create NetworkInstance on a specified version and serviceInstance ",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createNetworkInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
@@ -670,8 +704,9 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update VolumeGroup on a specified version, serviceInstance, networkInstance",
-            response = Response.class)
+    @Operation(description = "Update VolumeGroup on a specified version, serviceInstance, networkInstance",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response updateNetworkInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -689,7 +724,8 @@
     @Path("/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided Network instance", response = Response.class)
+    @Operation(description = "Delete provided Network instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteNetworkInstance(String request, @PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
@@ -707,7 +743,8 @@
     @Path("/{version:[vV][7]}/instanceGroups")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create instanceGroups", response = Response.class)
+    @Operation(description = "Create instanceGroups", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createInstanceGroups(String request, @PathParam("version") String version,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -720,7 +757,8 @@
     @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete instanceGroup", response = Response.class)
+    @Operation(description = "Delete instanceGroup", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteInstanceGroups(@PathParam("version") String version,
             @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
@@ -736,7 +774,8 @@
     @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}/addMembers")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Add instanceGroup members", response = Response.class)
+    @Operation(description = "Add instanceGroup members", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response addInstanceGroupMembers(String request, @PathParam("version") String version,
             @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
@@ -752,7 +791,8 @@
     @Path("/{version:[vV][7]}/instanceGroups/{instanceGroupId}/removeMembers")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Remove instanceGroup members", response = Response.class)
+    @Operation(description = "Remove instanceGroup members", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response removeInstanceGroupMembers(String request, @PathParam("version") String version,
             @PathParam("instanceGroupId") String instanceGroupId, @Context ContainerRequestContext requestContext)
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/TasksHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/TasksHandler.java
index 3c4c90c..09a1d9e 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/TasksHandler.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/TasksHandler.java
@@ -36,7 +36,6 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
 import org.json.JSONArray;
-import org.json.JSONException;
 import org.json.JSONObject;
 import org.onap.so.apihandler.common.ErrorNumbers;
 import org.onap.so.apihandler.common.RequestClient;
@@ -60,11 +59,16 @@
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Path("onap/so/infra/tasks")
-@Api(value = "onap/so/infra/tasks", description = "Queries of Manual Tasks")
+@OpenAPIDefinition(info = @Info(title = "onap/so/infra/tasks", description = "Queries of Manual Tasks"))
 @Component
 public class TasksHandler {
 
@@ -82,7 +86,8 @@
 
     @Path("/{version:[vV]1}")
     @GET
-    @ApiOperation(value = "Finds Manual Tasks", response = Response.class)
+    @Operation(description = "Finds Manual Tasks", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response queryFilters(@QueryParam("taskId") String taskId,
             @QueryParam("originalRequestId") String originalRequestId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WorkflowSpecificationsHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WorkflowSpecificationsHandler.java
index b57bb5d..925d101 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WorkflowSpecificationsHandler.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WorkflowSpecificationsHandler.java
@@ -59,11 +59,17 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Path("onap/so/infra/workflowSpecifications")
-@Api(value = "onap/so/infra/workflowSpecifications", description = "Queries of Workflow Specifications")
+@OpenAPIDefinition(info = @Info(title = "onap/so/infra/workflowSpecifications",
+        description = "Queries of Workflow Specifications"))
 @Component
 public class WorkflowSpecificationsHandler {
 
@@ -79,7 +85,8 @@
 
     @Path("/{version:[vV]1}/workflows")
     @GET
-    @ApiOperation(value = "Finds Workflow Specifications", response = Response.class)
+    @Operation(description = "Finds Workflow Specifications", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
 
     public Response queryWorkflowSpecifications(@QueryParam("vnfModelVersionId") String vnfModelVersionId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
index ec3df21..483ac47 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
@@ -44,7 +44,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/serviceInstantiation")
@@ -61,7 +65,8 @@
     @Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete provided Network instance", response = Response.class)
+    @Operation(description = "Delete provided Network instance", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deleteNetworkInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
index 07e8092..135667d 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
@@ -44,7 +44,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/serviceInstantiation")
@@ -61,7 +65,8 @@
     @Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete a Service instance", response = ServiceInstancesResponse.class)
+    @Operation(description = "Delete a Service instance", responses = @ApiResponse(content = @Content(
+            array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
     @Transactional
     public Response deleteServiceInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
index 1b9eb1f..4a86d94 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
@@ -45,7 +45,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/serviceInstantiation")
@@ -62,7 +66,8 @@
     @Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete a VfModule instance", response = ServiceInstancesResponse.class)
+    @Operation(description = "Delete a VfModule instance", responses = @ApiResponse(content = @Content(
+            array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
     @Transactional
     public Response deleteVfModuleInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
index a8ccdee..edb0908 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
@@ -43,7 +43,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/serviceInstantiation")
@@ -60,7 +64,8 @@
     @Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete a Vnf instance", response = ServiceInstancesResponse.class)
+    @Operation(description = "Delete a Vnf instance", responses = @ApiResponse(content = @Content(
+            array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
     @Transactional
     public Response deleteVnfInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
index d3e394d..3154c86 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
@@ -46,7 +46,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component("VolumesV8")
 @Path("/onap/so/infra/serviceInstantiation")
@@ -66,7 +70,8 @@
     @Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Delete a VfModule instance", response = ServiceInstancesResponse.class)
+    @Operation(description = "Delete a VfModule instance", responses = @ApiResponse(content = @Content(
+            array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
     @Transactional
     public Response deleteVfModuleInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
index d3fb798..877376c 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
@@ -61,12 +61,18 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/cloudResources")
-@Api(value = "/onap/so/infra/cloudResources", description = "API Requests for cloud resources - Tenant Isolation")
+@OpenAPIDefinition(info = @Info(title = "/onap/so/infra/cloudResources",
+        description = "API Requests for cloud resources - Tenant Isolation"))
 public class CloudOrchestration {
 
     private static Logger logger = LoggerFactory.getLogger(CloudOrchestration.class);
@@ -85,7 +91,8 @@
     @Path("/{version:[vV][1]}/operationalEnvironments")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Create an Operational Environment", response = Response.class)
+    @Operation(description = "Create an Operational Environment", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response createOperationEnvironment(String request, @PathParam("version") String version,
             @Context ContainerRequestContext requestContext) throws ApiException {
@@ -97,7 +104,8 @@
     @Path("/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/activate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Activate an Operational Environment", response = Response.class)
+    @Operation(description = "Activate an Operational Environment", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response activateOperationEnvironment(String request, @PathParam("version") String version,
             @PathParam("operationalEnvironmentId") String operationalEnvironmentId,
@@ -112,7 +120,8 @@
     @Path("/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/deactivate")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Deactivate an Operational Environment", response = Response.class)
+    @Operation(description = "Deactivate an Operational Environment", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response deactivateOperationEnvironment(String request, @PathParam("version") String version,
             @PathParam("operationalEnvironmentId") String operationalEnvironmentId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
index e9cd303..47d6932 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
@@ -62,13 +62,18 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("onap/so/infra/cloudResourcesRequests")
-@Api(value = "onap/so/infra/cloudResourcesRequests",
-        description = "API GET Requests for cloud resources - Tenant Isolation")
+@OpenAPIDefinition(info = @Info(title = "onap/so/infra/cloudResourcesRequests",
+        description = "API GET Requests for cloud resources - Tenant Isolation"))
 public class CloudResourcesOrchestration {
 
     private static Logger logger = LoggerFactory.getLogger(CloudResourcesOrchestration.class);
@@ -83,7 +88,7 @@
     @Path("/{version: [vV][1]}/{requestId}/unlock")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Unlock CloudOrchestration requests for a specified requestId")
+    @Operation(description = "Unlock CloudOrchestration requests for a specified requestId")
     @Transactional
     public Response unlockOrchestrationRequest(String requestJSON, @PathParam("requestId") String requestId,
             @PathParam("version") String version) throws ApiException {
@@ -167,8 +172,9 @@
     @Path("/{version:[vV][1]}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Get status of an Operational Environment based on filter criteria",
-            response = Response.class)
+    @Operation(description = "Get status of an Operational Environment based on filter criteria",
+            responses = @ApiResponse(
+                    content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response getOperationEnvironmentStatusFilter(@Context UriInfo ui, @PathParam("version") String version)
             throws ApiException {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequest.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequest.java
index ef5abe9..2f92222 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequest.java
@@ -55,12 +55,18 @@
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 @Component
 @Path("/onap/so/infra/modelDistributions")
-@Api(value = "/onap/so/infra/modelDistributions", description = "API Requests for Model Distributions")
+@OpenAPIDefinition(
+        info = @Info(title = "/onap/so/infra/modelDistributions", description = "API Requests for Model Distributions"))
 public class ModelDistributionRequest {
 
     private static Logger logger = LoggerFactory.getLogger(ModelDistributionRequest.class);
@@ -71,7 +77,8 @@
     @Path("/{version:[vV][1]}/distributions/{distributionId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    @ApiOperation(value = "Update model distribution status", response = Response.class)
+    @Operation(description = "Update model distribution status", responses = @ApiResponse(
+            content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
     @Transactional
     public Response updateModelDistributionStatus(String requestJSON, @PathParam("version") String version,
             @PathParam("distributionId") String distributionId) throws ApiException {
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/SDCClientHelper.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/SDCClientHelper.java
index 18ca6d3..de5edb5 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/SDCClientHelper.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/SDCClientHelper.java
@@ -38,7 +38,7 @@
 import org.onap.so.logger.ErrorCode;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -105,7 +105,7 @@
 
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addBasicAuthHeader(sdcClientAuth, msoKey);
             httpClient.addAdditionalHeader("X-ECOMP-InstanceID", sdcActivateInstanceId);
             httpClient.addAdditionalHeader("X-ECOMP-RequestID", UUID.randomUUID().toString());
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/InstanceManagementTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/InstanceManagementTest.java
index 9fc9e4a..276f891 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/InstanceManagementTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/InstanceManagementTest.java
@@ -29,9 +29,10 @@
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -81,7 +82,7 @@
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
index ad0a878..8a112e3 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
@@ -28,15 +28,15 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
-import static org.onap.so.logger.MdcConstants.ECOMP_REQUEST_ID;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ECOMP_REQUEST_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.INVOCATION_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.PARTNER_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.LOG_TIMESTAMP;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.SERVICE_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
 import java.io.IOException;
 import java.util.Map;
 import javax.ws.rs.core.MediaType;
@@ -110,27 +110,27 @@
         assertThat(realResponse, sameBeanAs(expectedResponse));
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("tasks/v1/55/complete", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertEquals("INPROGRESS", mdc.get(RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("202", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("202", mdc.get(RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("tasks/v1/55/complete", mdc.get(SERVICE_NAME));
-                assertEquals("COMPLETE", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertEquals("COMPLETE", mdc.get(RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(RESPONSE_DESCRIPTION));
                 assertEquals("application/json", response.getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
                 assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
                 assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/RequestHandlerUtilsTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/RequestHandlerUtilsTest.java
index e4532cd..d0561a4 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/RequestHandlerUtilsTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/RequestHandlerUtilsTest.java
@@ -30,9 +30,10 @@
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -95,7 +96,7 @@
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
index 48a5343..94436d5 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
@@ -33,17 +33,10 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.HttpHeadersConstants.TRANSACTION_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -64,7 +57,6 @@
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.ServiceRecipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
-import org.onap.so.logger.HttpHeadersConstants;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
@@ -121,7 +113,7 @@
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
@@ -229,27 +221,29 @@
 
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
-                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances",
+                        mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("202", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
-                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances", mdc.get(SERVICE_NAME));
-                assertEquals("COMPLETE", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("202", mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances",
+                        mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("COMPLETE", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION));
                 assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
                 assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
                 assertEquals("5.0.0", response.getHeaders().get("X-LatestVersion").get(0));
@@ -406,6 +400,15 @@
                                 .withStatus(HttpStatus.SC_NOT_FOUND)));
 
         assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatusCode().value());
+
+        for (ILoggingEvent logEvent : TestAppender.events) {
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.SOAuditLogContainerFilter")
+                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
+                Map<String, String> mdc = logEvent.getMDCPropertyMap();
+                assertEquals("32807a28-1a14-4b88-b7b3-2950918aa76d", mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                assertNotNull(mdc.get("PartnerName"));
+            }
+        }
     }
 
     @Test
@@ -2571,11 +2574,11 @@
         assertEquals(response.getHeaders().get(TRANSACTION_ID).get(0), "32807a28-1a14-4b88-b7b3-2950918aa76d");
 
         for (ILoggingEvent logEvent : TestAppender.events) {
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertEquals("32807a28-1a14-4b88-b7b3-2950918aa76d", mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertEquals("VID", mdc.get(PARTNERNAME));
+                assertEquals("VID", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
             }
         }
     }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/client/grm/GRMClientTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/client/grm/GRMClientTest.java
index f178a3c..cfb865c 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/client/grm/GRMClientTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/client/grm/GRMClientTest.java
@@ -82,15 +82,15 @@
         boolean foundInvoke = false;
         boolean foundInvokeReturn = false;
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsClientLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals("GRM", mdc.get("TargetEntity"));
                 assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
                 foundInvoke = true;
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsClientLogging")
-                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE_RETURN")) {
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter")
+                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE-RETURN")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals("200", mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/InfraActiveRequestsReset.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/InfraActiveRequestsReset.sql
index 6d8e2e8..d557580 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/InfraActiveRequestsReset.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/InfraActiveRequestsReset.sql
@@ -1,10 +1,10 @@
-INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00032ab7-3fb3-42e5-965d-8ea592502017', '00032ab7-3fb3-42e5-965d-8ea592502016', 'deleteInstance', 'COMPLETE', 'Vf Module has been deleted successfully.', '100', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00032ab7-na18-42e5-965d-8ea592502018', '00032ab7-fake-42e5-965d-8ea592502018', 'deleteInstance', 'PENDING', 'Vf Module deletion pending.', '0', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails": {"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00093944-bf16-4373-ab9a-3adfe730ff2d', null, 'createInstance', 'FAILED', 'Error: Locked instance - This service (MSODEV_1707_SI_v10_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.', '100', '2017-07-11 18:33:26', '2017-07-11 18:33:26', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"Infra_v10_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_v10_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true}}', null, 'APIH', null, null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'service', 'createInstance', null, 'MSODEV_1707_SI_v10_011-4', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('001619d2-a297-4a4b-a9f5-e2823c88458f', '001619d2-a297-4a4b-a9f5-e2823c88458f', 'CREATE_VF_MODULE', 'COMPLETE', 'COMPLETED', '100', '2016-07-01 14:11:42', '2017-05-02 16:03:34', 'PORTAL', null, 'test-vscp', 'elena_test21', null, null, '381b9ff6c75e4625b7a4182f90fc68d3', null, null, null, '{"requestDetails": {"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}}', 'NONE', 'RDBTEST', '2016-07-01 14:11:42', 'VNF', null, null, null, 'MODULENAME1', 'moduleModelName', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb', 'mtn9', null, null, null, null, null, 'vfModule', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('5ffbabd6-b793-4377-a1ab-082670fbc7ac', '5ffbabd6-b793-4377-a1ab-082670fbc7ac', 'deleteInstance', 'PENDING', 'Vf Module deletion pending.', '0', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails": {"modelInfo": {"modelType": "vfModule","modelName": "test::base::module-0","modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671","modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671","modelVersion": "2","modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"},"cloudConfiguration": {"lcpCloudRegionId": "n6","tenantId": "0422ffb57ba042c0800a29dc85ca70f8"},"requestInfo": {"instanceName": "MSO-DEV-VF-1806BB-v10-base-it2-1","source": "VID","suppressRollback": false,"requestorId": "xxxxxx"},"relatedInstanceList": [{"relatedInstance": {"instanceId": "76fa8849-4c98-473f-b431-2590b192a653","modelInfo": {"modelType": "service","modelName": "Infra_v10_Service","modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671","modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671","modelVersion": "1.0"}}},{"relatedInstance": {"instanceId": "d57970e1-5075-48a5-ac5e-75f2d6e10f4c","modelInfo": {"modelType": "vnf","modelName": "v10","modelVersionId": "ff2ae348-214a-11e7-93ae-92361f002671","modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671","modelVersion": "1.0","modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671","modelCustomizationName": "v10 1"}}}],"requestParameters": {"usePreload": true,"userParams": []}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances');
-INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00164b9e-784d-48a8-8973-bbad6ef818ed', null, 'createInstance', 'COMPLETE', 'Service Instance was created successfully.', '100', '2017-09-28 12:45:51', '2017-09-28 12:45:53', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f","modelType":"service","modelNameVersionId":null,"modelName":"MSO Test Network","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":"DEV-n6-3100-0927-1","suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":null,"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"aicNodeClli":null,"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'CreateGenericALaCarteServiceInstance', '2017-09-28 12:45:52', null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'service', 'createInstance', 'b2f59173-b7e5-4e0f-8440-232fd601b865', 'DEV-n6-3100-0927-1', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00173cc9-5ce2-4673-a810-f87fefb2829e', null, 'createInstance', 'FAILED', 'Error parsing request.  No valid instanceName is specified', '100', '2017-04-14 21:08:46', '2017-04-14 21:08:46', 'VID', null, null, null, null, null, 'a259ae7b7c3f493cb3d91f95a7c18149', null, null, null, '{"modelInfo":{"modelInvariantId":"ff6163d4-7214-459e-9f76-507b4eb00f51","modelType":"service","modelName":"ConstraintsSrvcVID","modelVersion":"2.0","modelVersionId":"722d256c-a374-4fba-a14f-a59b76bb7656"},"requestInfo":{"productFamilyId":"LRSI-OSPF","source":"VID","requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"},"cloudConfiguration":{"tenantId":"a259ae7b7c3f493cb3d91f95a7c18149","lcpCloudRegionId":"mtn16"},"requestParameters":{"subscriptionServiceType":"Mobility","userParams":[{"name":"neutronport6_name","value":"8"},{"name":"neutronnet5_network_name","value":"8"},{"name":"contrailv2vlansubinterface3_name","value":"false"}]}}', null, 'APIH', null, null, null, null, null, null, null, null, 'mtn16', null, null, null, null, null, 'service', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('0017f68c-eb2d-45bb-b7c7-ec31b37dc349', null, 'activateInstance', 'UNLOCKED', null, '20', '2017-09-26 16:09:29', null, 'VID', null, null, null, null, null, null, null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"1587cf0e-f12f-478d-8530-5c55ac578c39","modelType":"configuration","modelNameVersionId":null,"modelName":null,"modelVersion":null,"modelCustomizationUuid":null,"modelVersionId":"36a3a8ea-49a6-4ac8-b06c-89a545444455","modelCustomizationId":"68dc9a92-214c-11e7-93ae-92361f002671","modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":null,"suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":[{"relatedInstance":{"instanceName":null,"instanceId":"9e15a443-af65-4f05-9000-47ae495e937d","modelInfo":{"modelCustomizationName":null,"modelInvariantId":"de19ae10-9a25-11e7-abc4-cec278b6b50a","modelType":"service","modelNameVersionId":null,"modelName":"Infra_Configuration_Service","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"ee938612-9a25-11e7-abc4-cec278b6b50a","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"instanceDirection":null}}],"subscriberInfo":null,"cloudConfiguration":{"aicNodeClli":null,"tenantId":null,"lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":null,"userParams":[],"aLaCarte":false,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'APIH', '2017-09-26 16:09:29', null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'configuration', 'activateInstance', '9e15a443-af65-4f05-9000-47ae495e937d', null, 'xxxxxx', '26ef7f15-57bb-48df-8170-e59edc26234c', null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
index 22f68e0..72922ae 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
@@ -1,12 +1,12 @@
 
 --Changes here should also be made in InfraActiveRequestsReset.sql to be re-inserted after tests
-INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00032ab7-3fb3-42e5-965d-8ea592502017', '00032ab7-3fb3-42e5-965d-8ea592502016', 'deleteInstance', 'COMPLETE', 'Vf Module has been deleted successfully.', '100', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00032ab7-na18-42e5-965d-8ea592502018', '00032ab7-fake-42e5-965d-8ea592502018', 'deleteInstance', 'PENDING', 'Vf Module deletion pending.', '0', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails": {"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, null),
 ('00093944-bf16-4373-ab9a-3adfe730ff2d', null, 'createInstance', 'FAILED', 'Error: Locked instance - This service (MSODEV_1707_SI_v10_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.', '100', '2017-07-11 18:33:26', '2017-07-11 18:33:26', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"Infra_v10_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_v10_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true}}', null, 'APIH', null, null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'service', 'createInstance', null, 'MSODEV_1707_SI_v10_011-4', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('001619d2-a297-4a4b-a9f5-e2823c88458f', '001619d2-a297-4a4b-a9f5-e2823c88458f', 'CREATE_VF_MODULE', 'COMPLETE', 'COMPLETED', '100', '2016-07-01 14:11:42', '2017-05-02 16:03:34', 'PORTAL', null, 'test-vscp', 'elena_test21', null, null, '381b9ff6c75e4625b7a4182f90fc68d3', null, null, null, '{"requestDetails": {"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}}}', 'NONE', 'RDBTEST', '2016-07-01 14:11:42', 'VNF', null, null, null, 'MODULENAME1', 'moduleModelName', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb', 'mtn9', null, null, null, null, null, 'vfModule', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('5ffbabd6-b793-4377-a1ab-082670fbc7ac', '5ffbabd6-b793-4377-a1ab-082670fbc7ac', 'deleteInstance', 'PENDING', 'Vf Module deletion pending.', '0', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails": {"modelInfo": {"modelType": "vfModule","modelName": "test::base::module-0","modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671","modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671","modelVersion": "2","modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"},"cloudConfiguration": {"lcpCloudRegionId": "n6","tenantId": "0422ffb57ba042c0800a29dc85ca70f8"},"requestInfo": {"instanceName": "MSO-DEV-VF-1806BB-v10-base-it2-1","source": "VID","suppressRollback": false,"requestorId": "xxxxxx"},"relatedInstanceList": [{"relatedInstance": {"instanceId": "76fa8849-4c98-473f-b431-2590b192a653","modelInfo": {"modelType": "service","modelName": "Infra_v10_Service","modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671","modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671","modelVersion": "1.0"}}},{"relatedInstance": {"instanceId": "d57970e1-5075-48a5-ac5e-75f2d6e10f4c","modelInfo": {"modelType": "vnf","modelName": "v10","modelVersionId": "ff2ae348-214a-11e7-93ae-92361f002671","modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671","modelVersion": "1.0","modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671","modelCustomizationName": "v10 1"}}}],"requestParameters": {"usePreload": true,"userParams": []}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'test::base::module-0', null, 'n6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances');
-INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO requestdb.infra_active_requests(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00164b9e-784d-48a8-8973-bbad6ef818ed', null, 'createInstance', 'COMPLETE', 'Service Instance was created successfully.', '100', '2017-09-28 12:45:51', '2017-09-28 12:45:53', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f","modelType":"service","modelNameVersionId":null,"modelName":"MSO Test Network","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":"DEV-n6-3100-0927-1","suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":null,"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"aicNodeClli":null,"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'CreateGenericALaCarteServiceInstance', '2017-09-28 12:45:52', null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'service', 'createInstance', 'b2f59173-b7e5-4e0f-8440-232fd601b865', 'DEV-n6-3100-0927-1', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00173cc9-5ce2-4673-a810-f87fefb2829e', null, 'createInstance', 'FAILED', 'Error parsing request.  No valid instanceName is specified', '100', '2017-04-14 21:08:46', '2017-04-14 21:08:46', 'VID', null, null, null, null, null, 'a259ae7b7c3f493cb3d91f95a7c18149', null, null, null, '{"modelInfo":{"modelInvariantId":"ff6163d4-7214-459e-9f76-507b4eb00f51","modelType":"service","modelName":"ConstraintsSrvcVID","modelVersion":"2.0","modelVersionId":"722d256c-a374-4fba-a14f-a59b76bb7656"},"requestInfo":{"productFamilyId":"LRSI-OSPF","source":"VID","requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"},"cloudConfiguration":{"tenantId":"a259ae7b7c3f493cb3d91f95a7c18149","lcpCloudRegionId":"mtn16"},"requestParameters":{"subscriptionServiceType":"Mobility","userParams":[{"name":"neutronport6_name","value":"8"},{"name":"neutronnet5_network_name","value":"8"},{"name":"contrailv2vlansubinterface3_name","value":"false"}]}}', null, 'APIH', null, null, null, null, null, null, null, null, 'mtn16', null, null, null, null, null, 'service', 'createInstance', null, null, null, null, null, null, null, null),
 ('0017f68c-eb2d-45bb-b7c7-ec31b37dc349', null, 'activateInstance', 'UNLOCKED', null, '20', '2017-09-26 16:09:29', null, 'VID', null, null, null, null, null, null, null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"1587cf0e-f12f-478d-8530-5c55ac578c39","modelType":"configuration","modelNameVersionId":null,"modelName":null,"modelVersion":null,"modelCustomizationUuid":null,"modelVersionId":"36a3a8ea-49a6-4ac8-b06c-89a545444455","modelCustomizationId":"68dc9a92-214c-11e7-93ae-92361f002671","modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":null,"suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":[{"relatedInstance":{"instanceName":null,"instanceId":"9e15a443-af65-4f05-9000-47ae495e937d","modelInfo":{"modelCustomizationName":null,"modelInvariantId":"de19ae10-9a25-11e7-abc4-cec278b6b50a","modelType":"service","modelNameVersionId":null,"modelName":"Infra_Configuration_Service","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"ee938612-9a25-11e7-abc4-cec278b6b50a","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"instanceDirection":null}}],"subscriberInfo":null,"cloudConfiguration":{"aicNodeClli":null,"tenantId":null,"lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":null,"userParams":[],"aLaCarte":false,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'APIH', '2017-09-26 16:09:29', null, null, null, null, null, null, null, 'n6', null, null, null, null, null, 'configuration', 'activateInstance', '9e15a443-af65-4f05-9000-47ae495e937d', null, 'xxxxxx', '26ef7f15-57bb-48df-8170-e59edc26234c', null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
index ee53e49..2129dc2 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
@@ -1276,7 +1276,7 @@
   `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
   `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
   `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
-  `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+  `CLOUD_REGION` varchar(11) DEFAULT NULL,
   `CALLBACK_URL` varchar(200) DEFAULT NULL,
   `CORRELATOR` varchar(80) DEFAULT NULL,
   `NETWORK_ID` varchar(45) DEFAULT NULL,
@@ -1329,7 +1329,7 @@
   `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
   `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
   `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
-  `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+  `CLOUD_REGION` varchar(11) DEFAULT NULL,
   `CALLBACK_URL` varchar(200) DEFAULT NULL,
   `CORRELATOR` varchar(80) DEFAULT NULL,
   `NETWORK_ID` varchar(45) DEFAULT NULL,
diff --git a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/afterMigrate.sql b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/afterMigrate.sql
index 43571e4..bfd3d21 100644
--- a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/afterMigrate.sql
+++ b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/afterMigrate.sql
@@ -4,7 +4,7 @@
 ('serviceid', 'operationid', 'servicename', 'userid', 'result', 'operationcontent', 'progress', 'reason', '2016-11-24 13:19:10', '2016-11-24 13:19:10'); 
 
 
-insert into infra_active_requests(request_id, client_request_id, action, request_status, status_message, progress, start_time, end_time, source, vnf_id, vnf_name, vnf_type, service_type, aic_node_clli, tenant_id, prov_status, vnf_params, vnf_outputs, request_body, response_body, last_modified_by, modify_time, request_type, volume_group_id, volume_group_name, vf_module_id, vf_module_name, vf_module_model_name, aai_service_id, aic_cloud_region, callback_url, correlator, network_id, network_name, network_type, request_scope, request_action, service_instance_id, service_instance_name, requestor_id, configuration_id, configuration_name, operational_env_id, operational_env_name, request_url) values
+insert into infra_active_requests(request_id, client_request_id, action, request_status, status_message, progress, start_time, end_time, source, vnf_id, vnf_name, vnf_type, service_type, aic_node_clli, tenant_id, prov_status, vnf_params, vnf_outputs, request_body, response_body, last_modified_by, modify_time, request_type, volume_group_id, volume_group_name, vf_module_id, vf_module_name, vf_module_model_name, aai_service_id, cloud_region, callback_url, correlator, network_id, network_name, network_type, request_scope, request_action, service_instance_id, service_instance_name, requestor_id, configuration_id, configuration_name, operational_env_id, operational_env_name, request_url) values
 ('00032ab7-3fb3-42e5-965d-8ea592502017', '00032ab7-3fb3-42e5-965d-8ea592502016', 'deleteInstance', 'COMPLETE', 'Vf Module has been deleted successfully.', '100', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"requestDetails":{"modelInfo":{"modelType":"vfModule","modelName":"vSAMP10aDEV::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"mtn6"}}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'vSAMP10aDEV::base::module-0', null, 'mtn6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00093944-bf16-4373-ab9a-3adfe730ff2d', null, 'createInstance', 'FAILED', 'Error: Locked instance - This service (MSODEV_1707_SI_vSAMP10a_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.', '100', '2017-07-11 18:33:26', '2017-07-11 18:33:26', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"requestDetails":{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"MSOTADevInfra_vSAMP10a_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_vSAMP10a_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"mtn6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true,"alaCarteSet":true,"alaCarte":true}}}', null, 'APIH', '2016-12-22 19:00:28', null, null, null, null, null, null, null, 'mtn6', null, null, null, null, null, 'service', 'createInstance', null, 'MSODEV_1707_SI_vSAMP10a_011-4', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('001619d2-a297-4a4b-a9f5-e2823c88458f', '001619d2-a297-4a4b-a9f5-e2823c88458f', 'CREATE_VF_MODULE', 'COMPLETE', 'COMPLETED', '100', '2016-07-01 14:11:42', '2017-05-02 16:03:34', 'PORTAL', null, 'test-vscp', 'elena_test21', null, null, '381b9ff6c75e4625b7a4182f90fc68d3', null, null, null, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<vnf-request xmlns=\"http://org.onap.so/mso/infra/vnf-request/v1\">\n    <request-info>\n        <request-id>001619d2-a297-4a4b-a9f5-e2823c88458f</request-id>\n        <action>CREATE_VF_MODULE</action>\n        <source>PORTAL</source>\n    </request-info>\n    <vnf-inputs>\n        <vnf-name>test-vscp</vnf-name>\n        <vf-module-name>moduleName</vf-module-name>\n        <vnf-type>elena_test21</vnf-type>\n        <vf-module-model-name>moduleModelName</vf-module-model-name>\n        <asdc-service-model-version>1.0</asdc-service-model-version>\n        <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>\n        <aic-cloud-region>mtn9</aic-cloud-region>\n        <tenant-id>381b9ff6c75e4625b7a4182f90fc68d3</tenant-id>\n        <persona-model-id></persona-model-id>\n        <persona-model-version></persona-model-version>\n        <is-base-vf-module>false</is-base-vf-module>\n    </vnf-inputs>\n    <vnf-params xmlns:tns=\"http://org.onap.so/mso/infra/vnf-request/v1\"/>\n</vnf-request>\n', 'NONE', 'RDBTEST', '2016-07-01 14:11:42', 'VNF', null, null, null, 'MODULENAME1', 'moduleModelName', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb', 'mtn9', null, null, null, null, null, 'vfModule', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
diff --git a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
index 192e6d5..22e8434 100644
--- a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
+++ b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
@@ -79,7 +79,7 @@
     VF_MODULE_NAME VARCHAR SELECTIVITY 8,
     VF_MODULE_MODEL_NAME VARCHAR SELECTIVITY 3,
     AAI_SERVICE_ID VARCHAR SELECTIVITY 1,
-    AIC_CLOUD_REGION VARCHAR SELECTIVITY 1,
+    CLOUD_REGION VARCHAR SELECTIVITY 1,
     CALLBACK_URL VARCHAR SELECTIVITY 1,
     CORRELATOR VARCHAR SELECTIVITY 1,
     NETWORK_ID VARCHAR SELECTIVITY 2,
@@ -102,11 +102,11 @@
     ROLLBACK_EXT_SYSTEM_ERROR_SOURCE VARCHAR SELECTIVITY 1
 );          
 
-INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00032ab7-3fb3-42e5-965d-8ea592502017', '00032ab7-3fb3-42e5-965d-8ea592502016', 'deleteInstance', 'COMPLETE', 'Vf Module has been deleted successfully.', '100', '2016-12-22 18:59:54', '2016-12-22 19:00:28', 'VID', 'b92f60c8-8de3-46c1-8dc1-e4390ac2b005', null, null, null, null, '6accefef3cb442ff9e644d589fb04107', null, null, null, '{"modelInfo":{"modelType":"vfModule","modelName":"vSAMP10aDEV::base::module-0"},"requestInfo":{"source":"VID"},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"mtn6"}}', null, 'BPMN', '2016-12-22 19:00:28', null, null, null, 'c7d527b1-7a91-49fd-b97d-1c8c0f4a7992', null, 'vSAMP10aDEV::base::module-0', null, 'mtn6', null, null, null, null, null, 'vfModule', 'deleteInstance', 'e3b5744d-2ad1-4cdd-8390-c999a38829bc', null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00093944-bf16-4373-ab9a-3adfe730ff2d', null, 'createInstance', 'FAILED', 'Error: Locked instance - This service (MSODEV_1707_SI_vSAMP10a_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.', '100', '2017-07-11 18:33:26', '2017-07-11 18:33:26', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"MSOTADevInfra_vSAMP10a_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_vSAMP10a_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"mtn6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true,"alaCarteSet":true,"alaCarte":true}}', null, 'APIH', null, null, null, null, null, null, null, null, 'mtn6', null, null, null, null, null, 'service', 'createInstance', null, 'MSODEV_1707_SI_vSAMP10a_011-4', 'xxxxxx', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('001619d2-a297-4a4b-a9f5-e2823c88458f', '001619d2-a297-4a4b-a9f5-e2823c88458f', 'CREATE_VF_MODULE', 'COMPLETE', 'COMPLETED', '100', '2016-07-01 14:11:42', '2017-05-02 16:03:34', 'PORTAL', null, 'test-vscp', 'elena_test21', null, null, '381b9ff6c75e4625b7a4182f90fc68d3', null, null, null, STRINGDECODE('<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<vnf-request xmlns=\"http://org.onap.so/mso/infra/vnf-request/v1\">\n    <request-info>\n        <request-id>001619d2-a297-4a4b-a9f5-e2823c88458f</request-id>\n        <action>CREATE_VF_MODULE</action>\n        <source>PORTAL</source>\n    </request-info>\n    <vnf-inputs>\n        <vnf-name>test-vscp</vnf-name>\n        <vf-module-name>moduleName</vf-module-name>\n        <vnf-type>elena_test21</vnf-type>\n        <vf-module-model-name>moduleModelName</vf-module-model-name>\n        <asdc-service-model-version>1.0</asdc-service-model-version>\n        <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>\n        <aic-cloud-region>mtn9</aic-cloud-region>\n        <tenant-id>381b9ff6c75e4625b7a4182f90fc68d3</tenant-id>\n        <persona-model-id></persona-model-id>\n        <persona-model-version></persona-model-version>\n        <is-base-vf-module>false</is-base-vf-module>\n    </vnf-inputs>\n    <vnf-params xmlns:tns=\"http://org.onap.so/mso/infra/vnf-request/v1\"/>\n</vnf-request>\n'), 'NONE', 'RDBTEST', '2016-07-01 14:11:42', 'VNF', null, null, null, 'MODULENAME1', 'moduleModelName', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb', 'mtn9', null, null, null, null, null, 'vfModule', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances');           
-INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
+INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
 ('00164b9e-784d-48a8-8973-bbad6ef818ed', null, 'createInstance', 'COMPLETE', 'Service Instance was created successfully.', '100', '2017-09-28 12:45:51', '2017-09-28 12:45:53', 'VID', null, null, null, null, null, '19123c2924c648eb8e42a3c1f14b7682', null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f","modelType":"service","modelNameVersionId":null,"modelName":"MSO Test Network","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":"DEV-MTN6-3100-0927-1","suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":null,"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"aicNodeClli":null,"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"mtn6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true,"alaCarte":true},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'CreateGenericALaCarteServiceInstance', '2017-09-28 12:45:52', null, null, null, null, null, null, null, 'mtn6', null, null, null, null, null, 'service', 'createInstance', 'b2f59173-b7e5-4e0f-8440-232fd601b865', 'DEV-MTN6-3100-0927-1', 'md5621', null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('00173cc9-5ce2-4673-a810-f87fefb2829e', null, 'createInstance', 'FAILED', 'Error parsing request.  No valid instanceName is specified', '100', '2017-04-14 21:08:46', '2017-04-14 21:08:46', 'VID', null, null, null, null, null, 'a259ae7b7c3f493cb3d91f95a7c18149', null, null, null, '{"modelInfo":{"modelInvariantId":"ff6163d4-7214-459e-9f76-507b4eb00f51","modelType":"service","modelName":"ConstraintsSrvcVID","modelVersion":"2.0","modelVersionId":"722d256c-a374-4fba-a14f-a59b76bb7656"},"requestInfo":{"productFamilyId":"LRSI-OSPF","source":"VID","requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"},"cloudConfiguration":{"tenantId":"a259ae7b7c3f493cb3d91f95a7c18149","lcpCloudRegionId":"mtn16"},"requestParameters":{"subscriptionServiceType":"Mobility","userParams":[{"name":"neutronport6_name","value":"8"},{"name":"neutronnet5_network_name","value":"8"},{"name":"contrailv2vlansubinterface3_name","value":"false"}]}}', null, 'APIH', null, null, null, null, null, null, null, null, 'mtn16', null, null, null, null, null, 'service', 'createInstance', null, null, null, null, null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances'),
 ('0017f68c-eb2d-45bb-b7c7-ec31b37dc349', null, 'activateInstance', 'UNLOCKED', null, '20', '2017-09-26 16:09:29', null, 'VID', null, null, null, null, null, null, null, null, null, '{"modelInfo":{"modelCustomizationName":null,"modelInvariantId":"1587cf0e-f12f-478d-8530-5c55ac578c39","modelType":"configuration","modelNameVersionId":null,"modelName":null,"modelVersion":null,"modelCustomizationUuid":null,"modelVersionId":"36a3a8ea-49a6-4ac8-b06c-89a545444455","modelCustomizationId":"68dc9a92-214c-11e7-93ae-92361f002671","modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"requestInfo":{"billingAccountNumber":null,"callbackUrl":null,"correlator":null,"orderNumber":null,"productFamilyId":null,"orderVersion":null,"source":"VID","instanceName":null,"suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":[{"relatedInstance":{"instanceName":null,"instanceId":"9e15a443-af65-4f05-9000-47ae495e937d","modelInfo":{"modelCustomizationName":null,"modelInvariantId":"de19ae10-9a25-11e7-abc4-cec278b6b50a","modelType":"service","modelNameVersionId":null,"modelName":"MSOTADevInfra_Configuration_Service","modelVersion":"1.0","modelCustomizationUuid":null,"modelVersionId":"ee938612-9a25-11e7-abc4-cec278b6b50a","modelCustomizationId":null,"modelUuid":null,"modelInvariantUuid":null,"modelInstanceName":null},"instanceDirection":null}}],"subscriberInfo":null,"cloudConfiguration":{"aicNodeClli":null,"tenantId":null,"lcpCloudRegionId":"mtn6"},"requestParameters":{"subscriptionServiceType":null,"userParams":[],"aLaCarte":false,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true,"alaCarte":false},"project":null,"owningEntity":null,"platform":null,"lineOfBusiness":null}', null, 'APIH', '2017-09-26 16:09:29', null, null, null, null, null, null, null, 'mtn6', null, null, null, null, null, 'configuration', 'activateInstance', '9e15a443-af65-4f05-9000-47ae495e937d', null, 'xxxxxx', '26ef7f15-57bb-48df-8170-e59edc26234c', null, null, null, 'http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances');
@@ -151,7 +151,7 @@
     VF_MODULE_NAME VARCHAR SELECTIVITY 8,
     VF_MODULE_MODEL_NAME VARCHAR SELECTIVITY 3,
     AAI_SERVICE_ID VARCHAR SELECTIVITY 1,
-    AIC_CLOUD_REGION VARCHAR SELECTIVITY 1,
+    CLOUD_REGION VARCHAR SELECTIVITY 1,
     CALLBACK_URL VARCHAR SELECTIVITY 1,
     CORRELATOR VARCHAR SELECTIVITY 1,
     NETWORK_ID VARCHAR SELECTIVITY 2,
diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
index 05845dd..73e5e16 100644
--- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
+++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
@@ -117,7 +117,7 @@
     private String vfModuleModelName;
     @Column(name = "AAI_SERVICE_ID", length = 50)
     private String aaiServiceId;
-    @Column(name = "AIC_CLOUD_REGION", length = 11)
+    @Column(name = "CLOUD_REGION", length = 11)
     private String aicCloudRegion;
     @Column(name = "CALLBACK_URL", length = 200)
     private String callBackUrl;
diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/client/RequestsDbClient.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/client/RequestsDbClient.java
index 9be92ad..5ea0d3c 100644
--- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/client/RequestsDbClient.java
+++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/client/RequestsDbClient.java
@@ -44,7 +44,7 @@
 import org.onap.so.db.request.beans.WatchdogDistributionStatus;
 import org.onap.so.db.request.beans.WatchdogServiceModVerIdLookup;
 import org.onap.so.db.request.data.controller.InstanceNameDuplicateCheckRequest;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Primary;
@@ -157,7 +157,7 @@
 
         return Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory)
                 .setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/ControllerSelectionReference.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/ControllerSelectionReference.java
index 425e0b8..ac0d09b 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/ControllerSelectionReference.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/ControllerSelectionReference.java
@@ -32,7 +32,7 @@
 
 @IdClass(ControllerSelectionReferenceId.class)
 @Entity
-@Table(name = "CONTROLLER_SELECTION_REFERENCE")
+@Table(name = "controller_selection_reference")
 public class ControllerSelectionReference implements Serializable {
 
     private static final long serialVersionUID = -608098800737567188L;
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
index 93e2992..9691eff 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
@@ -22,6 +22,7 @@
 
 public enum OrchestrationStatus {
     ACTIVE("Active", "active"),
+    ACTIVATED("Activated", "activated"),
     ASSIGNED("Assigned", "assigned"),
     CREATED("Created", "created"),
     INVENTORIED("Inventoried", "inventoried"),
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/UserParameters.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/UserParameters.java
index c2cf2d7..9ec61ff 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/UserParameters.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/UserParameters.java
@@ -17,7 +17,7 @@
 import com.openpojo.business.annotation.BusinessKey;
 
 @Entity
-@Table(name = "USER_PARAMETERS")
+@Table(name = "user_parameters")
 public class UserParameters implements Serializable {
 
     private static final long serialVersionUID = -5036895978102778877L;
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
index 23539b0..fcafe90 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
@@ -30,6 +30,7 @@
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.UriBuilder;
 import org.apache.http.HttpStatus;
+import org.onap.logging.filter.base.Constants;
 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.CloudifyManager;
@@ -64,7 +65,7 @@
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
 import org.onap.so.logger.LogConstants;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -366,12 +367,12 @@
 
         ClientFactory clientFactory =
                 Configuration.builder().setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
                         request.getHeaders().add(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
-                        request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+                        request.getHeaders().add(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
                         return execution.execute(request, body);
                     });
                 }).build().buildClientFactory();
@@ -415,12 +416,12 @@
 
         ClientFactory clientFactory = Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory)
                 .setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
                         request.getHeaders().add(HttpHeaders.AUTHORIZATION, auth);
-                        request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+                        request.getHeaders().add(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
                         return execution.execute(request, body);
                     });
                 }).build().buildClientFactory();
@@ -1007,7 +1008,7 @@
         headers.set(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
         headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
         headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
-        headers.set(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+        headers.set(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
         return headers;
     }
 
diff --git a/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml b/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml
index e1de331..c68495d 100644
--- a/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml
+++ b/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml
@@ -1,12 +1,12 @@
-<!-- ============LICENSE_START=======================================================
-    ECOMP MSO ================================================================================
-    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
+<!-- ============LICENSE_START======================================================= 
+    ECOMP MSO ================================================================================ 
+    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========================================================= -->
 
 <configuration scan="true" debug="false">
@@ -23,20 +23,20 @@
 	<property name="metricsLogName" value="metrics" />
 	<property name="auditLogName" value="audit" />
 	<property name="debugLogName" value="debug" />
-
+	
 	<property name="currentTimeStamp" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;,UTC}"/>
 
 	<property name="errorPattern"
 		value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode:-500}|%X{ErrorDesc}|%msg%n" />
 
 	<property name="debugPattern"
-		value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}| %logger{50} - %msg%n" />
+		value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%logger{50} - %msg%n" />
 
 	<property name="auditPattern"
-		value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+		value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%marker|%mdc|||%msg%n" />
 
 	<property name="metricPattern"
-		value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+		value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|%marker|%mdc|||%msg%n" />
 
 	<property name="defaultPattern"
 		value="%nopexception%logger
@@ -52,7 +52,7 @@
 	<appender name="Audit"
 		class="ch.qos.logback.core.rolling.RollingFileAppender">
 		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">				
 				<marker>EXIT</marker>
 			</evaluator>
 			<onMismatch>DENY</onMismatch>
@@ -80,8 +80,8 @@
 	<appender name="Metric"
 		class="ch.qos.logback.core.rolling.RollingFileAppender">
 		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>INVOKE_RETURN</marker>
+			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">				
+				<marker>INVOKE-RETURN</marker>
 			</evaluator>
 			<onMismatch>DENY</onMismatch>
 			<onMatch>ACCEPT</onMatch>
@@ -137,7 +137,7 @@
 		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
 			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
 				<marker>INVOKE</marker>
-				<marker>INVOKE_RETURN</marker>
+				<marker>INVOKE-RETURN</marker>
 				<marker>ENTRY</marker>
 				<marker>EXIT</marker>
 			</evaluator>
@@ -180,6 +180,7 @@
 	<logger name="org.onap" level="DEBUG" />
 	<logger name="com.att.ecomp" level="DEBUG" />
 	<logger name="org.apache.cxf.interceptor" level="DEBUG" />
+	<logger name="com.att.commons" level="DEBUG" />
 
 	<logger name="AUDIT" level="INFO" additivity="false">
 		<appender-ref ref="asyncAudit" />
diff --git a/pom.xml b/pom.xml
index d5cd1f4..01f44f9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -635,6 +635,21 @@
   <!-- *********************************************************************************************************** -->
   <!-- Dependencies -->
   <dependencies>
+  	<dependency>
+		<groupId>org.onap.logging-analytics</groupId>
+		<artifactId>logging-slf4j</artifactId>
+		<version>1.5.0-SNAPSHOT</version>
+	</dependency>
+    <dependency>
+      <groupId>org.onap.logging-analytics</groupId>
+      <artifactId>logging-filter-base</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.onap.logging-analytics</groupId>
+      <artifactId>logging-filter-spring</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/app.module.ts b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/app.module.ts
index 71294bf..5adfc04 100644
--- a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/app.module.ts
+++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/app.module.ts
@@ -19,7 +19,7 @@
 SPDX-License-Identifier: Apache-2.0
 ============LICENSE_END=========================================================
 
-@authors: ronan.kenny@ericsson.com, waqas.ikram@ericsson.com
+@authors: ronan.kenny@est.tech, waqas.ikram@est.tech
 */
 
 import { BrowserModule } from '@angular/platform-browser';
@@ -35,13 +35,13 @@
 import { DetailsComponent } from './details/details.component';
 import { ToastrNotificationService } from './toastr-notification-service.service';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { MatFormFieldModule, MatInputModule, MatTableModule, MatTabsModule, MatSelectModule, MatNativeDateModule, MatDatepickerModule, MatCardModule, MatPaginatorModule, MatSortModule } from '@angular/material';
+import { MatFormFieldModule, MatInputModule, MatTableModule, MatTabsModule, MatSelectModule, MatNativeDateModule, MatDatepickerModule, MatCardModule, MatPaginatorModule, MatSortModule, MatIconModule } from '@angular/material';
 import { NgxSpinnerModule } from 'ngx-spinner';
 import { RouterModule, Routes } from '@angular/router';
 import { APP_BASE_HREF } from '@angular/common';
 import { LoginComponent } from './login/login.component';
-import {BasicAuthInterceptor} from "./basic-auth.interceptor";
-import {ErrorInterceptor} from "./error.interceptor";
+import { BasicAuthInterceptor } from "./basic-auth.interceptor";
+import { ErrorInterceptor } from "./error.interceptor";
 
 @NgModule({
   declarations: [
@@ -70,6 +70,7 @@
     RouterModule,
     MatPaginatorModule,
     MatSortModule,
+    MatIconModule,
     RouterModule.forRoot([]),
     ReactiveFormsModule
   ],
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.html b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.html
index a98095c..8ad955f 100644
--- a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.html
+++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.html
@@ -17,12 +17,23 @@
 SPDX-License-Identifier: Apache-2.0
 ============LICENSE_END=========================================================
 
-@authors: ronan.kenny@ericsson.com, waqas.ikram@ericsson.com
+@authors: ronan.kenny@est.tech, waqas.ikram@est.tech
 -->
 
 <div class="completeForm">
   <div class="topCanvas">
-    <section class="canvas" id="canvas"></section>
+    <div class="navigation">
+      <button class="zoomButton" mat-icon-button title="zoom in" (click)="zoomIn()">
+        <mat-icon>zoom_in</mat-icon>
+      </button>
+      <button class="zoomButton" mat-icon-button title="zoom out" (click)="zoomOut()">
+        <mat-icon>zoom_out</mat-icon>
+      </button>
+      <button class="zoomButton" mat-icon-button title="reset zoom" (click)="resetZoom()">
+        <mat-icon>all_out</mat-icon>
+      </button>
+    </div>
+    <div #canvas class="canvas" id="canvas"></div>
     <mat-card class="besideCanvas" id="besideCanvas">
       <mat-card-title>Process Information</mat-card-title>
       <br />
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.scss b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.scss
index 2789723..b96fe4a 100644
--- a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.scss
+++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.scss
@@ -17,23 +17,39 @@
 SPDX-License-Identifier: Apache-2.0
 ============LICENSE_END=========================================================
 
-@authors: ronan.kenny@ericsson.com, waqas.ikram@ericsson.com
+@authors: ronan.kenny@est.tech, waqas.ikram@est.tech
 */
 #canvas {
   background: white;
   padding: 0;
-  margin: 0;
+  margin-left: -43px;
   width: 70%;
   height: 470px;
   margin-top: 0;
-  box-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);
+  box-shadow: 0 8px 10px 1px rgba(0,0,0,.2);
+}
+
+.navigation {
+  background: #e6e6e6;
+  width: 40px;
+  box-shadow: -5px 8px 10px 1px rgba(0,0,0,.2);
+  height: 470px;
+  border: 1px;
+  border-color: black;
+  position: relative;
+}
+
+.zoomButton {
+  padding-top: 8px;
+  background: none;
+  border: none;
 }
 
 #besideCanvas {
   background: white;
   padding-left: 20px;
   margin: 0;
-  width: 28%;
+  width: 25%;
   height: 470px;
   margin-top: 0;
   box-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.ts b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.ts
index 7106a87..a42fa3f 100644
--- a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.ts
+++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/details/details.component.ts
@@ -17,7 +17,7 @@
 SPDX-License-Identifier: Apache-2.0
 ============LICENSE_END=========================================================
 
-@authors: ronan.kenny@ericsson.com, waqas.ikram@ericsson.com
+@authors: ronan.kenny@est.tech, waqas.ikram@est.tech
 */
 
 import { Component, OnInit } from '@angular/core';
@@ -34,6 +34,7 @@
 import { VariableInstance } from '../model/variableInstance.model';
 import { ToastrNotificationService } from '../toastr-notification-service.service';
 import { NgxSpinnerService } from 'ngx-spinner';
+import { ElementRef, ViewChild } from '@angular/core';
 
 @Component({
   selector: 'app-details',
@@ -43,6 +44,9 @@
 })
 
 export class DetailsComponent implements OnInit {
+
+  @ViewChild("canvas") elementReference: ElementRef;
+
   bpmnViewer: any;
 
   processInstanceID: string;
@@ -82,7 +86,8 @@
       async (data: ProcessDefinitionDetail) => {
         this.processDefinition = data;
         console.log(data);
-        await this.displayCamundaflow(this.processDefinition.processDefinitionXml, this.activityInstance, this.router);
+        await this.displayCamundaflow(this.processDefinition.processDefinitionXml, this.activityInstance,
+          this.router, this.spinner, this.popup);
       }, error => {
         console.log(error);
         this.popup.error("Unable to get process definition for id: " + procDefId + " Error code:" + error.status);
@@ -104,30 +109,53 @@
       });
   }
 
-  displayCamundaflow(bpmnXml, activities: ActivityInstance[], r: Router) {
-    this.spinner.show();
+  displayCamundaflow(bpmnXml, activities: ActivityInstance[], router: Router,
+    spinner: NgxSpinnerService, popup: ToastrNotificationService) {
+    spinner.show();
 
     this.bpmnViewer.importXML(bpmnXml, (error) => {
       if (error) {
         console.error('Unable to load BPMN flow ', error);
-        this.popup.error('Unable to load BPMN flow ');
-        this.spinner.hide();
+        popup.error('Unable to load BPMN flow ');
+        spinner.hide();
       } else {
-        this.spinner.hide();
-        var canvas = this.bpmnViewer.get('canvas');
+        spinner.hide();
+        let canvas = this.bpmnViewer.get('canvas');
         var eventBus = this.bpmnViewer.get('eventBus');
-        eventBus.on('element.click', function(e) {
+        var elementRegistry = this.bpmnViewer.get('elementRegistry');
+        var overlays = this.bpmnViewer.get('overlays');
 
-          activities.forEach(a => {
-            if (a.activityId == e.element.id && a.calledProcessInstanceId !== null) {
-              console.log("will drill down to : " + a.calledProcessInstanceId);
-              r.navigate(['/details/' + a.calledProcessInstanceId]);
-              this.spinner.show();
-            }
-          });
+        activities.forEach(a => {
+          if (a.calledProcessInstanceId !== null) {
+            var element = elementRegistry.get(a.activityId);
+            let newNode = document.createElement('div');
+            newNode.className = 'highlight-overlay';
+            newNode.id = element.id;
+            newNode.style.width = element.width + "px";
+            newNode.style.height = element.height + "px";
+            newNode.style.cursor = "pointer";
+
+            overlays.add(a.activityId, {
+              position: {
+                top: -5,
+                left: -5
+              },
+              html: newNode
+            });
+
+            newNode.addEventListener('click', function(e) {
+              console.log("clicked on: " + e.srcElement.id)
+              activities.forEach(a => {
+                if (a.activityId == e.srcElement.id && a.calledProcessInstanceId !== null) {
+                  console.log("will drill down to : " + a.calledProcessInstanceId);
+                  router.navigate(['/details/' + a.calledProcessInstanceId]);
+                }
+              });
+            });
+          }
         });
         // zoom to fit full viewport
-        canvas.zoom('fit-viewport');
+        canvas.zoom('fit-viewport', 'auto');
         activities.forEach(a => {
           canvas.addMarker(a.activityId, 'highlight');
         });
@@ -135,6 +163,26 @@
     });
   }
 
+  zoomIn() {
+    this.bpmnViewer.get('zoomScroll').zoom(1, {
+      x: this.elementReference.nativeElement.offsetWidth / 2,
+      y: this.elementReference.nativeElement.offsetHeight / 2
+    });
+  }
+
+  zoomOut() {
+    this.bpmnViewer.get('zoomScroll').zoom(-1, {
+      x: this.elementReference.nativeElement.offsetWidth / 2,
+      y: this.elementReference.nativeElement.offsetHeight / 2
+    });
+  }
+  resetZoom() {
+    let canvas = this.bpmnViewer.get('canvas');
+    canvas.resized();
+    canvas.zoom('fit-viewport', 'auto');
+
+  }
+
   getVarInst(procInstId: string) {
     this.data.getVariableInstance(procInstId).subscribe(
       (data: VariableInstance[]) => {
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/http-error-handler.service.ts b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/http-error-handler.service.ts
index 16d274f..b22fa6e 100644
--- a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/http-error-handler.service.ts
+++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/http-error-handler.service.ts
@@ -17,7 +17,7 @@
 SPDX-License-Identifier: Apache-2.0

 ============LICENSE_END=========================================================

 

-@authors: ronan.kenny@ericsson.com, waqas.ikram@ericsson.com

+@authors: ronan.kenny@est.tech, waqas.ikram@est.tech

 */

 

 import { Injectable } from '@angular/core';

@@ -44,9 +44,9 @@
         this.popup.error("Internal Service Error occured for operation: " + operation + " please check backend service log. status code: " + error.status);

       }

       console.error(

-        'Backend returned code ${error.status}, ' +

-        'body was: ${error.error}');

-      return throwError(error.error || "Internal Service Error occured for operation: " + operation + " please check backend service log. status code: " + error.status);

+        'Backend returned status code: ', error.status + ' from URL ' + url);

+      return throwError(error.error || "Internal Service Error occured for operation: " +

+        operation + ". Please check backend service log. Status code: " + error.status);

     };

 

   }