Springboot 2.0 upgrade

corrected typo in CloudConfiguration class
removed files which should not have been merged
updated gr api test cases with dynamic cloud owner
updated groovy files to allow for dynamic cloud owner values
moved VFModularity folder to mso-infrastructure bpmn
updated GR API layer to include cloud owner
added enum for default cloud owner
- fixing junit test cases for using catalogDb client r2
- fixing junit test cases for using catalogDb client
- Internal review comments incorporated for merging mocking into
BaseTest
- Internal review comments incorporated for removing direct repo calls
- CLONE - Key Management Hardcoded encryption key | fixing junits
- CLONE - Key Management Hardcoded encryption key
Updated builder to use String.format
Added exception specifically for issues interacting with
requestdbadapter
Updated exception message and added junit test case
removed useless error handling test case from workflow
changed method name and added junit coverage to errors
added max retry and success status after completed bb
Added case to handle when homing is not called during assign vnf.
Fixing fortify issues | Implementing review comments
- Key Management Hardcoded encryption key - fixing prop files
- Key Management Hardcoded encryption key
include network ID for completion handler
Added exception handling for saving to requestdb
- Adding a check on the predicate availability on the repository before
firing the query with default conditions. This ensures that the api
returns data only when there is an input against which it was able to
form some conditions
Modify UT to show that the API does not behave
- adding negative test case for checkInstanceNameDuplicate
added assertion that global count var was reset to 0
updated rollback to reset current sequence count var
workflowaction calls rollback is complete before error
workflowaction will set failure on successful rollback
added check for isrollback to know which complete to call
removed file which should not have been added
add fabric check before running vf module a la carte
Enhance UCPEMigrateService junits and add them to Jenkins build..
Added back removed test case for ManualTasks
Added test case for response error
Added rainy day test cases for ManualTasks
revert the other change and fix the rollback logic instead
fixed current sequence and updated rollback code
added network cloud heat template parameters to mapper
Generate a unique subRequestId for each request to APP-C.
reverted conditional logic for determining fabric
Fix Bean scanning so it picks up the resttemplate
removed unnecessary RestTemplate Bean configurations
removed file which should not have been added
workflowaction calls rollback is complete before error
workflowaction will set failure on successful rollback
added check for isrollback to know which complete to call
add fabric check before running vf module a la carte
added assertion that global count var was reset to 0
updated rollback to reset current sequence count var
include network ID for completion handler
Revert Application.yaml change accidentally checked in
Added exception handling for saving to requestdb
Added case to handle when homing is not called during assign vnf.
removed useless error handling test case from workflow
changed method name and added junit coverage to errors
...
add cloud owner variable to camunda in mapping
Revert "Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Added
juint test to verify variables are set in the execution. Set default
cloudOwner in main module CreateVfModuleVolumeInfraV2"
updated cloud configuration pojo to inlcude defaults
Revert "Test to verify ServiceInstance object mapping"
Test to verify ServiceInstance object mapping
Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Added juint test
to verify variables are set in the execution. Set default cloudOwner in
main module CreateVfModuleVolumeInfraV2
Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Set default
cloudOwner 'att-aic' if null per old requirements.
removed references to att-aic from BBInputSetup
Changes done in encryption decryption logic | used
DelegateExecutionFake in Tests
Changes done in encryption decryption logic | used
DelegateExecutionFake in Tests
Changes done in encryption decryption logic
Changes done in encryption decryption logic | removed Default Auth
Constant as per the comments
Changes done in encryption decryption logic | Fixed UT
Changes done in encryption decryption logic | Added XmlComparator
assertion for verifying XML
Changes done in encryption decryption logic | Reverted as per the
review comment
Changes done in encryption decryption logic | Fixed UTs
Changes done in encryption decryption logic | Fixed UTs
Changes done in encryption decryption logic | modified related
encrypted properties in test yaml files
Changes done in encryption decryption logic for fortify issue
resolution | Fixed UTs
Changes done in encryption decryption logic | modified related
encrypted properties in yaml files
Changes done in encryption decryption logic for fortify issue
resolution.
Fixed Property fetching issue in required file
Added TasksBeansTest using openpojo
Removed renamed test file from tasksbeans
Updated imports on TasksBeansTest
Added openpojo test to replace the individual tests
Removed tests that provided no coverage
script clean up -Update reference data to support distinct recreate and
replace requests with their own sequences
Update reference data to support distinct recreate and replace requests
with their own sequences- Fix  seq number
Update reference data to support distinct recreate and replace requests
with their own sequences
added null check to mdc and interceptors to sdnc cxf
validations can now match against multiple BBs
reverted changes to BBInputSetup class
added support for pre and post validation for BBs
initial commit of generic building block validator
converted test to no longer be a springboot test
Remove cosmetic changes from BPMN files to be consistent.
Remove minor changes that are not related to functionality.
Rework to implement the functionality as part of Validator
Combine the verification methods into one based on the flow's name;
change the logging.
Add verification of status of other VF Modules in the VNF for the
delete/deactivate/unassign.
added network-technology validation for CreateNetworkBB
Sonar Issue Fix | Changes done in encryption decryption logic |
Refactoring
Changes done in encryption decryption logic| Used AES/GCM/NoPadding
algorithm | fixed sonar issues
added network-type and network-technology to mapper
Continue the fight to make JUNITS work properly
Update ASDC ATT to be springboot 2.0 compliant
Continue to fix Unit tests for springboot 2.0 port
removed autowired from workflowactionbbtaskstest
fixed workflowactiontest and reduced size by 500 lines
Update last of UT for mockito upgrade to 2.0
Fix more JUNITS due to mockito 2.0 upgrade
Unit Test fixes to use proper mockito not spring
Update Base Test to import proper packages for compile
Additional Springboot 2.0 changes, for tests
Additional springboot 2.0 fixes and upgrades
Update Migration to be Flyway 5 Compliant
Fix MSOBPMN Infrastructure common tests
Fix Groovy Unit Tests in CommonBPMN Project
Update MSO common BPMN to Springboot 2.0
Upgrade ASDC controller to SpringBoot 2.0
Port Openstack adapters to springboot 2.0
Fix VFC Adapter to be springboot 2 compatible
Port CatalogDB adapter code to springboot 2
Port SDNC Adapter to Springboot 2.0
...
added update scripts to macro data instead of v12 sql
added secondarypolicy to rainy day handling table
confirm subnet map is not null in adapter response
shallow copy subnet before AAI udpate
update AAIObjectType to use uriTemplate
extract subnet data from adapter response
update correct AAIObjectType for subnet query
update subnet(s) in AAI on network create completion
confirm subnet map is not null in adapter response
shallow copy subnet before AAI udpate
update AAIObjectType to use uriTemplate
extract subnet data from adapter response
update correct AAIObjectType for subnet query
update subnet(s) in AAI on network create completion
fixed test http entity unit test to remove testing appid and
transaction id
added unit test for querySubsystemHealth method.  also added
resttemplate mock to implement healthcheck endpoint
fixed unit test to use mock instead of actually goes out to health
check endpoint
added code to extend globalhealthcheck to include pinging other
components and consolidate the responses
converted test to no longer be a springboot test
Remove cosmetic changes from BPMN files to be consistent.
Remove minor changes that are not related to functionality.
added update scripts to macro data instead of v12 sql
Rework to implement the functionality as part of Validator
added secondarypolicy to rainy day handling table
added network-type and network-technology to mapper
Combine the verification methods into one based on the flow's name;
change the logging.
Add verification of status of other VF Modules in the VNF for the
delete/deactivate/unassign.
updated how request db is set to failure in workflowA
corrected code to match existing unit tests
corrected tests after springboot 2 upgrade
Added Required UTs in UpdateConfigurationStateTest and also fixed some
UTs.
added in missing parenthesis on method call
added back execution variable for allotted uri
addressed comments on pull request
refactor AAI Rest calls from groovy files - Changes as per review
comments
checkin to refactor AAI rest | Fixing AAIResourceClient.update call
refactor AAI Rest calls from groovy files - UpdateConfiguration
refactor AAI Rest calls from groovy file - DeleteConfiguration
refactor AAI Rest calls from groovy file - UpdateConfiguration
refactor AAI Rest calls from groovy file - CreateConfiguration &
ConfigurationUtils
refactor AAI Rest calls from groovy files - Fix getARByID issue
checkin to refactor AAI rest | Adding Junits
checkin to refactor AAI rest | Adding few more classes
checkin to refactor AAI rest of DoCreateVfModuleVolumeV2
checkin to refactor AAI rest | Update junit
checkin to refactor AAI rest of DoCreateVfModuleVolumeV2 | Adding junits
checkin to refactor AAI rest of DoCreateVfModuleVolumeV2 | Adding junits
checkin to refactor AAI rest of DoCreateVfModuleVolumeV2.groovy
...
updated in and out mapping to be generalBuildingBlock
change source out mapping to generalBuildingBlock

Change-Id: I122f1ebe3e15b77da0a55af201d89d47e326bf83
Issue-ID: SO-1098
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
diff --git a/mso-api-handlers/mso-api-handler-infra/pom.xml b/mso-api-handlers/mso-api-handler-infra/pom.xml
index 2b2bec9..1d64927 100644
--- a/mso-api-handlers/mso-api-handler-infra/pom.xml
+++ b/mso-api-handlers/mso-api-handler-infra/pom.xml
@@ -18,6 +18,8 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<swagger-version>1.3.0</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>
 		<reflections-version>0.9.9-RC1</reflections-version>
 		<paranamer-version>2.5.2</paranamer-version>
 		<scannotation-version>1.0.3</scannotation-version>
@@ -63,27 +65,13 @@
 		</dependency>
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-data-jpa</artifactId>
-			<exclusions>
-				<exclusion>
-					<groupId>org.apache.tomcat</groupId>
-					<artifactId>tomcat-jdbc</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-dbcp2</artifactId>
-		</dependency>
+			<artifactId>spring-boot-starter-data-jpa</artifactId>			
+		</dependency>		
 		<dependency>
 			<groupId>commons-lang</groupId>
 			<artifactId>commons-lang</artifactId>
 			<version>2.6</version>
-		</dependency>
-		<dependency>
-			<groupId>antlr</groupId>
-			<artifactId>antlr</artifactId>
-		</dependency>
+		</dependency>		
 		<dependency>
 			<groupId>javax.activation</groupId>
 			<artifactId>activation</artifactId>
@@ -97,23 +85,21 @@
 		<dependency>
 			<groupId>org.json4s</groupId>
 			<artifactId>json4s-jackson_2.12</artifactId>
+			<version>${json4s-jackson-version}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.json4s</groupId>
 			<artifactId>json4s-core_2.12</artifactId>
+			<version>${json4s-core-version}</version>
 		</dependency>
 		<dependency>
 			<groupId>javax.servlet</groupId>
 			<artifactId>servlet-api</artifactId>
 			<version>2.5</version>
-		</dependency>
+		</dependency>	
 		<dependency>
-			<groupId>org.javassist</groupId>
-			<artifactId>javassist</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.json</groupId>
-			<artifactId>json</artifactId>
+			<groupId>javax.interceptor</groupId>
+			<artifactId>javax.interceptor-api</artifactId>
 		</dependency>
 
 		<!-- Dependencies on other MSO Projects -->
@@ -175,12 +161,7 @@
 			<groupId>com.github.java-json-tools</groupId>
 			<artifactId>json-schema-validator</artifactId>
 			<version>2.2.8</version>
-		</dependency>
-		<dependency>
-			<groupId>janino</groupId>
-			<artifactId>janino</artifactId>
-			<version>2.5.15</version>
-		</dependency>
+		</dependency>		
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-test</artifactId>
@@ -219,13 +200,11 @@
 		</dependency>
 		<dependency>
 			<groupId>io.micrometer</groupId>
-			<artifactId>micrometer-spring-legacy</artifactId>
-			<version>1.0.5</version>
+			<artifactId>micrometer-core</artifactId>
 		</dependency>
 		<dependency>
 			<groupId>io.micrometer</groupId>
 			<artifactId>micrometer-registry-prometheus</artifactId>
-			<version>1.0.5</version>
 		</dependency>
 	</dependencies>
 
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 7a8035a..70603e5 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
@@ -20,6 +20,13 @@
 
 package org.onap.so.apihandlerinfra;
 
+
+import java.net.URI;
+import java.util.Collections;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+
+import javax.annotation.PostConstruct;
 import javax.transaction.Transactional;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.GET;
@@ -29,42 +36,190 @@
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
 
+import java.util.UUID;
 import org.apache.http.HttpStatus;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.utils.UUIDChecker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Component;
-
+import org.springframework.web.client.RestTemplate;
+import org.springframework.http.HttpMethod;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 
-
 @Component
 @Path("/globalhealthcheck")
 @Api(value="/globalhealthcheck",description="APIH Infra Global Health Check")
 public class GlobalHealthcheckHandler {
+    private static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.APIH, GlobalHealthcheckHandler.class);
+    private static final String CONTEXTPATH_PROPERTY = "management.context-path";    
+    private static final String PROPERTY_DOMAIN	 = "mso.health.endpoints";    
+    private static final String CATALOGDB_PROPERTY = PROPERTY_DOMAIN+".catalogdb";
+	private static final String REQUESTDB_PROPERTY = PROPERTY_DOMAIN+".requestdb";
+	private static final String SDNC_PROPERTY = PROPERTY_DOMAIN+".sdnc";
+	private static final String OPENSTACK_PROPERTY = PROPERTY_DOMAIN+".openstack";
+	private static final String BPMN_PROPERTY = PROPERTY_DOMAIN+".bpmn";
+	private static final String ASDC_PROPERTY = PROPERTY_DOMAIN+".asdc";
+	private static final String REQUESTDBATTSVC_PROPERTY = PROPERTY_DOMAIN+".requestdbattsvc";
+	private static final String DEFAULT_PROPERTY_VALUE = "";
+	
+    // e.g. /manage
+    private String actuatorContextPath;
+	private String endpointCatalogdb;
+	private String endpointRequestdb;
+	private String endpointSdnc;
+	private String endpointOpenstack;
+	private String endpointBpmn;
+	private String endpointAsdc;
+	private String endpointRequestdbAttsvc;
+	
+	@Autowired
+	private Environment env;
 
-    private static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.APIH,GlobalHealthcheckHandler.class);
-    private static final String CHECK_HTML = "<!DOCTYPE html><html><head><meta charset=\"ISO-8859-1\"><title>Health Check</title></head><body>Application ready</body></html>";
+	@Autowired
+	private RestTemplate restTemplate;
+	private final String health = "/health";
 
-	public static final Response HEALTH_CHECK_RESPONSE = Response.status (HttpStatus.SC_OK)
-            .entity (CHECK_HTML)
-            .build ();
+	
+	@PostConstruct
+	protected void init() {
+		actuatorContextPath  = env.getProperty(CONTEXTPATH_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);
+		endpointCatalogdb  = env.getProperty(CATALOGDB_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);
+		endpointRequestdb  = env.getProperty(REQUESTDB_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);
+		endpointSdnc  = env.getProperty(SDNC_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);		
+		endpointOpenstack  = env.getProperty(OPENSTACK_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);		
+		endpointBpmn  = env.getProperty(BPMN_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);		
+		endpointAsdc  = env.getProperty(ASDC_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);		
+		endpointRequestdbAttsvc  = env.getProperty(REQUESTDBATTSVC_PROPERTY, String.class, DEFAULT_PROPERTY_VALUE);		
+	}
 	
     @GET
-    @Produces("text/html")
+    @Produces("application/json")
 	@ApiOperation(value="Performing global health check",response=Response.class)
     @Transactional
     public Response globalHealthcheck (@DefaultValue("true") @QueryParam("enableBpmn") boolean enableBpmn, 
     									@Context ContainerRequestContext requestContext) {
-        long startTime = System.currentTimeMillis ();
-        MsoLogger.setServiceName ("GlobalHealthcheck");
-        // Generated RequestId
-        String requestId = requestContext.getProperty("requestId").toString();
-        MsoLogger.setLogContext(requestId, null);
-        msoLogger.info(MessageEnum.APIH_GENERATED_REQUEST_ID, requestId, "", "");
+    	Response HEALTH_CHECK_RESPONSE = null;
+        // Build internal response object
+        HealthcheckResponse rsp = new HealthcheckResponse();
+    	
+    	try{
+            long startTime = System.currentTimeMillis ();
+            MsoLogger.setServiceName ("GlobalHealthcheck");
+            // Generated RequestId
+            String requestId = requestContext.getProperty("requestId").toString();
+            MsoLogger.setLogContext(requestId, null);
+            msoLogger.info(MessageEnum.APIH_GENERATED_REQUEST_ID, requestId, "", "");
+            
+            // set APIH status, this is the main entry point
+            rsp.setApih(HealthcheckStatus.UP.toString());
+            // set BPMN
+            rsp.setBpmn(querySubsystemHealth(MsoSubsystems.BPMN));
+            // set SDNCAdapter
+            rsp.setSdncAdapter(querySubsystemHealth(MsoSubsystems.SDNC));        
+            // set ASDCController
+            rsp.setAsdcController(querySubsystemHealth(MsoSubsystems.ASDC));        
+            // set CatalogDbAdapter
+            rsp.setCatalogdbAdapter(querySubsystemHealth(MsoSubsystems.CATALOGDB));    
+            // set RequestDbAdapter
+            rsp.setRequestdbAdapter(querySubsystemHealth(MsoSubsystems.REQUESTDB));        
+            // set OpenStackAdapter
+            rsp.setOpenstackAdapter(querySubsystemHealth(MsoSubsystems.OPENSTACK));        
+            // set RequestDbAdapterAttSvc
+            rsp.setRequestdbAdapterAttsvc(querySubsystemHealth(MsoSubsystems.REQUESTDBATT));
+            // set Message
+            rsp.setMessage(String.format("HttpStatus: %s", HttpStatus.SC_OK));
+            msoLogger.info(rsp.toString(), "", "");
+
+            HEALTH_CHECK_RESPONSE = Response.status (HttpStatus.SC_OK)
+                    .entity (rsp)
+                    .build ();
+            
+    	}catch (Exception ex){
+    		msoLogger.error(ex);
+    		rsp.setMessage(ex.getMessage());
+            HEALTH_CHECK_RESPONSE = Response.status (HttpStatus.SC_INTERNAL_SERVER_ERROR)
+                    .entity (rsp)
+                    .build ();
+    	}
+        
         return HEALTH_CHECK_RESPONSE;
-    } 
+    }
+    
+    protected HttpEntity<String> buildHttpEntityForRequest(){
+        HttpHeaders headers = new HttpHeaders();
+        headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); 
+        headers.set("Content-Type", "application/json");
+        HttpEntity<String> entity = new HttpEntity<>("parameters", headers);       
+        return entity;
+    }
+    
+    protected String querySubsystemHealth(MsoSubsystems subsystem){
+    	try{
+            // get port number for the subsystem
+    		String ept = getEndpointUrlForSubsystemEnum(subsystem);
+    		
+        	// build final endpoint url
+			UriBuilder builder = UriBuilder.fromPath(ept).path(actuatorContextPath).path(health);
+			URI uri = builder.build();
+        	msoLogger.info("Calculated URL: "+uri.toString(), "", "");        	
+            
+            ResponseEntity<SubsystemHealthcheckResponse> result = 
+            		restTemplate.exchange(uri, HttpMethod.GET, buildHttpEntityForRequest(), SubsystemHealthcheckResponse.class);
+            
+    		return processResponseFromSubsystem(result,subsystem);
+    		
+    	}catch(Exception ex){
+    		msoLogger.error(ex.getMessage());
+    		return HealthcheckStatus.DOWN.toString();
+    	}
+    }
+	protected String processResponseFromSubsystem(ResponseEntity<SubsystemHealthcheckResponse> result, MsoSubsystems subsystem){
+        if(result == null || result.getStatusCodeValue() != HttpStatus.SC_OK){
+        	msoLogger.error(String.format("Globalhealthcheck: checking subsystem: %s failed ! result object is: %s", 
+        			subsystem,
+        			result == null? "NULL": result));
+        	return HealthcheckStatus.DOWN.toString();
+        }
+        
+        SubsystemHealthcheckResponse body = result.getBody();
+
+		String status = body.getStatus();
+		if("UP".equalsIgnoreCase(status)){
+			return HealthcheckStatus.UP.toString();
+		}else{
+			msoLogger.error(subsystem + ", query health endpoint did not return UP status!");
+			return HealthcheckStatus.DOWN.toString();
+		}
+	}
+    
+    
+    protected String getEndpointUrlForSubsystemEnum(MsoSubsystems subsystem){
+    	switch (subsystem){
+    	case SDNC:
+    		return this.endpointSdnc;
+    	case ASDC:
+    		return this.endpointAsdc;
+    	case BPMN:
+    		return this.endpointBpmn;
+    	case CATALOGDB:
+    		return this.endpointCatalogdb;
+    	case OPENSTACK:
+    		return this.endpointOpenstack;
+    	case REQUESTDB:
+    		return this.endpointRequestdb;
+    	case REQUESTDBATT:
+    		return this.endpointRequestdbAttsvc;
+    	default:
+    		return "";
+    	}     	
+    }
 }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckResponse.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckResponse.java
new file mode 100644
index 0000000..8f0bbc4
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckResponse.java
@@ -0,0 +1,121 @@
+/*-
+ * ============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.apihandlerinfra;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class HealthcheckResponse {
+	private String apih;
+	private String bpmn;
+	private String sdncAdapter;
+	private String asdcController;
+	private String catalogdbAdapter;
+	private String requestdbAdapter;
+	private String openstackAdapter;
+	private String requestdbAdapterAttsvc;
+	private String message = "";
+
+	public String getApih() {
+		return apih;
+	}
+
+	public void setApih(String apih) {
+		this.apih = apih;
+	}
+
+	public String getBpmn() {
+		return bpmn;
+	}
+
+	public void setBpmn(String bpmn) {
+		this.bpmn = bpmn;
+	}
+
+	public String getSdncAdapter() {
+		return sdncAdapter;
+	}
+
+	public void setSdncAdapter(String sdncAdapter) {
+		this.sdncAdapter = sdncAdapter;
+	}
+
+	public String getAsdcController() {
+		return asdcController;
+	}
+
+	public void setAsdcController(String asdcController) {
+		this.asdcController = asdcController;
+	}
+
+	public String getCatalogdbAdapter() {
+		return catalogdbAdapter;
+	}
+
+	public void setCatalogdbAdapter(String catalogdbAdapter) {
+		this.catalogdbAdapter = catalogdbAdapter;
+	}
+
+	public String getRequestdbAdapter() {
+		return requestdbAdapter;
+	}
+
+	public void setRequestdbAdapter(String requestdbAdapter) {
+		this.requestdbAdapter = requestdbAdapter;
+	}
+
+	public String getOpenstackAdapter() {
+		return openstackAdapter;
+	}
+
+	public void setOpenstackAdapter(String openstackAdapter) {
+		this.openstackAdapter = openstackAdapter;
+	}
+
+	public String getRequestdbAdapterAttsvc() {
+		return requestdbAdapterAttsvc;
+	}
+
+	public void setRequestdbAdapterAttsvc(String requestdbAdapterAttsvc) {
+		this.requestdbAdapterAttsvc = requestdbAdapterAttsvc;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+	
+	@Override
+	public String toString() {
+     return new ToStringBuilder(this).
+    	       append("apih", this.apih).
+    	       append("pbmn", this.bpmn).
+    	       append("sdncAdapter", this.sdncAdapter).
+    	       append("asdcController", this.asdcController).
+    	       append("catalogdbAdapter", this.catalogdbAdapter).
+    	       append("requestdbAdapter", this.requestdbAdapter).
+    	       append("openstackAdapter", this.openstackAdapter).
+    	       append("requestdbAdapterAttsvc", this.requestdbAdapterAttsvc).
+    	       append("message", this.message).
+    	       toString();		
+	}
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckStatus.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckStatus.java
new file mode 100644
index 0000000..89c4e0e
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/HealthcheckStatus.java
@@ -0,0 +1,34 @@
+/*-
+ * ============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.apihandlerinfra;
+
+public enum HealthcheckStatus {
+    UP("UP"), DOWN("DOWN"); 
+	
+    private String status; 
+    private HealthcheckStatus(String status) { 
+        this.status = status; 
+    } 
+    
+    @Override 
+    public String toString(){ 
+        return status; 
+    } 
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoSubsystems.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoSubsystems.java
new file mode 100644
index 0000000..cfdce47
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoSubsystems.java
@@ -0,0 +1,42 @@
+/*-
+ * ============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.apihandlerinfra;
+
+public enum MsoSubsystems {
+	APIH ("API Handler"), 
+	ASDC ("ASDC Controller"), 
+	BPMN ("BPMN Infra"), 
+	CATALOGDB ("CatalogDb Adapter"), 
+	OPENSTACK ("Openstack Adapter"), 
+	REQUESTDB ("RequestDB Adapter"), 
+	REQUESTDBATT ("RequestDB Adapter ATT Svc"), 
+	SDNC ("SDNC Adapter");
+	private String subsystem;
+	private MsoSubsystems(String subsystem){
+		this.subsystem = subsystem;
+	}
+	
+    @Override 
+    public String toString(){ 
+        return subsystem; 
+    } 	
+	
+}
+
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 8047893..e2b1234 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
@@ -111,7 +111,7 @@
 	private static String NAME = "name";
 	private static String VALUE = "value";
 	private static final String SAVE_TO_DB = "save instance to db";
-
+	
 	@Autowired
 	private Environment env;
 	
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SubsystemHealthcheckResponse.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SubsystemHealthcheckResponse.java
new file mode 100644
index 0000000..625df66
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SubsystemHealthcheckResponse.java
@@ -0,0 +1,36 @@
+/*-
+ * ============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.apihandlerinfra;
+
+import java.io.Serializable;
+
+public class SubsystemHealthcheckResponse implements Serializable {
+	private static final long serialVersionUID = 1L;
+	private String status;
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/CatalogDBConfig.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/CatalogDBConfig.java
index f7d7190..3aa54bd 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/CatalogDBConfig.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/CatalogDBConfig.java
@@ -25,7 +25,7 @@
 import javax.sql.DataSource;
 
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
 import org.springframework.context.annotation.Bean;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/RequestDBConfig.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/RequestDBConfig.java
index 2298ccd..908b864 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/RequestDBConfig.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/configuration/RequestDBConfig.java
@@ -25,7 +25,7 @@
 import javax.sql.DataSource;
 
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
 import org.springframework.context.annotation.Bean;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application-local.yaml b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application-local.yaml
index acc0406..cabee8e 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application-local.yaml
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application-local.yaml
@@ -17,6 +17,16 @@
 
 
 mso:
+  health:
+    endpoints:
+      catalogdb: http://localhost:8800
+      sdnc: http://localhost:8400
+      openstack: http://localhost:8300
+      requestdb: http://localhost:8700
+      bpmn: http://localhost:8200
+      asdc: http://localhost:8400
+      requestdbattsvc: http://localhost:8600
+      
   adapters:
     requestDb:
       auth: Basic YnBlbDptc28tZGItMTUwNyE=
@@ -45,16 +55,16 @@
     homing:
       sdna:
         url: http://localhost:8089/
-        password: 4112B789E942B161228F7D5AFC654C0F  
+        password: 4E0BDC08EE8EDC0572ABBE9FD2D59B62DB725A00B8469E39393D6C86D64284C5D34A57D56F7B58C375316F
   camundaURL: http://localhost:8089/
-  camundaAuth: F8E9452B55DDE4CCE77547B0E748105C54CF5EF1351B4E2CBAABF2981EFE776D
+  camundaAuth: E8E19DD16CC90D2E458E8FF9A884CC0452F8F3EB8E321F96038DE38D5C1B0B02DFAE00B88E2CF6E2A4101AB2C011FC161212EE
   async:
     core-pool-size: 50
     max-pool-size: 50
     queue-capacity: 500
   sdc:
     client:
-      auth: F3473596C526938329DF877495B494DC374D1C4198ED3AD305EA3ADCBBDA1862
+      auth: 97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF
     activate:
       instanceid: test
       userid: cs0008
@@ -66,7 +76,7 @@
         count: 3
   aai:
     endpoint: http://localhost:28090
-    auth: 26AFB797A6A57960D5D718491925C50F77CDC22AC394B3DBA09950D8FD1C0764
+    auth: 5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C
   grm:
     endpoint: http://localhost:28090
     username: gmruser
@@ -108,7 +118,7 @@
 # H2
 spring:
   datasource:
-    url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
+    jdbc-url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
     username: sa
     password: sa
     driver-class-name: org.h2.Driver
@@ -151,7 +161,7 @@
       role: ACTUATOR      
 request:
   datasource:
-    url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
+    jdbc-url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
     username: sa
     password: sa
     driver-class-name: org.h2.Driver
@@ -159,4 +169,11 @@
 
 #Actuator
 management: 
-  context-path: /manage
\ No newline at end of file
+  context-path: /manage
+
+org:
+  onap:
+    so:
+      adapters:
+        network:
+          encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
index 52bf3ff..9387d08 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
@@ -27,7 +27,7 @@
                 
 spring:
   datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
+    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver
@@ -49,7 +49,7 @@
                        
 request:
   datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver  
@@ -60,11 +60,24 @@
       test-on-borrow: true
 
 #Actuator
-management: 
-  context-path: /manage
+management:
+  endpoints:
+    web:
+      base-path: /manage
+  server:
+    servlet:
+      context-path: /manage
   metrics:
     se-global-registry: false
     export:
       prometheus:
         enabled: true # Whether exporting of metrics to Prometheus is enabled.
         step: 1m # Step size (i.e. reporting frequency) to use.  
+ 
+
+org:
+  onap:
+    so:
+      adapters:
+        network:
+          encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/BaseTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/BaseTest.java
index 4072613..508277f 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/BaseTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/BaseTest.java
@@ -31,7 +31,7 @@
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.logger.MsoLogger.Catalog;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.web.client.TestRestTemplate;
 import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock;
@@ -53,7 +53,6 @@
 @ActiveProfiles("test")
 @ContextConfiguration
 @Transactional
-//@Sql(executionPhase=ExecutionPhase.AFTER_TEST_METHOD,scripts="classpath:InfraActiveRequestsReset.sql")
 @AutoConfigureWireMock(port = 0)
 public abstract class BaseTest {
 	protected MsoLogger logger = MsoLogger.getMsoLogger(Catalog.GENERAL, BaseTest.class);
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/E2EServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/E2EServiceInstancesTest.java
index a3d388a..8d5539c 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/E2EServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/E2EServiceInstancesTest.java
@@ -271,4 +271,4 @@
 		RequestError realResponse = mapper.readValue(response.getBody(), RequestError.class);
 		assertTrue(realResponse.getServiceException().getText().contains("Request Failed due to BPEL error with HTTP Status"));
 	}
-}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedCatalogDbConfig.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedCatalogDbConfig.java
index f504d88..1e4b99d 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedCatalogDbConfig.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedCatalogDbConfig.java
@@ -25,7 +25,7 @@
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedRequestDbConfig.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedRequestDbConfig.java
index d150fd7..00efb6b 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedRequestDbConfig.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/EmbeddedRequestDbConfig.java
@@ -25,7 +25,7 @@
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
 import org.springframework.context.annotation.Bean;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandlerTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandlerTest.java
new file mode 100644
index 0000000..f7e605b
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/GlobalHealthcheckHandlerTest.java
@@ -0,0 +1,236 @@
+/*-
+ * ============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.apihandlerinfra;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+
+import org.springframework.test.util.ReflectionTestUtils;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.json.JSONException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+
+public class GlobalHealthcheckHandlerTest {
+    @Mock
+    RestTemplate restTemplate;
+
+    @Mock
+    ContainerRequestContext requestContext;
+    
+    @InjectMocks
+    @Spy
+	GlobalHealthcheckHandler globalhealth;
+	
+    @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); 
+    
+    @Test
+    public void testQuerySubsystemHealthNullResult(){
+    	ReflectionTestUtils.setField(globalhealth, "actuatorContextPath", "/manage");
+    	ReflectionTestUtils.setField(globalhealth, "endpointBpmn", "http://localhost:8080");
+    	
+		Mockito.when(restTemplate.exchange(Matchers.any(URI.class), 
+				Matchers.any(HttpMethod.class), 
+				Matchers.<HttpEntity<?>> any(), 
+				Matchers.<Class<Object>> any())).thenReturn(null);
+		
+		String result = globalhealth.querySubsystemHealth(MsoSubsystems.BPMN);
+		System.out.println(result);
+		assertEquals(HealthcheckStatus.DOWN.toString(),result);		
+    }
+    
+    @Test
+    public void testQuerySubsystemHealthNotNullResult(){
+    	ReflectionTestUtils.setField(globalhealth, "actuatorContextPath", "/manage");
+    	ReflectionTestUtils.setField(globalhealth, "endpointAsdc", "http://localhost:8080");
+    	
+		SubsystemHealthcheckResponse subSystemResponse = new SubsystemHealthcheckResponse();
+		subSystemResponse.setStatus("UP");
+		ResponseEntity<Object> r = new ResponseEntity<>(subSystemResponse,HttpStatus.OK);
+		
+		Mockito.when(restTemplate.exchange(Matchers.any(URI.class), 
+				Matchers.any(HttpMethod.class), 
+				Matchers.<HttpEntity<?>> any(), 
+				Matchers.<Class<Object>> any())).thenReturn(r);
+		
+		String result = globalhealth.querySubsystemHealth(MsoSubsystems.ASDC);
+		System.out.println(result);
+		assertEquals(HealthcheckStatus.UP.toString(),result);	    	
+    }
+    
+    private Response globalHealthcheck (String status){
+    	ReflectionTestUtils.setField(globalhealth, "actuatorContextPath", "/manage");
+    	ReflectionTestUtils.setField(globalhealth, "endpointAsdc", "http://localhost:8080");
+    	ReflectionTestUtils.setField(globalhealth, "endpointSdnc", "http://localhost:8081");
+    	ReflectionTestUtils.setField(globalhealth, "endpointBpmn", "http://localhost:8082");
+    	ReflectionTestUtils.setField(globalhealth, "endpointCatalogdb", "http://localhost:8083");
+    	ReflectionTestUtils.setField(globalhealth, "endpointOpenstack", "http://localhost:8084");
+    	ReflectionTestUtils.setField(globalhealth, "endpointRequestdb", "http://localhost:8085");
+    	ReflectionTestUtils.setField(globalhealth, "endpointRequestdbAttsvc", "http://localhost:8086");
+
+		SubsystemHealthcheckResponse subSystemResponse = new SubsystemHealthcheckResponse();
+
+		subSystemResponse.setStatus(status);
+		ResponseEntity<Object> r = new ResponseEntity<>(subSystemResponse,HttpStatus.OK);		
+		Mockito.when(restTemplate.exchange(Matchers.any(URI.class), 
+				Matchers.any(HttpMethod.class), 
+				Matchers.<HttpEntity<?>> any(), 
+				Matchers.<Class<Object>> any())).thenReturn(r);
+		
+		Mockito.when(requestContext.getProperty(anyString())).thenReturn("1234567890");
+		Response response = globalhealth.globalHealthcheck(true, requestContext);
+		
+		return response;
+    }
+    
+	@Test
+	public void globalHealthcheckAllUPTest() throws JSONException {
+		Response response = globalHealthcheck("UP");
+		assertEquals(Response.Status.OK.getStatusCode(),response.getStatus());
+		HealthcheckResponse root;
+		root = (HealthcheckResponse) response.getEntity();		
+		String apistatus = root.getApih();
+		assertTrue(apistatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));
+		
+		String bpmnstatus = root.getBpmn();
+		assertTrue(bpmnstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));
+		
+		String sdncstatus = root.getSdncAdapter();
+		assertTrue(sdncstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));
+		
+		String asdcstatus = root.getAsdcController();
+		assertTrue(asdcstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));
+		
+		String catastatus = root.getCatalogdbAdapter();
+		assertTrue(catastatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));			
+		
+		String reqdbstatus = root.getRequestdbAdapter();
+		assertTrue(reqdbstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));			
+		
+		String openstatus = root.getOpenstackAdapter();
+		assertTrue(openstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));			
+
+		String reqdbattstatus = root.getRequestdbAdapterAttsvc();
+		assertTrue(reqdbattstatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));			
+	}
+	
+	@Test
+	public void globalHealthcheckAllDOWNTest() throws JSONException {
+		Response response = globalHealthcheck("DOWN");
+		assertEquals(Response.Status.OK.getStatusCode(),response.getStatus());
+		HealthcheckResponse root;
+		root = (HealthcheckResponse) response.getEntity();		
+		String apistatus = root.getApih();
+		assertTrue(apistatus.equalsIgnoreCase(HealthcheckStatus.UP.toString()));
+		
+		String bpmnstatus = root.getBpmn();
+		assertTrue(bpmnstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));
+		
+		String sdncstatus = root.getSdncAdapter();
+		assertTrue(sdncstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));
+		
+		String asdcstatus = root.getAsdcController();
+		assertTrue(asdcstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));
+		
+		String catastatus = root.getCatalogdbAdapter();
+		assertTrue(catastatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));			
+		
+		String reqdbstatus = root.getRequestdbAdapter();
+		assertTrue(reqdbstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));			
+		
+		String openstatus = root.getOpenstackAdapter();
+		assertTrue(openstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));			
+
+		String reqdbattstatus = root.getRequestdbAdapterAttsvc();
+		assertTrue(reqdbattstatus.equalsIgnoreCase(HealthcheckStatus.DOWN.toString()));			
+	}
+
+	@Test
+	public void buildHttpEntityForRequestTest(){
+		HttpEntity<String> he = globalhealth.buildHttpEntityForRequest();
+		assertEquals (MediaType.APPLICATION_JSON,he.getHeaders().getAccept().get(0));
+		assertEquals (MediaType.APPLICATION_JSON,he.getHeaders().getContentType());
+	}
+	
+	@Test
+	public void getEndpointUrlForSubsystemEnumTest(){
+    	ReflectionTestUtils.setField(globalhealth, "actuatorContextPath", "/manage");
+    	ReflectionTestUtils.setField(globalhealth, "endpointAsdc", "http://localhost:8080");
+    	ReflectionTestUtils.setField(globalhealth, "endpointSdnc", "http://localhost:8081");
+    	ReflectionTestUtils.setField(globalhealth, "endpointBpmn", "http://localhost:8082");
+    	ReflectionTestUtils.setField(globalhealth, "endpointCatalogdb", "http://localhost:8083");
+    	ReflectionTestUtils.setField(globalhealth, "endpointOpenstack", "http://localhost:8084");
+    	ReflectionTestUtils.setField(globalhealth, "endpointRequestdb", "http://localhost:8085");
+    	ReflectionTestUtils.setField(globalhealth, "endpointRequestdbAttsvc", "http://localhost:8086");
+    	
+		String result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.ASDC);
+		assertEquals("http://localhost:8080", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.SDNC);
+		assertEquals("http://localhost:8081", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.BPMN);
+		assertEquals("http://localhost:8082", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.CATALOGDB);
+		assertEquals("http://localhost:8083", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.OPENSTACK);
+		assertEquals("http://localhost:8084", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.REQUESTDB);
+		assertEquals("http://localhost:8085", result);
+		result = globalhealth.getEndpointUrlForSubsystemEnum(MsoSubsystems.REQUESTDBATT);
+		assertEquals("http://localhost:8086", result);
+	}
+	
+	@Test
+	public void processResponseFromSubsystemTest(){
+		SubsystemHealthcheckResponse subSystemResponse = new SubsystemHealthcheckResponse();
+		subSystemResponse.setStatus("UP");
+		ResponseEntity<SubsystemHealthcheckResponse> r = new ResponseEntity<>(subSystemResponse,HttpStatus.OK);
+		String result = globalhealth.processResponseFromSubsystem(r,MsoSubsystems.BPMN);
+		assertEquals("UP",result);
+	}
+	
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/HealthCheckHandlerTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/HealthCheckHandlerTest.java
deleted file mode 100644
index 8b4d353..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/HealthCheckHandlerTest.java
+++ /dev/null
@@ -1,55 +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.apihandlerinfra;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-
-import javax.ws.rs.core.Response;
-
-import org.json.JSONException;
-import org.junit.Test;
-import org.springframework.boot.test.web.client.TestRestTemplate;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-
-
-public class HealthCheckHandlerTest extends BaseTest{
-		
-	@Test
-	public void testHealthcheckGet() throws JSONException {
-		HttpHeaders headers = new HttpHeaders();
-		HttpEntity<String> entity = new HttpEntity<String>(null, headers);
-
-		ResponseEntity<String> response = restTemplate.exchange(
-				createURLWithPort("/manage/health"),
-				HttpMethod.GET, entity, String.class);
-		
-		assertEquals(Response.Status.OK.getStatusCode(),response.getStatusCode().value());
-		assertThat(response.getBody(), containsString("UP"));
-	
-	}
-
-
-}
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 f4fede1..bb78c82 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
@@ -27,7 +27,8 @@
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
+
+import static com.shazam.shazamcrest.MatcherAssert.assertThat;
 
 import java.io.IOException;
 import java.util.Map;
@@ -44,6 +45,8 @@
 import org.onap.so.apihandlerinfra.tasksbeans.TasksRequest;
 import org.onap.so.apihandlerinfra.tasksbeans.ValidResponses;
 import org.onap.so.logger.MsoLogger;
+import org.onap.so.serviceinstancebeans.RequestError;
+import org.onap.so.serviceinstancebeans.ServiceException;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
@@ -52,6 +55,7 @@
 
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.tomakehurst.wiremock.http.Fault;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
 
@@ -134,4 +138,111 @@
                 assertEquals("1.0.0", response.getHeaders().get("X-LatestVersion").get(0));
             }
     }
+    @Test
+    public void completeTaskMappingError() throws IOException {
+        String invalidRequest = "test";
+        RequestError expectedResponse = new RequestError();
+        ServiceException se = new ServiceException();
+        se.setMessageId("SVC0002");
+        se.setText("Mapping of request to JSON object failed: Unrecognized token \'test\': "
+        		+ "was expecting \'null\', \'true\', \'false\' or NaN\n at [Source: (String)\"test\"; line: 1, column: 9]");
+        expectedResponse.setServiceException(se);
+	
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Accept", MediaType.APPLICATION_JSON);
+        headers.set("Content-Type", MediaType.APPLICATION_JSON);
+        headers.set(MsoLogger.ECOMP_REQUEST_ID, "987654321");
+        headers.set(MsoLogger.CLIENT_ID, "VID");
+        HttpEntity<String> entity = new HttpEntity<String>(invalidRequest, headers);
+
+        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(basePath) + "55" + "/complete");	       
+        ResponseEntity<String> response = restTemplate.exchange(
+                builder.toUriString(),
+                HttpMethod.POST, entity, String.class);
+
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        
+        RequestError realResponse = mapper.readValue(response.getBody(), RequestError.class);
+        assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatusCode().value());	
+        assertThat(realResponse, sameBeanAs(expectedResponse));
+    }
+    @Test
+    public void completeTaskValidationError() throws IOException {
+        String taskId = "55";
+        TasksRequest taskReq = new TasksRequest();
+        RequestDetails reqDetail = new RequestDetails();
+        RequestInfo reqInfo = new RequestInfo();
+        reqInfo.setSource("testSource");	
+        reqInfo.setResponseValue(ValidResponses.skip);
+        reqDetail.setRequestInfo(reqInfo);
+        taskReq.setRequestDetails(reqDetail);
+
+        RequestError expectedResponse = new RequestError();
+        ServiceException se = new ServiceException();
+        se.setMessageId("SVC0002");
+        se.setText("Mapping of request to JSON Object failed. No valid requestorId is specified");
+        expectedResponse.setServiceException(se);
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Accept", MediaType.APPLICATION_JSON);
+        headers.set("Content-Type", MediaType.APPLICATION_JSON);
+        headers.set(MsoLogger.ECOMP_REQUEST_ID, "987654321");
+        headers.set(MsoLogger.CLIENT_ID, "VID");
+        HttpEntity<TasksRequest> entity = new HttpEntity<TasksRequest>(taskReq, headers);
+
+        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(basePath) + taskId + "/complete");	       
+        ResponseEntity<String> response = restTemplate.exchange(
+                builder.toUriString(),
+                HttpMethod.POST, entity, String.class);
+
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        RequestError realResponse = mapper.readValue(response.getBody(), RequestError.class);
+        assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatusCode().value());	
+        assertThat(realResponse, sameBeanAs(expectedResponse));
+    }
+    @Test
+    public void completeTaskBpelResponseError() throws IOException {
+        stubFor(post(urlPathEqualTo("/sobpmnengine/task/55/complete"))
+                .willReturn(aResponse().withHeader("Content-Type", "application/json").withFault(Fault.EMPTY_RESPONSE)));
+
+        String taskId = "55";
+        TasksRequest taskReq = new TasksRequest();
+        RequestDetails reqDetail = new RequestDetails();
+        RequestInfo reqInfo = new RequestInfo();
+        reqInfo.setRequestorId("testId");
+        reqInfo.setSource("testSource");	
+        reqInfo.setResponseValue(ValidResponses.skip);
+        reqDetail.setRequestInfo(reqInfo);
+        taskReq.setRequestDetails(reqDetail);
+
+        RequestError expectedResponse = new RequestError();
+        ServiceException se = new ServiceException();
+        se.setMessageId("SVC1000");
+        se.setText("Request Failed due to BPEL error with HTTP Status = 502");
+        expectedResponse.setServiceException(se);
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Accept", MediaType.APPLICATION_JSON);
+        headers.set("Content-Type", MediaType.APPLICATION_JSON);
+        headers.set(MsoLogger.ECOMP_REQUEST_ID, "987654321");
+        headers.set(MsoLogger.CLIENT_ID, "VID");
+        HttpEntity<TasksRequest> entity = new HttpEntity<TasksRequest>(taskReq, headers);
+
+        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(basePath) + taskId + "/complete");	       
+        ResponseEntity<String> response = restTemplate.exchange(
+                builder.toUriString(),
+                HttpMethod.POST, entity, String.class);
+
+
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        RequestError realResponse = mapper.readValue(response.getBody(), RequestError.class);
+        assertEquals(Response.Status.BAD_GATEWAY.getStatusCode(), response.getStatusCode().value());	
+        assertThat(realResponse, sameBeanAs(expectedResponse));
+    }
 }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
index ea2261a..58d6b7f 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
@@ -439,4 +439,4 @@
                 .withBody(new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/getRequestDetailsFilter.json"))))
                 .withStatus(HttpStatus.SC_OK)));
     }
-}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/TasksHandlerTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/TasksHandlerTest.java
index fa323a1..c7b4cc0 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/TasksHandlerTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/TasksHandlerTest.java
@@ -120,4 +120,4 @@
         assertEquals("1.0.0", response.getHeaders().get("X-LatestVersion").get(0));
 	}
 
-}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestDetailsTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestDetailsTest.java
deleted file mode 100644
index 80cd0fa..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestDetailsTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-import static org.junit.Assert.assertTrue;
-import org.junit.Before;
-import org.junit.Test;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-
-public class RequestDetailsTest {
-
-	RequestDetails _requestDetails;
-	RequestInfo _requestInfo;
-
-	public RequestDetailsTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_requestDetails = mock(RequestDetails.class);
-		_requestInfo = new RequestInfo();
-		when(_requestDetails.getRequestInfo()).thenReturn(_requestInfo);
-	}
-
-	@After
-	public void tearDown() {
-		_requestDetails = null;
-		_requestInfo = null;
-	}
-
-	/**
-	 * Test of getRequestInfo method
-	 */
-	@Test
-	public void testGetRequestInfo() {
-		_requestDetails.setRequestInfo(_requestInfo);
-		assertTrue(_requestDetails.getRequestInfo().equals(_requestInfo));
-
-	}
-
-	/**
-	 * Test setRequestInfo
-	 */
-	@Test
-	public void testSetRequestInfo() {
-		_requestDetails.setRequestInfo(_requestInfo);
-		verify(_requestDetails).setRequestInfo(_requestInfo);
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestInfoTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestInfoTest.java
deleted file mode 100644
index 852376e..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/RequestInfoTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class RequestInfoTest {
-
-	RequestInfo _requestInfo;
-	String _source;
-	ValidResponses _responseValue;
-	String _requestorId;
-
-	public RequestInfoTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_requestInfo = mock(RequestInfo.class);
-		_responseValue = ValidResponses.abort;
-		_requestorId = "xxxxxx";
-		_source = "VID";
-		when(_requestInfo.getRequestorId()).thenReturn(_requestorId);
-		when(_requestInfo.getSource()).thenReturn(_source);
-		when(_requestInfo.getResponseValue()).thenReturn(_responseValue);
-
-	}
-
-	@After
-	public void tearDown() {
-		_requestInfo = null;
-		_responseValue = null;
-	}
-
-	/**
-	 * Test of getSource method
-	 */
-	@Test
-	public void testGetSource() {
-	        String result = _requestInfo.getSource();
-	        assertEquals(_source, result);
-
-	}
-
-	/**
-	 * Test setSource
-	 */
-	@Test
-	public void testSetSource() {
-		_requestInfo.setSource("VID");
-		verify(_requestInfo).setSource(_source);
-	}
-	
-	/**
-	 * Test of getRequestorId method
-	 */
-	@Test
-	public void testGetRequestorId() {
-	        String result = _requestInfo.getRequestorId();
-	        assertEquals(_requestorId, result);
-
-	}
-
-	/**
-	 * Test setRequestInfo
-	 */
-	@Test
-	public void testSetRequestorId() {
-		_requestInfo.setRequestorId(_requestorId);
-		verify(_requestInfo).setRequestorId(_requestorId);
-	}
-	
-
-	/**
-	 * Test of getResponseValue method
-	 */
-	@Test
-	public void testGetResponseValue() {
-		ValidResponses result = _requestInfo.getResponseValue();
-	        assertEquals(_responseValue, result);
-
-	}
-
-	/**
-	 * Test setResponseValues method
-	 */
-	@Test
-	public void testSetResponseValue() {
-		_requestInfo.setResponseValue(ValidResponses.abort);
-		verify(_requestInfo).setResponseValue(_responseValue);
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskListTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskListTest.java
deleted file mode 100644
index 62bfee9..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskListTest.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TaskListTest {
-
-	TaskList _taskList;
-	protected String _taskId;
-	protected String _type;
-	protected String _nfRole;
-	protected String _subscriptionServiceType;
-	protected String _originalRequestId;
-	protected String _originalRequestorId;
-	protected String _errorSource;
-	protected String _errorCode;
-	protected String _errorMessage;
-	protected String _buildingBlockName;
-	protected String _buildingBlockStep;
-	protected List<String> _validResponses;
-
-	public TaskListTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_taskList = mock(TaskList.class);
-		_taskId = "_taskid";
-		_type = "type";
-		_nfRole = "nfrole";
-		_subscriptionServiceType = "subscriptionservicetype";
-		_originalRequestId = "originalrequestid";
-		_originalRequestorId = "originalrequestorid";
-		_errorSource = "errorsource";
-		_errorCode = "errorcode";
-		_errorMessage = "errormessage";
-		_buildingBlockName = "buildingblockname";
-		_buildingBlockStep = "buildingblockstep";
-		_validResponses = mock(List.class);
-
-		when(_taskList.getTaskId()).thenReturn(_taskId);
-		when(_taskList.getType()).thenReturn(_type);
-		when(_taskList.getNfRole()).thenReturn(_nfRole);
-		when(_taskList.getSubscriptionServiceType()).thenReturn(_subscriptionServiceType);
-		when(_taskList.getOriginalRequestId()).thenReturn(_originalRequestId);
-		when(_taskList.getOriginalRequestorId()).thenReturn(_originalRequestorId);
-		when(_taskList.getErrorSource()).thenReturn(_errorSource);
-		when(_taskList.getErrorCode()).thenReturn(_errorCode);
-		when(_taskList.getErrorMessage()).thenReturn(_errorMessage);
-		when(_taskList.getBuildingBlockName()).thenReturn(_buildingBlockName);
-		when(_taskList.getBuildingBlockStep()).thenReturn(_buildingBlockStep);
-		when(_taskList.getValidResponses()).thenReturn(_validResponses);
-	}
-
-	@After
-	public void tearDown() {
-		_taskList = null;
-		_validResponses = null;
-	}
-
-	@Test
-	public void testGetTaskId() {
-		String result = _taskList.getTaskId();
-		assertEquals(_taskId, result);
-
-	}
-
-	@Test
-	public void testSetTaskId() {
-		_taskList.setTaskId("_taskid");
-		verify(_taskList).setTaskId(_taskId);
-	}
-
-	@Test
-	public void testGetType() {
-		String result = _taskList.getType();
-		assertEquals(_type, result);
-
-	}
-
-	@Test
-	public void testSetType() {
-		_taskList.setType(_type);
-		verify(_taskList).setType(_type);
-	}
-
-	@Test
-	public void testGetNfRole() {
-		String result = _taskList.getNfRole();
-		assertEquals(_nfRole, result);
-
-	}
-
-	@Test
-	public void testSetNfRole() {
-		_taskList.setType(_nfRole);
-		verify(_taskList).setType(_nfRole);
-	}
-
-	@Test
-	public void testGetSubscriptionServiceType() {
-		String result = _taskList.getSubscriptionServiceType();
-		assertEquals(_subscriptionServiceType, result);
-
-	}
-
-	@Test
-	public void testSetSubscriptionServiceType() {
-		_taskList.setSubscriptionServiceType(_subscriptionServiceType);
-		verify(_taskList).setSubscriptionServiceType(_subscriptionServiceType);
-	}
-
-	@Test
-	public void testGetOriginalRequestId() {
-		String result = _taskList.getOriginalRequestId();
-		assertEquals(_originalRequestId, result);
-
-	}
-
-	@Test
-	public void testSetOriginalRequestId() {
-		_taskList.setOriginalRequestId(_originalRequestId);
-		verify(_taskList).setOriginalRequestId(_originalRequestId);
-	}
-
-	@Test
-	public void testGetOriginalRequestorId() {
-		String result = _taskList.getOriginalRequestorId();
-		assertEquals(_originalRequestorId, result);
-
-	}
-
-	@Test
-	public void testSetOriginalRequestorId() {
-		_taskList.setOriginalRequestorId(_originalRequestorId);
-		verify(_taskList).setOriginalRequestorId(_originalRequestorId);
-	}
-
-	@Test
-	public void testGetErrorSource() {
-		String result = _taskList.getErrorSource();
-		assertEquals(_errorSource, result);
-
-	}
-
-	@Test
-	public void testSetErrorSource() {
-		_taskList.setErrorSource(_errorSource);
-		verify(_taskList).setErrorSource(_errorSource);
-	}
-
-	@Test
-	public void testGetErrorCode() {
-		String result = _taskList.getErrorCode();
-		assertEquals(_errorCode, result);
-
-	}
-
-	@Test
-	public void testSetErrorCode() {
-		_taskList.setErrorCode(_errorCode);
-		verify(_taskList).setErrorCode(_errorCode);
-	}
-
-	@Test
-	public void testGetErrorMessage() {
-		String result = _taskList.getErrorMessage();
-		assertEquals(_errorMessage, result);
-
-	}
-
-	@Test
-	public void testSetErrorMessage() {
-		_taskList.setErrorMessage(_errorMessage);
-		verify(_taskList).setErrorMessage(_errorMessage);
-	}
-
-	@Test
-	public void testGetBuildingBlockName() {
-		String result = _taskList.getBuildingBlockName();
-		assertEquals(_buildingBlockName, result);
-
-	}
-
-	@Test
-	public void testSetBuildingBlockName() {
-		_taskList.setBuildingBlockName(_buildingBlockName);
-		verify(_taskList).setBuildingBlockName(_buildingBlockName);
-	}
-
-	@Test
-	public void testGetBuildingBlockStep() {
-		String result = _taskList.getBuildingBlockStep();
-		assertEquals(_buildingBlockStep, result);
-
-	}
-
-	@Test
-	public void testSetBuildingBlockStep() {
-		_taskList.setBuildingBlockStep(_buildingBlockStep);
-		verify(_taskList).setBuildingBlockStep(_buildingBlockStep);
-	}
-
-	@Test
-	public void testGetValidResponses() {
-
-		List<String> result = _taskList.getValidResponses();
-		assertEquals(_validResponses, result);
-
-	}
-	
-	@Test
-	public void testSetValidResponses() {
-		_taskList.setValidResponses(_validResponses);
-		verify(_taskList).setValidResponses(_validResponses);
-	}
-
-
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskRequestReferenceTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskRequestReferenceTest.java
deleted file mode 100644
index 043f4ea..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskRequestReferenceTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class TaskRequestReferenceTest {
-
-	TaskRequestReference _taskRequestReference;
-
-    protected String _taskId;
-	public TaskRequestReferenceTest() {
-	}
-	
-	@Before
-	public void setUp() {
-		_taskRequestReference = mock(TaskRequestReference.class);
-		_taskId = "taskid";
-	
-		when(_taskRequestReference.getTaskId()).thenReturn(_taskId);
-	}
-
-	@After
-	public void tearDown() {
-		_taskRequestReference = null;
-	}
-
-	/**
-	 * Test getTaskRequestReference 
-	 */
-	@Test
-	public void taskGetRequestReference() {
-		String result = _taskRequestReference.getTaskId();
-        assertEquals(_taskId, result);
-	}
-
-	/**
-	 * Test setTaskRequestReference
-	 */
-	@Test
-	public void testSetRequestInfo() {
-		_taskRequestReference.setTaskId(_taskId);
-		verify(_taskRequestReference).setTaskId(_taskId);
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariableValueTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariableValueTest.java
deleted file mode 100644
index bc6a5ab..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariableValueTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class TaskVariableValueTest {
-	TaskVariableValue _taskVariableValue;
-	protected String _name;
-	protected String _value;
-	protected String _operator;
-
-	public TaskVariableValueTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_taskVariableValue = mock(TaskVariableValue.class);
-		_name = "name";
-		_value = "value";
-		_operator = "operator";
-		when(_taskVariableValue.getName()).thenReturn(_name);
-		when(_taskVariableValue.getValue()).thenReturn(_value);
-		when(_taskVariableValue.getOperator()).thenReturn(_operator);
-	}
-
-	@After
-	public void tearDown() {
-		_taskVariableValue = null;
-	}
-
-	/**
-	 * Test of getName method
-	 */
-	@Test
-	public void testGetName() {
-		_taskVariableValue.setName(_name);
-		assertEquals(_taskVariableValue.getName(),_name);
-
-	}
-
-	/**
-	 * Test setName
-	 */
-	@Test
-	public void testSetName() {
-		_taskVariableValue.setName(_name);
-		verify(_taskVariableValue).setName(_name);
-	}
-	
-	/**
-	 * Test of getName method
-	 */
-	@Test
-	public void testGetValue() {
-		_taskVariableValue.setValue(_value);
-		assertEquals(_taskVariableValue.getValue(),_value);
-
-	}
-
-	/**
-	 * Test setName
-	 */
-	@Test
-	public void testSetValue() {
-		_taskVariableValue.setValue(_value);
-		verify(_taskVariableValue).setValue(_value);
-	}
-	
-	/**
-	 * Test of getName method
-	 */
-	@Test
-	public void testGetOperator() {
-		_taskVariableValue.setOperator(_operator);
-		assertEquals(_taskVariableValue.getOperator(),_operator);
-
-	}
-
-	/**
-	 * Test setName
-	 */
-	@Test
-	public void testSetRequestDetails() {
-		_taskVariableValue.setOperator(_operator);
-		verify(_taskVariableValue).setOperator(_operator);
-	}
-
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariablesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariablesTest.java
deleted file mode 100644
index 8e2c3ae..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TaskVariablesTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-
-public class TaskVariablesTest {
-
-	TaskVariables _taskVariables;
-	private List<TaskVariableValue> _taskVariableValueList;
-
-	public TaskVariablesTest() {
-	}
-
-	@SuppressWarnings("unchecked")
-	@Before
-	public void setUp() {
-		_taskVariables = mock(TaskVariables.class);
-		_taskVariableValueList  = mock(List.class);
-		when(_taskVariables.getTaskVariables()).thenReturn(_taskVariableValueList);
-	}
-
-	@After
-	public void tearDown() {
-		_taskVariables = null;
-	}
-
-	@Test
-	public void testGetTaskVariables() {
-		List<TaskVariableValue> result = _taskVariables.getTaskVariables();
-		assertEquals(_taskVariableValueList, result);
-
-	}
-
-	@Test
-	public void testSetTaskVariables() {
-		_taskVariables.setTaskVariables(_taskVariableValueList);
-		verify(_taskVariables).setTaskVariables(_taskVariableValueList);
-
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksBeansTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksBeansTest.java
new file mode 100644
index 0000000..cbdfe6b
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksBeansTest.java
@@ -0,0 +1,41 @@
+/*-
+ * ============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.apihandlerinfra.tasksbeans;
+
+import org.junit.Test;
+import org.onap.so.apihandlerinfra.BaseTest;
+
+import com.openpojo.reflection.filters.FilterPackageInfo;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.rule.impl.GetterMustExistRule;
+import com.openpojo.validation.rule.impl.SetterMustExistRule;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+
+public class TasksBeansTest extends BaseTest{
+	@Test
+	public void validateGettersAndSetters() {
+		Validator validator = ValidatorBuilder.create().with(new SetterMustExistRule(), new GetterMustExistRule())
+                            .with(new SetterTester(), new GetterTester()).build();
+		validator.validate("org.onap.so.apihandlerinfra.tasksbeans", new FilterPackageInfo());
+	}
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksGetResponseTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksGetResponseTest.java
deleted file mode 100644
index f4ec27e..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksGetResponseTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-
-public class TasksGetResponseTest {
-
-	TasksGetResponse _tasksGetResponse;
-	private List<TaskList> _taskList;
-
-	public TasksGetResponseTest() {
-	}
-
-	@SuppressWarnings("unchecked")
-	@Before
-	public void setUp() {
-		_tasksGetResponse = mock(TasksGetResponse.class);
-		_taskList = mock(List.class);
-		when(_tasksGetResponse.getTaskList()).thenReturn(_taskList);
-	}
-
-	@After
-	public void tearDown() {
-		_tasksGetResponse = null;
-	}
-
-	@Test
-	public void testGetTaskList() {
-		List<TaskList> result = _tasksGetResponse.getTaskList();
-		assertEquals(_taskList, result);
-
-	}
-
-	@Test
-	public void testSetTaskList() {
-		_tasksGetResponse.setTaskList(_taskList);
-		verify(_tasksGetResponse).setTaskList(_taskList);
-
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksRequestTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksRequestTest.java
deleted file mode 100644
index 09af2b0..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/TasksRequestTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-import static org.junit.Assert.assertTrue;
-import org.junit.Before;
-import org.junit.Test;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-
-public class TasksRequestTest {
-	TasksRequest _tasksRequest;
-	private RequestDetails _requestDetails;
-
-	public TasksRequestTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_tasksRequest = mock(TasksRequest.class);
-		_requestDetails = new RequestDetails();
-		when(_tasksRequest.getRequestDetails()).thenReturn(_requestDetails);
-	}
-
-	@After
-	public void tearDown() {
-		_tasksRequest = null;
-	}
-
-	/**
-	 * Test of getRequestDetails method
-	 */
-	@Test
-	public void testGetRequestDetails() {
-		_tasksRequest.setRequestDetails(_requestDetails);
-		assertTrue(_tasksRequest.getRequestDetails().equals(_requestDetails));
-
-	}
-
-	/**
-	 * Test setRequestDetails
-	 */
-	@Test
-	public void testSetRequestDetails() {
-		_tasksRequest.setRequestDetails(_requestDetails);
-		verify(_tasksRequest).setRequestDetails(_requestDetails);
-	}
-
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/ValueTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/ValueTest.java
deleted file mode 100644
index dc5cf8e..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/ValueTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class ValueTest {
-	Value _valueInstance;
-	protected String _value;
-
-	public ValueTest() {
-	}
-
-	@Before
-	public void setUp() {
-		_valueInstance = mock(Value.class);
-		_value = "_value";
-		when(_valueInstance.getValue()).thenReturn(_value);
-	}
-
-	@After
-	public void tearDown() {
-		_valueInstance = null;
-	}
-
-	/**
-	 * Test of getValue method
-	 */
-	@Test
-	public void testGetValue() {
-		_valueInstance.setValue(_value);
-		assertEquals(_valueInstance.getValue(),_value);
-
-	}
-
-	/**
-	 * Test setValue
-	 */
-	@Test
-	public void testSetValue() {
-		_valueInstance.setValue(_value);
-		verify(_valueInstance).setValue(_value);
-	}
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/VariablesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/VariablesTest.java
deleted file mode 100644
index d79e5f6..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tasksbeans/VariablesTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.apihandlerinfra.tasksbeans;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class VariablesTest {
-
-	Variables _variables;
-	protected Value _source;
-	protected Value _responseValue;
-    protected Value _requestorId;
-   
-    @Before
-	public void setUp() {
-    	_variables = mock(Variables.class);
-        _source = mock(Value.class);
-        _responseValue = mock(Value.class);
-        _requestorId = mock(Value.class);
-        
-		when(_variables.getSource()).thenReturn(_source);
-		when(_variables.getRequestorId()).thenReturn(_requestorId);
-		when(_variables.getResponseValue()).thenReturn(_responseValue);
-		
-	}
-
-	@After
-	public void tearDown() {
-		_variables = null;
-		_source = null;
-		_responseValue = null;
-		_requestorId = null;
-	}
-	
-	@Test
-    public void testGetSource() {
-		_variables.setSource(_source);
-		assertTrue(_variables.getSource().equals(_source));
-    }
-
-	@Test
-	public void testSetSource(){
-		_variables.setSource(_source);
-		verify(_variables).setSource(_source);
-		}	
-	
-	@Test
-    public void testGetResponseValue() {
-		_variables.setResponseValue(_responseValue);
-		assertTrue(_variables.getResponseValue().equals(_responseValue));
-    }
-
-	@Test
-	public void testSetResponseValue(){
-		_variables.setResponseValue(_responseValue);
-		verify(_variables).setResponseValue(_responseValue);
-		}	
-	
-	@Test
-    public void testGetRequestorId() {
-		_variables.setRequestorId(_requestorId);
-		assertTrue(_variables.getRequestorId().equals(_requestorId));
-    }
-
-	@Test
-	public void testSetRequestorId(){
-		_variables.setRequestorId(_requestorId);
-		verify(_variables).setRequestorId(_requestorId);
-		}	
-	
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequestTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequestTest.java
index 37ec14a..afcf0f5 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequestTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequestTest.java
@@ -25,7 +25,7 @@
 import static org.hamcrest.Matchers.startsWith;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.contains;
 import static org.mockito.Mockito.doNothing;
@@ -43,7 +43,7 @@
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.apihandler.common.ErrorNumbers;
 import org.onap.so.apihandlerinfra.ApiHandlerApplication;
 import org.onap.so.apihandlerinfra.BaseTest;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/AAIClientHelperTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/AAIClientHelperTest.java
index 9aa961c..f9e3ec6 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/AAIClientHelperTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/AAIClientHelperTest.java
@@ -28,7 +28,7 @@
 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml b/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
index b7b6a8c..6e1d6f3 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
@@ -6,17 +6,17 @@
         max-threads: 50
 ssl-enable: false
 
-apih-healthcheck-urn: /ecomp/mso/healthcheck,/ecomp/mso/homing/healthcheck,/ecomp/mso/infra/healthcheck,/asdc/healthcheck,/dbadapters/healthcheck,/ecomp/mso/catalog/v2/healthcheck
-jra-healthcheck-urn: /networks/rest/healthcheck,/adapters/rest/healthcheck,/vnfs/rest/healthcheck,/tenants/rest/healthcheck,/appc/rest/healthcheck,/workflows/messages/healthcheck
-camunda-healthcheck-urn: /mso/healthcheck
-
-apih-nodehealthcheck-urn: /ecomp/mso/infra/nodehealthcheck
-jra-nodehealthcheck-urn: /adapters/rest/nodehealthcheck
-camunda-nodehealthcheck-urn: /mso/nodehealthcheck
-
-
-
 mso:
+  health:
+    endpoints:
+      catalogdb: http://localhost:${wiremock.server.port}
+      requestdb: http://localhost:${wiremock.server.port}
+      sdnc: http://localhost:${wiremock.server.port}
+      openstack: http://localhost:${wiremock.server.port}
+      bpmn: http://localhost:${wiremock.server.port}
+      asdc: http://localhost:${wiremock.server.port}
+      requestdbattsvc: http://localhost:${wiremock.server.port}
+      
   infra-requests:
     archived:
       period: 180
@@ -48,14 +48,14 @@
         apiMinorVersion: 0
         apiPatchVersion: 0
   camundaURL: http://localhost:${wiremock.server.port}/
-  camundaAuth: F8E9452B55DDE4CCE77547B0E748105C54CF5EF1351B4E2CBAABF2981EFE776D
+  camundaAuth: E8E19DD16CC90D2E458E8FF9A884CC0452F8F3EB8E321F96038DE38D5C1B0B02DFAE00B88E2CF6E2A4101AB2C011FC161212EE
   async:
     core-pool-size: 50
     max-pool-size: 50
     queue-capacity: 500
   sdc:
     client:
-      auth: F3473596C526938329DF877495B494DC374D1C4198ED3AD305EA3ADCBBDA1862
+      auth: 97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF
     activate:
       instanceid: test
       userid: cs0008
@@ -67,7 +67,7 @@
         count: 3
   aai:
     endpoint: http://localhost:${wiremock.server.port}
-    auth: 26AFB797A6A57960D5D718491925C50F77CDC22AC394B3DBA09950D8FD1C0764
+    auth: 5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C
   grm:
     endpoint: http://localhost:${wiremock.server.port}
     username: gmruser
@@ -84,12 +84,11 @@
 
 spring:
   datasource:
-    url: jdbc:mariadb://localhost:3307/catalogdb
+    jdbc-url: jdbc:mariadb://localhost:3307/catalogdb
     username: root
     password: password
     driver-class-name: org.mariadb.jdbc.Driver    
-    initialize: true
-    initialization-mode: never
+    initialization-mode: always
   jpa:   
     generate-ddl: false
     show-sql: false
@@ -108,24 +107,21 @@
       role: InfraPortal-Client
 request:
   datasource:
-    url: jdbc:mariadb://localhost:3307/requestdb
+    jdbc-url: jdbc:mariadb://localhost:3307/requestdb
     username: root
     password: password
     driver-class-name: org.mariadb.jdbc.Driver
-    intialize: false 
     
 mariaDB4j:
   dataDir: 
   port: 3307
   databaseName: catalogdb
   databaseName2: requestdb
-#Actuator
-management: 
-  context-path: /manage
-  endpoints:
-    enabled-by-default: false
-  endpoint:
-    info:
-      enabled: true
-    health:
-      enabled: true
\ No newline at end of file
+
+
+org:
+  onap:
+    so:
+      adapters:
+        network:
+          encryptionKey: aa3871669d893c7fb8abbcda31b88b4f