Containerization feature of SO

Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18
Issue-ID: SO-670
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
diff --git a/common/src/main/java/org/openecomp/mso/client/RestProperties.java b/common/src/main/java/org/onap/so/client/DefaultProperties.java
similarity index 68%
copy from common/src/main/java/org/openecomp/mso/client/RestProperties.java
copy to common/src/main/java/org/onap/so/client/DefaultProperties.java
index ae8862d..84509ea 100644
--- a/common/src/main/java/org/openecomp/mso/client/RestProperties.java
+++ b/common/src/main/java/org/onap/so/client/DefaultProperties.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,13 +18,25 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
 import java.net.MalformedURLException;
 import java.net.URL;
 
-public interface RestProperties {
+public class DefaultProperties implements RestProperties {
 
-	public URL getEndpoint() throws MalformedURLException;
-	public String getSystemName();
+	private final URL url;
+	public DefaultProperties(URL url) {
+		this.url = url;
+	}
+	@Override
+	public URL getEndpoint() throws MalformedURLException {
+		return this.url;
+	}
+
+	@Override
+	public String getSystemName() {
+		return RestClient.ECOMP_COMPONENT_NAME;
+	}
+
 }
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/main/java/org/onap/so/client/HttpClient.java
similarity index 61%
copy from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
copy to common/src/main/java/org/onap/so/client/HttpClient.java
index 799e2f8..ad13745 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
+++ b/common/src/main/java/org/onap/so/client/HttpClient.java
@@ -18,27 +18,36 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.client;
 
-import java.util.List;
-import org.apache.commons.lang3.builder.ToStringBuilder;
+import java.net.URL;
+import java.util.Map;
+import java.util.Optional;
 
+import org.onap.so.utils.TargetEntity;
 
-public class RequestList {
+public class HttpClient extends RestClient {
 
-    protected Request request;
+    private TargetEntity targetEntity;
+	public HttpClient(URL host, String contentType, TargetEntity targetEntity) {
+		super(host, contentType);
+		this.targetEntity = targetEntity;
 
-	public Request getRequest() {
-		return request;
 	}
 
-	public void setRequest(Request request) {
-		this.request = request;
+    @Override
+    public TargetEntity getTargetEntity(){
+        return targetEntity;
+    }
+
+	@Override
+	protected void initializeHeaderMap(Map<String, String> headerMap) {
+
 	}
 
 	@Override
-	public String toString() {
-		return new ToStringBuilder(this).append("request", request).toString();
+	protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() {
+		return Optional.empty();
 	}
 
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java b/common/src/main/java/org/onap/so/client/PreconditionFailedException.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java
rename to common/src/main/java/org/onap/so/client/PreconditionFailedException.java
index df28baa..4ff07a6 100644
--- a/common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java
+++ b/common/src/main/java/org/onap/so/client/PreconditionFailedException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
diff --git a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java b/common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java
similarity index 80%
rename from common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java
rename to common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java
index 19c1784..31cdd50 100644
--- a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java
+++ b/common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,10 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.StringWriter;
 import java.util.Optional;
 
 import javax.ws.rs.BadRequestException;
@@ -33,24 +34,30 @@
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.NotSupportedException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
 import javax.ws.rs.core.Response;
 
-public abstract class ResponseExceptionMapper implements ClientResponseFilter {
+import org.apache.commons.io.IOUtils;
 
-	@Override
-	public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
-		if (responseContext.getStatus() >= 300) {
+public abstract class ResponseExceptionMapper {
+
+	public void map(Response response) {
+		
+		response.bufferEntity();
+		if (response.getStatus() >= 300) {
 			String message = "empty message";
-			if (responseContext.hasEntity()) {
-				Optional<String> result = this.extractMessage(responseContext.getEntityStream());
+			if (response.hasEntity()) {
+				StringWriter writer = new StringWriter();
+				try {
+					IOUtils.copy((InputStream)response.getEntity(), writer, "UTF-8");
+				} catch (IOException e) {
+					writer.append("failed to read entity stream");
+				}
+				Optional<String> result = this.extractMessage(writer.toString());
 				if (result.isPresent()) {
 					message = result.get();
 				}
 			}
-			Response.Status status = Response.Status.fromStatusCode(responseContext.getStatus());
+			Response.Status status = Response.Status.fromStatusCode(response.getStatus());
 			WebApplicationException webAppException;
 			switch (status) {
 			case BAD_REQUEST:
@@ -90,5 +97,5 @@
 		}
 	}
 	
-	public abstract Optional<String> extractMessage(InputStream stream) throws IOException;
+	public abstract Optional<String> extractMessage(String entity);
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java b/common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java
similarity index 78%
rename from common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java
rename to common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java
index 7841d7a..0392b49 100644
--- a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java
+++ b/common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,26 +18,20 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.Optional;
 
 import javax.annotation.Priority;
 import javax.ws.rs.ext.Provider;
 
-import org.apache.commons.io.IOUtils;
-
 @Provider
 @Priority(Integer.MIN_VALUE)
 public class ResponseExceptionMapperImpl extends ResponseExceptionMapper {
 
 	@Override
-	public Optional<String> extractMessage(InputStream stream) throws IOException {
-		final String input = IOUtils.toString(stream, "UTF-8");
-		IOUtils.closeQuietly(stream);
-		return Optional.of(input);
+	public Optional<String> extractMessage(String entity) {
+		return Optional.of(entity);
 	}
 	
 
diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java
new file mode 100644
index 0000000..79fd7df
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/RestClient.java
@@ -0,0 +1,320 @@
+/*-
+ * ============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.client;
+
+import java.net.ConnectException;
+import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
+import java.net.URI;
+import java.net.URL;
+import java.security.GeneralSecurityException;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Predicate;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Invocation.Builder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.GenericType;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.core.UriBuilder;
+
+import org.onap.so.client.policy.CommonObjectMapperProvider;
+import org.onap.so.client.policy.LoggingFilter;
+import org.onap.so.logger.MsoLogger;
+import org.onap.so.logging.jaxrs.filter.jersey.JaxRsClientLogging;
+import org.onap.so.utils.CryptoUtils;
+import org.onap.so.utils.TargetEntity;
+import org.slf4j.MDC;
+
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+
+import net.jodah.failsafe.Failsafe;
+import net.jodah.failsafe.RetryPolicy;
+
+
+public abstract class RestClient {
+	public static final String ECOMP_COMPONENT_NAME = "MSO";
+	
+	private static final int MAX_PAYLOAD_SIZE = 1024 * 1024;
+	private WebTarget webTarget;
+
+	protected final Map<String, String> headerMap;
+	protected final MsoLogger msoLogger;
+	protected URL host;
+	protected Optional<URI> path;
+	protected String accept;
+	protected String contentType;
+	protected String requestId;
+    protected JaxRsClientLogging jaxRsClientLogging;
+    protected RestProperties props;
+
+    protected RestClient(RestProperties props, Optional<URI> path) {
+		
+		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class);
+		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
+		if (requestId == null) {
+			requestId = "";
+		}
+		headerMap = new HashMap<>();
+		try {
+			host = props.getEndpoint();
+		} catch (MalformedURLException e) {
+			
+			throw new RuntimeException(e);
+		}
+		this.props = props;
+		this.path = path;
+	}
+
+	protected RestClient(RestProperties props, Optional<URI> path, String accept, String contentType) {
+		this(props, path);
+		this.accept = accept;
+		this.contentType = contentType;
+		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
+		if (requestId == null) {
+			requestId = "";
+		}
+		this.props = props;
+	}
+
+	protected RestClient(URL host, String contentType) {
+		headerMap = new HashMap<>();
+	
+		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class);
+		this.path = Optional.empty();
+		this.host = host;
+		this.contentType = contentType;
+		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
+		if (requestId == null) {
+			requestId = "";
+		}
+		this.props = new DefaultProperties(host);
+	}
+
+	/**
+	 * Override method to return false to disable logging.
+	 * 
+	 * @return true - to enable logging, false otherwise
+	 */
+	protected boolean enableLogging() {
+		return true;
+	}
+	
+	/**
+	 * Override method to return custom value for max payload size.
+	 * 
+	 * @return Default value for MAX_PAYLOAD_SIZE = 1024 * 1024
+	 */
+	protected int getMaxPayloadSize()
+	{
+		return MAX_PAYLOAD_SIZE;
+	}
+	
+	protected Builder getBuilder() {
+
+	    if (webTarget == null) {
+	        initializeClient(getClient());
+        }
+		Builder builder = webTarget.request();
+		initializeHeaderMap(headerMap);
+
+		headerMap.put("X-ECOMP-RequestID", requestId);
+		for (Entry<String, String> entry : headerMap.entrySet()) {
+			builder.header(entry.getKey(), entry.getValue());
+		}
+		return builder;
+	}
+
+	protected abstract void initializeHeaderMap(Map<String, String> headerMap);
+
+	protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() {
+		return Optional.of(new ResponseExceptionMapperImpl());
+	}
+
+	protected CommonObjectMapperProvider getCommonObjectMapperProvider() {
+		return new CommonObjectMapperProvider();
+	}
+	
+	/**
+	 * Adds a basic authentication header to the request.
+	 * @param auth the encrypted credentials
+	 * @param key the key for decrypting the credentials
+	 */
+	protected void addBasicAuthHeader(String auth, String key) {
+		try {
+			byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes();
+			String authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(decryptedAuth);
+			headerMap.put("Authorization", authHeaderValue);
+		} catch (GeneralSecurityException e) {
+			msoLogger.error(e.getMessage(), e);
+		}
+	}
+
+	protected String getAccept() {
+		return accept;
+	}
+
+	protected String getContentType() {
+		return contentType;
+	}
+
+	protected String getMergeContentType() {
+		return "application/merge-patch+json";
+	}
+
+	protected Client getClient() {
+		return ClientBuilder.newBuilder().build();
+	}
+
+	protected abstract TargetEntity getTargetEntity();
+
+	protected void initializeClient(Client client) {
+		if (this.enableLogging()) {
+			client.register(new LoggingFilter(this.getMaxPayloadSize()));
+		}
+		CommonObjectMapperProvider provider = this.getCommonObjectMapperProvider();
+		client.register(new JacksonJsonProvider(provider.getMapper()));
+
+        jaxRsClientLogging = new JaxRsClientLogging();
+        jaxRsClientLogging.setTargetService(getTargetEntity());
+        client.register(jaxRsClientLogging);
+
+        if (!path.isPresent()) {
+			webTarget = client.target(host.toString());
+		} else {
+			webTarget = client.target(UriBuilder.fromUri(host + path.get().toString()));
+		}
+		if (getAccept() == null || getAccept().isEmpty()) {
+			this.accept = MediaType.APPLICATION_JSON;
+		}
+		if (getContentType() == null || getContentType().isEmpty()) {
+			this.contentType = MediaType.APPLICATION_JSON;
+		}
+	}
+	
+	protected List<Predicate<Throwable>> retryOn() {
+		
+		List<Predicate<Throwable>> result = new ArrayList<>();
+		
+		result.add(e -> {
+					return e.getCause() instanceof SocketTimeoutException;
+				});
+		result.add(e -> {
+			return e.getCause() instanceof ConnectException;
+		});
+		return result;
+	}
+
+	public Response get() {
+		return method("GET", null);
+	}
+
+	public Response post(Object obj) {
+		return method("POST", obj);
+	}
+
+	public Response patch(Object obj) {
+		return method("PATCH", obj);
+	}
+
+	public Response put(Object obj) {
+		return method("PUT", obj);
+	}
+
+	public Response delete() {
+		return method("DELETE", null);
+	}
+
+	public Response delete(Object obj) {
+		return method("DELETE", obj);
+	}
+
+	public <T> Optional<T> get(Class<T> resultClass) {
+		return format(method("GET", null), resultClass);
+	}
+
+	public <T> Optional<T> get(GenericType<T> resultClass) {
+		return format(method("GET", null), resultClass);
+	}
+
+	public <T> T post(Object obj, Class<T> resultClass) {
+		return format(method("POST", obj), resultClass).orElse(null);
+	}
+
+	public <T> T patch(Object obj, Class<T> resultClass) {
+		return format(method("PATCH", obj), resultClass).orElse(null);
+	}
+
+	public <T> T put(Object obj, Class<T> resultClass) {
+		return format(method("PUT", obj), resultClass).orElse(null);
+	}
+
+	public <T> T delete(Class<T> resultClass) {
+		return format(method("DELETE", null), resultClass).orElse(null);
+	}
+	
+	public <T> T delete(Object obj, Class<T> resultClass) {
+		return format(method("DELETE", obj), resultClass).orElse(null);
+	}
+	
+	private Response method(String method, Object entity) {
+		RetryPolicy policy = new RetryPolicy();
+		
+		List<Predicate<Throwable>> items = retryOn();
+		
+		Predicate<Throwable> pred = items.stream().reduce(Predicate::or).orElse(x -> false);
+
+		policy.retryOn(error -> pred.test(error));
+			
+		policy.withDelay(this.props.getDelayBetweenRetries(), TimeUnit.MILLISECONDS)
+				.withMaxRetries(this.props.getRetries());
+		
+		return Failsafe.with(policy).get(buildRequest(method, entity));
+	}
+	
+	protected RestRequest buildRequest(String method, Object entity) {
+		return new RestRequest(this, method, entity);
+	}
+	private <T> Optional<T> format(Response response, Class<T> resultClass) {
+		if (this.props.mapNotFoundToEmpty() && response.getStatus() == Status.NOT_FOUND.getStatusCode()) {
+			return Optional.empty();
+		}
+		return Optional.of(response.readEntity(resultClass));
+	}
+	
+	private <T> Optional<T> format(Response response, GenericType<T> resultClass) {
+		if (this.props.mapNotFoundToEmpty() && response.getStatus() == Status.NOT_FOUND.getStatusCode()) {
+			return Optional.empty();
+		}
+		return Optional.of(response.readEntity(resultClass));
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java b/common/src/main/java/org/onap/so/client/RestClientSSL.java
similarity index 67%
rename from common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java
rename to common/src/main/java/org/onap/so/client/RestClientSSL.java
index 6146fc3..461bb58 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java
+++ b/common/src/main/java/org/onap/so/client/RestClientSSL.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,47 +18,38 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client;
 
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.net.URI;
-import java.security.NoSuchAlgorithmException;
 import java.security.KeyStore;
+import java.security.NoSuchAlgorithmException;
 import java.util.Optional;
-import java.util.Properties;
-import java.util.UUID;
 
 import javax.net.ssl.SSLContext;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
 
-import org.openecomp.mso.client.RestProperties;
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-
 public abstract class RestClientSSL extends RestClient {
 	
 	public static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore";
-	public static  String SSL_KEY_STORE_PASSWORD_KEY;
+	public static final String SSL_KEY_STORE_PASSWORD_KEY = "javax.net.ssl.keyStorePassword";
 	public static final String MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY = "mso.load.ssl.client.keystore";
 	
 
-	protected RestClientSSL(RestProperties props, UUID requestId, Optional<URI> path) {
-		super(props, requestId, path);
+	protected RestClientSSL(RestProperties props, Optional<URI> path) {
+		super(props, path);
 	}
 
-	protected RestClientSSL(RestProperties props, UUID requestId, Optional<URI> path, String accept, String contentType) {
-		super(props, requestId, path, accept, contentType);
+	protected RestClientSSL(RestProperties props, Optional<URI> path, String accept, String contentType) {
+		super(props, path, accept, contentType);
 	}
 
 	@Override
 	protected Client getClient() {
+		
 		Client client = null;
-		Properties keyProp = new Properties ();
 		try {
-			keyProp.load (Thread.currentThread ().getContextClassLoader ().getResourceAsStream ("Policy.properties"));
-			SSL_KEY_STORE_PASSWORD_KEY=(String) keyProp.get ("ssl.key.store.password.key");
 			String loadSSLKeyStore = System.getProperty(RestClientSSL.MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY);
 			if(loadSSLKeyStore != null && loadSSLKeyStore.equalsIgnoreCase("true")) {
 				KeyStore ks = getKeyStore();
@@ -71,22 +62,17 @@
 			//Use default SSL context 
 			client = ClientBuilder.newBuilder().sslContext(SSLContext.getDefault()).build();
 			this.msoLogger.debug("RestClientSSL using default SSL context!");
-		} catch (NoSuchAlgorithmException | IOException e) {
-			this.msoLogger.error(MessageEnum.APIH_GENERAL_EXCEPTION, "AAI", "Client init", MsoLogger.ErrorCode.UnknownError, "could not create SSL client", e);
+		} catch (NoSuchAlgorithmException e) {
+			//this.logger.error(MessageEnum.APIH_GENERAL_EXCEPTION, "AAI", "Client init", MsoLogger.ErrorCode.UnknownError, "could not create SSL client", e);
 			throw new RuntimeException(e);
 		}
 		return client;
 	}
 	
-	private KeyStore getKeyStore() throws IOException {
+	private KeyStore getKeyStore() {
 		KeyStore ks = null;
-		Properties keyProp = new Properties ();
-	
-		keyProp.load (Thread.currentThread ().getContextClassLoader ().getResourceAsStream ("Policy.properties"));
-		SSL_KEY_STORE_PASSWORD_KEY=(String) keyProp.get ("ssl.key.store.password.key");
 	    char[] password = System.getProperty(RestClientSSL.SSL_KEY_STORE_PASSWORD_KEY).toCharArray();
 	    FileInputStream fis = null;
-	    
 	    try {
 	    	ks = KeyStore.getInstance(KeyStore.getDefaultType());
 	        fis = new FileInputStream(System.getProperty(RestClientSSL.SSL_KEY_STORE_KEY));
@@ -95,7 +81,6 @@
 	    catch(Exception e) {
 	    	return null;
 	    }
-	    
 	    finally {
 	        if (fis != null) {
 	            try { 
diff --git a/common/src/main/java/org/openecomp/mso/client/RestProperties.java b/common/src/main/java/org/onap/so/client/RestProperties.java
similarity index 82%
rename from common/src/main/java/org/openecomp/mso/client/RestProperties.java
rename to common/src/main/java/org/onap/so/client/RestProperties.java
index ae8862d..7043e89 100644
--- a/common/src/main/java/org/openecomp/mso/client/RestProperties.java
+++ b/common/src/main/java/org/onap/so/client/RestProperties.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -27,4 +27,13 @@
 
 	public URL getEndpoint() throws MalformedURLException;
 	public String getSystemName();
+	public default Integer getRetries() {
+		return Integer.valueOf(2);
+	}
+	public default Long getDelayBetweenRetries() {
+		return Long.valueOf(500);
+	}
+	public default boolean mapNotFoundToEmpty() {
+		return false;
+	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
similarity index 81%
rename from common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java
rename to common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
index 647acdf..570b48e 100644
--- a/common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java
+++ b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,16 +18,21 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client;
+package org.onap.so.client;
 
 import java.util.Iterator;
 import java.util.ServiceLoader;
 
 public class RestPropertiesLoader {
 
-	private final ServiceLoader<RestProperties> services;
+	/* required to make ServiceLoader thread safe */
+	private static final ThreadLocal<ServiceLoader<RestProperties>> services = new ThreadLocal<ServiceLoader<RestProperties>>() {
+		@Override
+		protected ServiceLoader<RestProperties> initialValue() {
+			return ServiceLoader.load(RestProperties.class);
+		}
+	};
 	private RestPropertiesLoader() {
-		services = ServiceLoader.load(RestProperties.class);
 	}
 	
 	private static class Helper {
@@ -47,7 +52,8 @@
 	
 	private <T> T getImpl(Class<? extends RestProperties> clazz, boolean forceNewInstance) {
 		T result = null;
-		Iterator<RestProperties> propertyImpls = services.iterator();
+		ServiceLoader<RestProperties> loader = this.services.get();
+		Iterator<RestProperties> propertyImpls = loader.iterator();
 		RestProperties item;
 		while (propertyImpls.hasNext()) {
 			item = propertyImpls.next();
diff --git a/common/src/main/java/org/onap/so/client/RestRequest.java b/common/src/main/java/org/onap/so/client/RestRequest.java
new file mode 100644
index 0000000..25bf54b
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/RestRequest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============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.client;
+
+import java.util.Optional;
+import java.util.concurrent.Callable;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.onap.so.logger.MsoLogger;
+
+public class RestRequest implements Callable<Response> {
+
+	private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestRequest.class);
+
+	private final RestClient client;
+	private final String method;
+	private final Object entity;
+	
+	public RestRequest(RestClient client, String method, Object entity) {
+		this.client = client;
+		this.method = method;
+		this.entity = entity;
+	}
+	@Override
+	public Response call() throws Exception {
+		final Response response;
+		if ("GET".equals(method)) {
+			response = this.client.getBuilder().accept(this.client.getAccept()).get();
+		} else if ("POST".equals(method)) {
+			response = this.client.getBuilder().accept(this.client.getAccept()).post(Entity.entity(entity, this.client.getContentType()));
+		} else if ("PATCH".equals(method)) {
+			response = this.client.getBuilder().header("X-HTTP-Method-Override", "PATCH").accept(this.client.getAccept())
+					.post(Entity.entity(entity, this.client.getMergeContentType()));
+		} else if ("DELETE".equals(method)) {
+			if (entity == null) {
+				response = this.client.getBuilder().accept(this.client.getAccept()).delete();
+
+			} else {
+				response = this.client.getBuilder().header("X-HTTP-Method-Override", "DELETE").accept(this.client.getAccept())
+						.post(Entity.entity(entity, this.client.getContentType()));
+			}
+		} else if ("PUT".equals(method)) {
+			response = this.client.getBuilder().accept(this.client.getAccept()).put(Entity.entity(entity, this.client.getContentType()));
+		} else {
+			response = Response.serverError().entity(method + " not valid").build();
+		}
+		
+		Optional<ResponseExceptionMapper> mapper = this.client.addResponseExceptionMapper();
+		if (mapper.isPresent()) {
+			try {
+				mapper.get().map(response);
+			} catch (NotFoundException e) {
+				if (this.client.props.mapNotFoundToEmpty()) {
+					msoLogger.error(e);
+					return response;
+				} else {
+					throw e;
+				}
+			}
+		} else {
+			if (response.getStatus() == Status.NOT_FOUND.getStatusCode() && this.client.props.mapNotFoundToEmpty()) {
+				return response;
+			}
+		}
+
+		return response;
+	}
+
+}
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIClient.java b/common/src/main/java/org/onap/so/client/aai/AAIClient.java
new file mode 100644
index 0000000..39843b2
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/aai/AAIClient.java
@@ -0,0 +1,62 @@
+/*-
+ * ============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.client.aai;
+
+import java.net.URI;
+
+import javax.ws.rs.core.UriBuilder;
+
+import org.onap.so.client.RestClient;
+import org.onap.so.client.graphinventory.GraphInventoryClient;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class AAIClient extends GraphInventoryClient {
+
+	private static final String AAI_ROOT = "/aai";
+	protected static Logger logger = LoggerFactory.getLogger(AAIClient.class);
+	protected AAIVersion version;
+	public AAIClient() {
+		super(AAIProperties.class);
+	}
+	
+	public AAIClient(AAIVersion version) {
+		super(AAIProperties.class);
+	}
+	@Override
+	protected URI constructPath(GraphInventoryUri uri) {
+		
+		return UriBuilder.fromUri(AAI_ROOT + "/" + this.getVersion().toString() + uri.build().toString()).build();
+	}
+	@Override
+	protected RestClient createClient(GraphInventoryUri uri) {
+		return new AAIRestClient(getRestProperties(), constructPath(uri));
+	}
+	
+	protected AAIVersion getVersion() {
+		if (version == null) {
+			return this.<AAIProperties>getRestProperties().getDefaultVersion();
+		} else {
+			return this.version;
+		}
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java b/common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java
similarity index 71%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java
rename to common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java
index 657b4c5..514eab6 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,44 +18,46 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.Optional;
-import java.util.UUID;
 
 import javax.annotation.Priority;
 import javax.ws.rs.ext.Provider;
 
-import org.openecomp.mso.client.ResponseExceptionMapper;
-import org.openecomp.mso.client.aai.entities.AAIError;
+import javax.annotation.Priority;
+import javax.ws.rs.ext.Provider;
 
-import com.fasterxml.jackson.core.JsonParseException;
+import org.onap.so.client.ResponseExceptionMapper;
+import org.onap.so.client.aai.entities.AAIError;
+import org.onap.so.logger.MsoLogger;
+import org.slf4j.MDC;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 @Provider
 @Priority(Integer.MIN_VALUE)
 public class AAIClientResponseExceptionMapper extends ResponseExceptionMapper {
 
-	private final UUID requestId;
-	public AAIClientResponseExceptionMapper(UUID requestId) {
-		this.requestId = requestId;
+	private final String requestId;
+	public AAIClientResponseExceptionMapper() {
+		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
 	}
 	@Override
-	public Optional<String> extractMessage(InputStream stream) throws IOException {
+	public Optional<String> extractMessage(String entity) {
 		
 		String errorString = "Error calling A&AI. Request-Id=" + this.getRequestId() + " ";
 		try {
-			AAIError error = new ObjectMapper().readValue(stream, AAIError.class);
+			AAIError error = new ObjectMapper().readValue(entity, AAIError.class);
 			AAIErrorFormatter formatter = new AAIErrorFormatter(error);
 			return Optional.of(errorString + formatter.getMessage());
-		} catch (JsonParseException e) {
-			return Optional.of(errorString);
+		} catch (IOException e) {
+			return Optional.of(errorString + entity);
 		}
 	}
 	
-	protected UUID getRequestId() {
+	protected String getRequestId() {
 		return this.requestId;
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java
similarity index 63%
copy from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
copy to common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java
index ada1939..33c9769 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
 
-public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvider {
+public class AAICommonObjectMapperPatchProvider extends AAICommonObjectMapperProvider {
 
-	public AAIResourcesObjectMapperProvider() {
+	
+	public AAICommonObjectMapperPatchProvider() {
 		super();
-	}
-
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
+		EmptyStringToNullSerializer sp = new EmptyStringToNullSerializer(); 
+		SimpleModule emptyStringModule = new SimpleModule();
+		emptyStringModule.addSerializer(String.class, sp);
+		mapper.registerModule(emptyStringModule);
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java
rename to common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java
index cbee903..0e20718 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-import javax.ws.rs.ext.ContextResolver;
+import org.onap.so.client.policy.CommonObjectMapperProvider;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
@@ -33,9 +33,7 @@
 import com.fasterxml.jackson.databind.type.TypeFactory;
 import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
 
-public class AAICommonObjectMapperProvider implements ContextResolver<ObjectMapper> {
-
-	final ObjectMapper mapper;
+public class AAICommonObjectMapperProvider extends CommonObjectMapperProvider {
 
 	public AAICommonObjectMapperProvider() {
 		mapper = new ObjectMapper();
@@ -51,12 +49,4 @@
         mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(aiJaxb, aiJackson));
 	}
 
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
-	}
-	
-	public ObjectMapper getMapper() {
-		return mapper;
-	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java b/common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java
similarity index 75%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java
rename to common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java
index fdeb975..b29c807 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-import org.openecomp.mso.client.aai.entities.Configuration;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.serviceinstancebeans.RequestDetails;
+import org.onap.so.client.aai.entities.Configuration;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.serviceinstancebeans.RequestDetails;
 
 public class AAIConfigurationClient {
 
 	private AAIResourcesClient aaiClient;
 
-	private static final String ORCHESTRATION_STATUS = "PendingCreate";
+	private static final String ORCHESTRATION_STATUS = "PreCreated";
 
 	public AAIConfigurationClient() {
 		aaiClient = new AAIResourcesClient();
@@ -37,6 +37,16 @@
 
 	public void createConfiguration(RequestDetails requestDetails, String configurationId, String configurationType,
 			String configurationSubType) {
+
+		AAIResourceUri uri = getConfigurationURI(configurationId);
+		Configuration payload = configurePayload(requestDetails, configurationId, configurationType, configurationSubType);
+		
+		aaiClient.create(uri, payload);
+	}
+	
+	public Configuration configurePayload(RequestDetails requestDetails, String configurationId, String configurationType,
+			String configurationSubType) {
+		
 		Configuration payload = new Configuration();
 		payload.setConfigurationId(configurationId);
 		payload.setConfigurationType(configurationType);
@@ -45,11 +55,10 @@
 		payload.setModelVersionId(requestDetails.getModelInfo().getModelVersionId());
 		payload.setOrchestrationStatus(ORCHESTRATION_STATUS);
 		payload.setOperationalStatus("");
-		AAIResourceUri uri = getConfigurationURI(payload.getConfigurationId());
-		payload.setConfigurationSelflink(uri.build().getPath());
+		payload.setConfigurationSelflink(getConfigurationURI(configurationId).build().getPath());
 		payload.setModelCustomizationId(requestDetails.getModelInfo().getModelCustomizationId());
-
-		aaiClient.create(uri, payload);
+		
+		return payload;
 	}
 
 	public void deleteConfiguration(String uuid) {
@@ -61,7 +70,7 @@
 	}
 
 	public Configuration getConfiguration(String uuid) {
-		return aaiClient.get(Configuration.class, getConfigurationURI(uuid));
+		return aaiClient.get(Configuration.class, getConfigurationURI(uuid)).orElse(null);
 	}
 
 	public boolean configurationExists(String uuid) {
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java
rename to common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
index dd56e97..6b3bb54 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.util.List;
-import java.util.Optional;
 
-import org.openecomp.mso.client.aai.entities.AAIError;
-import org.openecomp.mso.client.aai.entities.ServiceException;
+import org.onap.so.client.aai.entities.AAIError;
+import org.onap.so.client.aai.entities.ServiceException;
 
 public class AAIErrorFormatter {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java b/common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java
rename to common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java
index 4bdfc4d..242fd41 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 public class AAINamespaceConstants {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java b/common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java
similarity index 71%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java
rename to common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java
index dc2831c..c50653a 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java
@@ -18,22 +18,31 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
+
+import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals;
 
 import com.google.common.base.CaseFormat;
 
-public enum AAIObjectPlurals implements AAIObjectName, AAIObjectUriTemplate, AAIObjectUriPartial {
+public enum AAIObjectPlurals implements GraphInventoryObjectPlurals {
 
 	GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs"),
-	PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers");
-	
+	PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers"),
+	P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces"),
+	L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks"),
+	SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions"),
+	SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances"),
+	OWNING_ENTITIES(AAINamespaceConstants.BUSINESS, "/owning-entities"),
+	VOLUME_GROUP(AAIObjectType.CLOUD_REGION.uriTemplate(), "/volume-groups/");
+
+
 	private final String uriTemplate;
 	private final String partialUri;
 	private AAIObjectPlurals(String parentUri, String partialUri) {
 		this.uriTemplate = parentUri + partialUri;
 		this.partialUri = partialUri;
 	}
-	
+
 	@Override
 	public String toString() {
 		return this.uriTemplate();
@@ -55,11 +64,6 @@
 	}
 	@Override
 	public String typeName(CaseFormat format) {
-		String enumName = this.name();
-		if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) {
-			enumName = enumName.replace("DEFAULT_", "");
-		}
-		
-		return CaseFormat.UPPER_UNDERSCORE.to(format, enumName);
+		return CaseFormat.UPPER_UNDERSCORE.to(format, this.name());
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java b/common/src/main/java/org/onap/so/client/aai/AAIObjectType.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java
rename to common/src/main/java/org/onap/so/client/aai/AAIObjectType.java
index 9026c29..ce75b17 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIObjectType.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,81 +18,87 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;

-

-import com.google.common.base.CaseFormat;

-

-public enum AAIObjectType implements AAIObjectName, AAIObjectUriTemplate, AAIObjectUriPartial {

-

-	DEFAULT_CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/att-aic/{cloud-region-id}"),

-	CUSTOMER(AAINamespaceConstants.BUSINESS, "/customers/customer/{global-customer-id}"),

-	GENERIC_QUERY("/search", "/generic-query"),

-	BULK_PROCESS("/bulkprocess", ""),

-	GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs/generic-vnf/{vnf-id}"),

-	VF_MODULE(AAIObjectType.GENERIC_VNF.uriTemplate(), "/vf-modules/vf-module/{vf-module-id}"),

-	L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks/l3-network/{network-id}"),

-	NETWORK_POLICY(AAINamespaceConstants.NETWORK, "/network-policies/network-policy/{network-policy-id}"),

-	NODES_QUERY("/search", "/nodes-query"),

-	CUSTOM_QUERY("/query", ""),

-	ROUTE_TABLE_REFERENCE(AAINamespaceConstants.NETWORK, "/route-table-references/route-table-reference/{route-table-reference-id}"),

-	DEFAULT_TENANT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE + "/cloud-regions/cloud-region/att-aic/AAIAIC25", "/tenants/tenant/{tenant-id}"),

-	VCE(AAINamespaceConstants.NETWORK, "/vces/vce/{vnf-id}"),

-	VPN_BINDING(AAINamespaceConstants.NETWORK, "/vpn-bindings/vpn-binding/{vpn-id}"),

-	CONFIGURATION(AAINamespaceConstants.NETWORK, "/configurations/configuration/{configuration-id}"),

-	PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers/pserver/{hostname}"),

-	SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions/service-subscription/{service-type}"),

-	SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances/service-instance/{service-instance-id}"),

-	PROJECT(AAINamespaceConstants.BUSINESS, "/projects/project/{id}"),

-	LINE_OF_BUSINESS(AAINamespaceConstants.BUSINESS, "/lines-of-business/line-of-business/{id}"),

-	PLATFORM(AAINamespaceConstants.BUSINESS, "/platforms/platform/{id}"),

-	OWNING_ENTITY(AAINamespaceConstants.BUSINESS, "/owning-entities/owning-entity/{id}"),

-	ALLOTTED_RESOURCE(AAIObjectType.SERVICE_INSTANCE.uriTemplate(), "/allotted-resources/allotted-resource/{id}"),

-	PNF(AAINamespaceConstants.NETWORK, "/pnfs/pnf/{pnf-name}"),

-	OPERATIONAL_ENVIRONMENT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/operational-environments/operational-environment/{operational-environment-id}"),

-	CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/{cloud-owner-id}/{cloud-region-id}"),

-	TENANT(AAIObjectType.CLOUD_REGION.uriTemplate(), "/tenants/tenant/{tenant-id}"),

-	VSERVER(AAIObjectType.TENANT.uriTemplate(), "/vservers/vserver/{vserver-id}"),

-	MODEL_VER(AAINamespaceConstants.SERVICE_DESIGN_AND_CREATION + "/models/model/{model-invariant-id}", "/model-vers/model-ver/{model-version-id}"),

-	TUNNEL_XCONNECT(AAIObjectType.ALLOTTED_RESOURCE.uriTemplate(), "/tunnel-xconnects/tunnel-xconnect/{id}"),

-	P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces/p-interface/{interface-name}"),

-	PHYSICAL_LINK(AAINamespaceConstants.NETWORK, "/physical-links/physical-link/{link-name}"),

-	UNKNOWN("", "");

-

-	private final String uriTemplate;

-	private final String parentUri;

-	private final String partialUri;

-	private AAIObjectType(String parentUri, String partialUri) {

-		this.parentUri = parentUri;

-		this.partialUri = partialUri;

-		this.uriTemplate = parentUri + partialUri;

-	}

-

-	@Override

-	public String toString() {

-		return this.uriTemplate();

-	}

-

-	@Override

-	public String typeName() {

-		return this.typeName(CaseFormat.LOWER_HYPHEN);

-	}

-	@Override

-	public String typeName(CaseFormat format) {

-		String enumName = this.name();

-		if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) {

-			enumName = enumName.replace("DEFAULT_", "");

-		}

-

-		return CaseFormat.UPPER_UNDERSCORE.to(format, enumName);

-	}

-

-	@Override

-	public String uriTemplate() {

-		return this.uriTemplate;

-	}

-

-	@Override

-	public String partialUri() {

-		return this.partialUri;

-	}

-}
\ No newline at end of file
+package org.onap.so.client.aai;
+
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
+
+import com.google.common.base.CaseFormat;
+
+public enum AAIObjectType implements GraphInventoryObjectType {
+
+	DEFAULT_CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/att-aic/{cloud-region-id}"),
+	CUSTOMER(AAINamespaceConstants.BUSINESS, "/customers/customer/{global-customer-id}"),
+	GENERIC_QUERY("/search", "/generic-query"),
+	BULK_PROCESS("/bulkprocess", ""),
+	GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs/generic-vnf/{vnf-id}"),
+	VF_MODULE(AAIObjectType.GENERIC_VNF.uriTemplate(), "/vf-modules/vf-module/{vf-module-id}"),
+	L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks/l3-network/{network-id}"),
+	NETWORK_POLICY(AAINamespaceConstants.NETWORK, "/network-policies/network-policy/{network-policy-id}"),
+	NODES_QUERY("/search", "/nodes-query"),
+	CUSTOM_QUERY("/query", ""),
+	ROUTE_TABLE_REFERENCE(AAINamespaceConstants.NETWORK, "/route-table-references/route-table-reference/{route-table-reference-id}"),
+	DEFAULT_TENANT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE + "/cloud-regions/cloud-region/att-aic/AAIAIC25", "/tenants/tenant/{tenant-id}"),
+	VCE(AAINamespaceConstants.NETWORK, "/vces/vce/{vnf-id}"),
+	VPN_BINDING(AAINamespaceConstants.NETWORK, "/vpn-bindings/vpn-binding/{vpn-id}"),
+	VPN_BINDINGS(AAINamespaceConstants.NETWORK, "/vpn-bindings"),
+	CONFIGURATION(AAINamespaceConstants.NETWORK, "/configurations/configuration/{configuration-id}"),
+	PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers/pserver/{hostname}"),
+	SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions/service-subscription/{service-type}"),
+	SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances/service-instance/{service-instance-id}"),
+	PROJECT(AAINamespaceConstants.BUSINESS, "/projects/project/{id}"),
+	LINE_OF_BUSINESS(AAINamespaceConstants.BUSINESS, "/lines-of-business/line-of-business/{id}"),
+	PLATFORM(AAINamespaceConstants.BUSINESS, "/platforms/platform/{id}"),
+	OWNING_ENTITY(AAINamespaceConstants.BUSINESS, "/owning-entities/owning-entity/{id}"),
+	ALLOTTED_RESOURCE(AAIObjectType.SERVICE_INSTANCE.uriTemplate(), "/allotted-resources/allotted-resource/{id}"),
+	PNF(AAINamespaceConstants.NETWORK, "/pnfs/pnf/{pnf-name}"),
+	OPERATIONAL_ENVIRONMENT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/operational-environments/operational-environment/{operational-environment-id}"),
+	CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/{cloud-owner-id}/{cloud-region-id}"),
+	TENANT(AAIObjectType.CLOUD_REGION.uriTemplate(), "/tenants/tenant/{tenant-id}"),
+	VOLUME_GROUP(AAIObjectType.CLOUD_REGION.uriTemplate(), "/volume-groups/volume-group/{volume-group-id}"),
+	VSERVER(AAIObjectType.TENANT.uriTemplate(), "/vservers/vserver/{vserver-id}"),
+	MODEL_VER(AAINamespaceConstants.SERVICE_DESIGN_AND_CREATION + "/models/model/{model-invariant-id}", "/model-vers/model-ver/{model-version-id}"),
+	TUNNEL_XCONNECT(AAIObjectType.ALLOTTED_RESOURCE.uriTemplate(), "/tunnel-xconnects/tunnel-xconnect/{tunnel-id}"),
+	P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces/p-interface/{interface-name}"),
+	PHYSICAL_LINK(AAINamespaceConstants.NETWORK, "/physical-links/physical-link/{link-name}"),
+	INSTANCE_GROUP(AAINamespaceConstants.NETWORK, "/instance-groups/instance-group/{id}"),
+	COLLECTION(AAINamespaceConstants.NETWORK, "/collections/collection/{collection-id}"),
+	UNKNOWN("", "");
+
+	private final String uriTemplate;
+	private final String parentUri;
+	private final String partialUri;
+	private AAIObjectType(String parentUri, String partialUri) {
+		this.parentUri = parentUri;
+		this.partialUri = partialUri;
+		this.uriTemplate = parentUri + partialUri;
+	}
+
+	@Override
+	public String toString() {
+		return this.uriTemplate();
+	}
+
+	@Override
+	public String typeName() {
+		return this.typeName(CaseFormat.LOWER_HYPHEN);
+	}
+	@Override
+	public String typeName(CaseFormat format) {
+		String enumName = this.name();
+		if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) {
+			enumName = enumName.replace("DEFAULT_", "");
+		}
+
+		return CaseFormat.UPPER_UNDERSCORE.to(format, enumName);
+	}
+
+	@Override
+	public String uriTemplate() {
+		return this.uriTemplate;
+	}
+
+	@Override
+	public String partialUri() {
+		return this.partialUri;
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java b/common/src/main/java/org/onap/so/client/aai/AAIProperties.java
similarity index 88%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java
rename to common/src/main/java/org/onap/so/client/aai/AAIProperties.java
index c208d6d..9f67082 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIProperties.java
@@ -18,13 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-import org.openecomp.mso.client.RestProperties;
+import org.onap.so.client.RestProperties;
 
 public interface AAIProperties extends RestProperties {
 
 	public AAIVersion getDefaultVersion();
 	public String getAuth();
 	public String getKey();
+	@Override
+	public default boolean mapNotFoundToEmpty() {
+		return true;
+	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java b/common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java
similarity index 71%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java
rename to common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java
index f8707de..184b4e5 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,47 +18,34 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.util.Optional;
-import java.util.UUID;
 
-import org.openecomp.mso.client.aai.entities.CustomQuery;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.client.policy.RestClient;
-import org.openecomp.mso.client.aai.AAIVersion;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.aai.entities.CustomQuery;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri;
 
 public class AAIQueryClient extends AAIClient {
 
-
-	private final AAIVersion version;
 	private Optional<String> depth = Optional.empty();
 	private boolean nodesOnly = false;
 	private Optional<AAISubgraphType> subgraph = Optional.empty();
 	
 	public AAIQueryClient() {
-		super(UUID.randomUUID());
-		this.version = super.getVersion();
-	}
-	
-	public AAIQueryClient(AAIVersion version, UUID requestId) {
-		super(requestId);
-		this.version = version;
+		super();
 	}
 	
 	public AAIQueryClient(AAIVersion version) {
-		this(version, UUID.randomUUID());
+		super();
+		this.version = version;
 	}
 	
 	public String query(Format format, CustomQuery query) {
 		return this.createClient(AAIUriFactory.createResourceUri(AAIObjectType.CUSTOM_QUERY).queryParam("format", format.toString()))
-		.addRequestId(requestId).put(query, String.class);
-	}
-	
-	@Override
-	protected AAIVersion getVersion() {
-		return this.version;
+		.put(query, String.class);
 	}
 	
 	public AAIQueryClient depth (String depth) {
@@ -76,9 +63,8 @@
 		return this;
 	}
 	
-	@Override
-	public RestClient createClient(AAIUri uri) {
-		AAIUri clone = uri.clone();
+	protected GraphInventoryUri setupQueryParams(GraphInventoryUri uri) {
+		GraphInventoryUri clone = uri.clone();
 		if (this.depth.isPresent()) {
 			clone.queryParam("depth", depth.get());
 		}
@@ -88,6 +74,10 @@
 		if (this.subgraph.isPresent()) {
 			clone.queryParam("subgraph", this.subgraph.get().toString());
 		}
-		return super.createClient(clone);
+		return clone;
 	}
-}
\ No newline at end of file
+	@Override
+	protected RestClient createClient(GraphInventoryUri uri) {
+		return super.createClient(setupQueryParams(uri));
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java
rename to common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java
index 425d9ce..d5eeb83 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java
@@ -18,10 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
 import com.fasterxml.jackson.databind.type.TypeFactory;
 import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
@@ -37,8 +36,4 @@
 
 	}
 
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
-	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java b/common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java
similarity index 74%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java
rename to common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java
index c55e5e9..04757c6 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,40 +18,33 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.Map;
 import java.util.Optional;
-import java.util.UUID;
 
 import javax.ws.rs.NotFoundException;
-import javax.ws.rs.client.ResponseProcessingException;
 import javax.ws.rs.core.GenericType;
-
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
 import org.onap.aai.domain.yang.Relationship;
-import org.openecomp.mso.client.aai.entities.AAIResultWrapper;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.aai.entities.uri.Depth;
-import org.openecomp.mso.client.policy.RestClient;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.RestProperties;
+import org.onap.so.client.aai.entities.AAIResultWrapper;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
 
 public class AAIResourcesClient extends AAIClient {
-	
-	private final AAIVersion version;
-		
+			
 	public AAIResourcesClient() {
-		super(UUID.randomUUID());
-		this.version = super.getVersion();
+		super();
 	}
 	
 	public AAIResourcesClient(AAIVersion version) {
-		super(UUID.randomUUID());
-		this.version = version;
-	}
-	
-	public AAIResourcesClient(AAIVersion version, UUID requestId) {
-		super(requestId);
+		super();
 		this.version = version;
 	}
 	
@@ -89,16 +82,8 @@
 	public boolean exists(AAIResourceUri uri) {
 		AAIUri forceMinimal = this.addParams(Optional.of(Depth.ZERO), true, uri);
 		RestClient aaiRC = this.createClient(forceMinimal);
-		try{
-			aaiRC.get();	
-		} catch(ResponseProcessingException e) {
-			if (e.getCause() instanceof NotFoundException) {
-				return false;
-			} else {
-				throw e;
-			}
-		}
-		return true;
+		
+		return aaiRC.get().getStatus() == Status.OK.getStatusCode();
 	}
 	
 	/**
@@ -137,7 +122,8 @@
 	public void delete(AAIResourceUri uri) {
 		AAIResourceUri clone = uri.clone();
 		RestClient aaiRC = this.createClient(clone);
-		Map<String, Object> result = aaiRC.get(new GenericType<Map<String, Object>>(){});
+		Map<String, Object> result = aaiRC.get(new GenericType<Map<String, Object>>(){})
+				.orElseThrow(() -> new NotFoundException(clone.build() + " does not exist in A&AI"));
 		String resourceVersion = (String) result.get("resource-version");
 		aaiRC = this.createClient(clone.resourceVersion(resourceVersion));
 		aaiRC.delete();
@@ -154,17 +140,17 @@
 		aaiRC.patch(obj);
 		return;
 	}
-
+	
 	/**
 	 * Retrieves an object from A&AI and unmarshalls it into the Class specified
 	 * @param clazz
 	 * @param uri
 	 * @return
 	 */
-	public <T> T get(Class<T> clazz, AAIResourceUri uri) {
+	public <T> Optional<T> get(Class<T> clazz, AAIResourceUri uri) {
 		return this.createClient(uri).get(clazz);
 	}
-
+	
 	/**
 	 * Retrieves an object from A&AI and returns complete response
 	 * @param uri
@@ -180,7 +166,7 @@
 	 * @param uri
 	 * @return
 	 */
-	public <T> T get(GenericType<T> resultClass, AAIResourceUri uri) {
+	public <T> Optional<T> get(GenericType<T> resultClass, AAIResourceUri uri) {
 		return this.createClient(uri).get(resultClass);
 	}
 	
@@ -191,11 +177,31 @@
 	 * @return
 	 */
 	public AAIResultWrapper get(AAIResourceUri uri) {
-		String json = this.createClient(uri).get(String.class);
-		
+		String json = this.createClient(uri).get(String.class).orElse(null);
 		return new AAIResultWrapper(json);
-
 	}
+	
+	/**
+	 * Retrieves an object from A&AI wrapped in a helper class which offer additional features
+	 * If the object cannot be found in A&AI the method will throw the runtime exception
+	 * included as an argument
+	 * @param uri
+	 * @return
+	 */
+	public AAIResultWrapper get(AAIResourceUri uri, Class<? extends RuntimeException> c) {
+		
+		RuntimeException e;
+		try {
+			e = c.getConstructor(String.class).newInstance(uri.build() + " not found in A&AI");
+		} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
+				| NoSuchMethodException | SecurityException e1) {
+			throw new IllegalArgumentException("could not create instance for " + c.getName());
+		}
+		String json = this.createClient(uri).get(String.class)
+				.orElseThrow(() -> e);
+		return new AAIResultWrapper(json);
+	}
+	
 	private Relationship buildRelationship(AAIResourceUri uri) {
 		final Relationship result = new Relationship();
 		result.setRelatedLink(uri.build().toString());
@@ -227,17 +233,7 @@
 	 * @return
 	 */
 	public AAITransactionalClient beginTransaction() {
-		return new AAITransactionalClient(this.version, this.requestId);
-	}
-
-	@Override
-	protected AAIVersion getVersion() {
-		return this.version;
-	}
-	
-	@Override
-	protected RestClient createClient(AAIUri uri) {
-		return super.createClient(uri);
+		return new AAITransactionalClient(this.getVersion());
 	}
 	
 	private AAIUri addParams(Optional<Depth> depth, boolean nodesOnly, AAIUri uri) {
@@ -251,4 +247,8 @@
 		
 		return clone;
 	}
+	@Override
+	protected <T extends RestProperties> T getRestProperties() {
+		return super.getRestProperties();
+	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
rename to common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java
index ada1939..15f2ed2 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java
@@ -18,9 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
+package org.onap.so.client.aai;
 
 public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvider {
 
@@ -28,8 +26,4 @@
 		super();
 	}
 
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
-	}
 }
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
new file mode 100644
index 0000000..2bd5f11
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
@@ -0,0 +1,131 @@
+/*-
+ * ============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.client.aai;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.regex.Pattern;
+
+import javax.ws.rs.core.Response;
+
+import org.onap.so.client.ResponseExceptionMapper;
+import org.onap.so.client.RestClientSSL;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryPatchDepthExceededException;
+import org.onap.so.client.policy.CommonObjectMapperProvider;
+import org.onap.so.jsonpath.JsonPathUtil;
+import org.onap.so.utils.TargetEntity;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+public class AAIRestClient extends RestClientSSL {
+
+	private final AAIProperties aaiProperties;
+	private static final AAICommonObjectMapperProvider standardProvider = new AAICommonObjectMapperProvider();
+	private static final AAICommonObjectMapperPatchProvider patchProvider = new AAICommonObjectMapperPatchProvider();
+	private static final Pattern LOCATE_COMPLEX_OBJECT = Pattern.compile("^((?!relationship-list).)+?\\['[^\\[\\]]+?'\\]$");
+
+	protected AAIRestClient(AAIProperties props, URI uri) {
+		super(props, Optional.of(uri));
+		this.aaiProperties = props;
+	}
+
+	@Override
+    public TargetEntity getTargetEntity(){
+	    return TargetEntity.AAI;
+    }
+
+	@Override
+	protected void initializeHeaderMap(Map<String, String> headerMap) {
+		headerMap.put("X-FromAppId", "MSO");
+		headerMap.put("X-TransactionId", requestId);
+		String auth = aaiProperties.getAuth();
+		String key = aaiProperties.getKey();
+
+		if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) {
+			addBasicAuthHeader(auth, key);
+		}
+	}
+
+	@Override
+	protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() {
+
+		return Optional.of(new AAIClientResponseExceptionMapper());
+	}
+	
+	@Override
+	protected CommonObjectMapperProvider getCommonObjectMapperProvider() {
+		return standardProvider;
+	}
+
+	@Override
+	public Response patch(Object obj) {
+		String value = convertObjectToPatchFormat(obj);
+		validatePatchObject(value);
+		return super.patch(value);
+	}
+
+	@Override
+	public <T> T patch(Object obj, Class<T> resultClass) {
+		String value = convertObjectToPatchFormat(obj);
+		validatePatchObject(value);
+		return super.patch(value, resultClass);
+	}
+	
+	protected String convertObjectToPatchFormat(Object obj) {
+		Object value = obj;
+		try {
+			if (!(obj instanceof Map || obj instanceof String)) {
+				value = patchProvider.getMapper().writeValueAsString(obj);
+			} else if (obj instanceof Map) {
+				value = standardProvider.getMapper().writeValueAsString(obj);
+			}
+		} catch (JsonProcessingException e) {
+			value = "{}";
+		}
+		
+		return (String)value;
+	}
+	
+	
+	protected void validatePatchObject(String payload) {
+		if (hasComplexObject(payload)) {
+			throw new GraphInventoryPatchDepthExceededException(payload);
+		}
+	}
+	
+	/** validates client side that json does not include any complex objects
+	 * relationship-list is omitted from this validation
+	 */
+	protected boolean hasComplexObject(String json) {
+		if (json.isEmpty()) {
+			return false;
+		}
+		String complex = "$.*.*";
+		String array = "$.*.*.*";
+		List<String> result = JsonPathUtil.getInstance().getPathList(json, complex);
+		List<String> result2 = JsonPathUtil.getInstance().getPathList(json, array);
+		
+		result.addAll(result2);
+		return result.stream().anyMatch(item -> LOCATE_COMPLEX_OBJECT.matcher(item).find());
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java
rename to common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java
index 6819ba1..b56a677 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,12 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
+
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.List;
-
 import java.util.Optional;
+
 import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.aai.domain.yang.Pnf;
 import org.onap.aai.domain.yang.Pserver;
@@ -41,7 +42,7 @@
 	void updateMaintenceFlag(String vnfId,boolean inMaint, String transactionLoggingUuid) throws Exception;
 
 	void updateMaintenceFlagVnfId(String vnfId, boolean inMaint, String transactionLoggingUuid) throws Exception;
-
+	
 	GenericVnf getVnfByName(String vnfId,  String transactionLoggingUuid) throws Exception;
 
 	Optional<Pnf> getPnfByName(String pnfId,  String transactionLoggingUuid) throws Exception;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java
rename to common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java
index a84aeaa..b471a1e 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java
@@ -18,10 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.IOException;
@@ -36,17 +35,20 @@
 import org.onap.aai.domain.yang.Pnf;
 import org.onap.aai.domain.yang.Pserver;
 import org.onap.aai.domain.yang.Pservers;
-import org.openecomp.mso.client.aai.entities.CustomQuery;
-import org.openecomp.mso.client.aai.entities.Results;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.aai.entities.CustomQuery;
+import org.onap.so.client.aai.entities.Results;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.Format;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 
-@Service
+
 public class AAIRestClientImpl implements AAIRestClientI {
 
-    private static final EELFLogger logger = EELFManager.getInstance().getMetricsLogger();
+	private static Logger logger = LoggerFactory.getLogger(AAIClient.class);
     private static final AAIVersion ENDPOINT_VERSION = AAIVersion.V10;
     private static final String ENDPOINT_GET_ALL = ENDPOINT_VERSION + "/cloud-infrastructure/pservers";
     private static final String ENDPOINT_GET_ALL_VNFS = ENDPOINT_VERSION + "/network/generic-vnfs";
@@ -79,8 +81,8 @@
             logger.warn("could not parse uuid: " + uuid + " creating valid uuid automatically");
             requestId = UUID.randomUUID();
         }
-        return new AAIResourcesClient(ENDPOINT_VERSION, requestId)
-                .get(Pservers.class, AAIUriFactory.createResourceUri(AAIObjectPlurals.PSERVER));
+        return new AAIResourcesClient(ENDPOINT_VERSION)
+                .get(Pservers.class, AAIUriFactory.createResourceUri(AAIObjectPlurals.PSERVER)).orElse(null);
     }
 
     @Override
@@ -94,7 +96,7 @@
         }
         List<AAIResourceUri> startNodes = new ArrayList<>();
         startNodes.add(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId));
-        String jsonInput = new AAIQueryClient(ENDPOINT_VERSION, requestId)
+        String jsonInput = new AAIQueryClient(ENDPOINT_VERSION)
                 .query(Format.RESOURCE, new CustomQuery(startNodes, PSERVER_VNF_QUERY));
 
         return this.getListOfPservers(jsonInput);
@@ -102,7 +104,7 @@
     }
 
     protected List<Pserver> getListOfPservers(String jsonInput) throws IOException {
-        ObjectMapper mapper = new AAICommonObjectMapperProvider().getContext(Object.class);
+        ObjectMapper mapper = new AAICommonObjectMapperProvider().getMapper();
         Results<Map<String, Pserver>> resultsFromJson = mapper.readValue(jsonInput,
                 new TypeReference<Results<Map<String, Pserver>>>() {
                 });
@@ -122,8 +124,8 @@
             logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically");
             requestId = UUID.randomUUID();
         }
-        GenericVnfs genericVnfs = new AAIResourcesClient(ENDPOINT_VERSION, requestId).get(GenericVnfs.class,
-                AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName));
+        GenericVnfs genericVnfs = new AAIResourcesClient(ENDPOINT_VERSION).get(GenericVnfs.class,
+                AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName)).orElse(null);
         if (genericVnfs.getGenericVnf().size() > 1) {
             throw new IndexOutOfBoundsException("Multiple Generic Vnfs Returned");
         }
@@ -144,7 +146,7 @@
         }
         GenericVnf genericVnf = new GenericVnf();
         genericVnf.setInMaint(inMaint);
-        new AAIResourcesClient(ENDPOINT_VERSION, requestId)
+        new AAIResourcesClient(ENDPOINT_VERSION)
                 .update(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId), genericVnf);
 
     }
@@ -158,8 +160,8 @@
             logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically");
             requestId = UUID.randomUUID();
         }
-        return new AAIResourcesClient(ENDPOINT_VERSION, requestId)
-                .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId));
+        return new AAIResourcesClient(ENDPOINT_VERSION)
+                .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)).orElse(null);
     }
 
     @Override
@@ -171,7 +173,7 @@
             logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically", e);
             requestId = UUID.randomUUID();
         }
-        Response response = new AAIResourcesClient(ENDPOINT_VERSION, requestId)
+        Response response = new AAIResourcesClient(ENDPOINT_VERSION)
                 .getFullResponse(AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId));
         if (response.getStatus() != 200) {
             return Optional.empty();
@@ -189,7 +191,7 @@
             logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically", e);
             requestId = UUID.randomUUID();
         }
-        new AAIResourcesClient(ENDPOINT_VERSION, requestId)
+        new AAIResourcesClient(ENDPOINT_VERSION)
                 .createIfNotExists(AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId), Optional.of(pnf));
     }
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java b/common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java
rename to common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java
index 9179499..e9beb14 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 
 public enum AAISubgraphType {
@@ -35,4 +35,4 @@
 	public String toString() {
 		return name;
 	}
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java b/common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java
rename to common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java
index 5478627..884d2aa 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -27,22 +27,22 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
-import java.util.UUID;
 
+import javax.ws.rs.NotFoundException;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.Response;
 
 import org.onap.aai.domain.yang.Relationship;
-import org.openecomp.mso.client.aai.entities.AAIError;
-import org.openecomp.mso.client.aai.entities.bulkprocess.OperationBody;
-import org.openecomp.mso.client.aai.entities.bulkprocess.Transaction;
-import org.openecomp.mso.client.aai.entities.bulkprocess.Transactions;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.client.aai.exceptions.BulkProcessFailed;
-import org.openecomp.mso.client.policy.RestClient;
-import org.openecomp.mso.jsonpath.JsonPathUtil;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.aai.entities.AAIError;
+import org.onap.so.client.aai.entities.bulkprocess.OperationBody;
+import org.onap.so.client.aai.entities.bulkprocess.Transaction;
+import org.onap.so.client.aai.entities.bulkprocess.Transactions;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.exceptions.BulkProcessFailed;
+import org.onap.so.jsonpath.JsonPathUtil;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -54,8 +54,8 @@
 	private Transaction currentTransaction;
 	private final AAIVersion version;
 	private int actionCount = 0;
-	protected AAITransactionalClient(AAIVersion version, UUID requestId) {
-		super(requestId);
+	protected AAITransactionalClient(AAIVersion version) {
+		super();
 		this.version = version;
 		this.transactions = new Transactions();
 		startTransaction();
@@ -164,7 +164,8 @@
 	public AAITransactionalClient delete(AAIResourceUri uri) {
 		AAIResourcesClient client = new AAIResourcesClient();
 		AAIResourceUri clone = uri.clone();
-		Map<String, Object> result = client.get(new GenericType<Map<String, Object>>(){}, clone);
+		Map<String, Object> result = client.get(new GenericType<Map<String, Object>>(){}, clone)
+				.orElseThrow(() -> new NotFoundException(clone.build() + " does not exist in A&AI"));
 		String resourceVersion = (String) result.get("resource-version");
 		currentTransaction.getDelete().add(new OperationBody().withUri(clone.resourceVersion(resourceVersion).build().toString()).withBody(""));
 		incrementActionAmount();
@@ -196,7 +197,7 @@
 			if (response.hasEntity()) {
 				final Optional<String> errorMessage = this.locateErrorMessages(response.readEntity(String.class));
 				if (errorMessage.isPresent()) {
-					throw new BulkProcessFailed("One or more transactions failed in A&AI. Request-id=" + this.getRequestId() + ". Check logs for payloads.\nMessages:\n" + errorMessage.get());
+					throw new BulkProcessFailed("One or more transactions failed in A&AI. Check logs for payloads.\nMessages:\n" + errorMessage.get());
 				}
 			} else {
 				throw new BulkProcessFailed("Transactions acccepted by A&AI, but there was no response. Unsure of result.");
@@ -219,7 +220,7 @@
 					parsed.add(mapper.readValue(result, new TypeReference<Map<String, Object>>(){}));
 				}
 			} catch (IOException e) {
-				metricsLogger.error("could not map json", e);
+				logger.error("could not map json", e);
 			}
 			for (Map<String, Object> map : parsed) {
 				for (Entry<String, Object> entry : map.entrySet()) {
@@ -228,12 +229,12 @@
 						try {
 							error = mapper.readValue(entry.getValue().toString(), AAIError.class);
 						} catch (IOException e) {
-							metricsLogger.error("could not parse error object from A&AI", e);
+							logger.error("could not parse error object from A&AI", e);
 							error = new AAIError();
 						}
 						AAIErrorFormatter formatter = new AAIErrorFormatter(error);
 						String outputMessage = formatter.getMessage();
-						metricsLogger.error("part of a bulk action failed in A&AI: " + entry.getValue());
+						logger.error("part of a bulk action failed in A&AI: " + entry.getValue());
 						errorMessages.add(outputMessage);
 					}
 				}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java b/common/src/main/java/org/onap/so/client/aai/AAIUpdator.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java
rename to common/src/main/java/org/onap/so/client/aai/AAIUpdator.java
index 3bdcdc5..8921e4b 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIUpdator.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.io.IOException;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java
rename to common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java
index c808761..a971fde 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 
 public class AAIUpdatorImpl implements AAIUpdator {
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java b/common/src/main/java/org/onap/so/client/aai/AAIValidator.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java
rename to common/src/main/java/org/onap/so/client/aai/AAIValidator.java
index 117ec42..bf6485a 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIValidator.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.io.IOException;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java
rename to common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java
index c84d2f4..fb6d122 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import java.io.IOException;
 import java.util.List;
@@ -30,7 +30,7 @@
 
 
 
-@Service
+
 public class AAIValidatorImpl implements AAIValidator {
 
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java
rename to common/src/main/java/org/onap/so/client/aai/AAIVersion.java
index 20117fb..20ee5be 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
-public enum AAIVersion {
+import org.onap.so.client.graphinventory.GraphInventoryVersion;
+
+public enum AAIVersion implements GraphInventoryVersion {
 	V8("v8"),
 	V9("v9"), 
 	V10("v10"), 
 	V11("v11"), 
-	V12("v12");
+	V12("v12"),
+	V13("v13");
 	
 	public final static AAIVersion LATEST = AAIVersion.values()[AAIVersion.values().length - 1];
 	private final String value;
diff --git a/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java b/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java
new file mode 100644
index 0000000..1120ebe
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java
@@ -0,0 +1,52 @@
+/*-
+ * ============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.client.aai;
+
+import java.io.IOException;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+
+public class EmptyStringToNullSerializer extends StdSerializer<String> {
+
+	private static final long serialVersionUID = 5367385969270400106L;
+
+	public EmptyStringToNullSerializer() {
+		this(null);
+	}
+	public EmptyStringToNullSerializer(Class<String> t) {
+		super(t);
+	}
+
+	@Override
+	public void serialize(String value, JsonGenerator gen, SerializerProvider serializers)
+			throws IOException, JsonProcessingException {
+
+		if("".equals(value)) {
+			gen.writeNull();
+		} else {
+			gen.writeString(value);
+		}
+	}
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java
rename to common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java
index 3f0c4f3..c2aceee 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 public class AAIEntity{
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java
rename to common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java
index e4a64c4..dc91c8a 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 
 public interface AAIEntityObject {
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIError.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java
rename to common/src/main/java/org/onap/so/client/aai/entities/AAIError.java
index 5f895ef..4261f4f 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIError.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
similarity index 69%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java
rename to common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
index 9898f04..9087995 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,31 +18,36 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import java.io.IOException;
+import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
-import org.openecomp.mso.client.aai.AAICommonObjectMapperProvider;
-import org.openecomp.mso.jsonpath.JsonPathUtil;
+import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import org.onap.so.jsonpath.JsonPathUtil;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class AAIResultWrapper {
+public class AAIResultWrapper implements Serializable {
 
-	private final String jsonBody;
+	private static final long serialVersionUID = 5895841925807816737L;
+	private final Optional<String> jsonBody;
 	private final ObjectMapper mapper;
 	public AAIResultWrapper(String json) {
-		this.jsonBody = json;
+		this.jsonBody = Optional.ofNullable(json);
 		this.mapper = new AAICommonObjectMapperProvider().getMapper();
 	}
 	
 	public Optional<Relationships> getRelationships() {
 		final String path = "$.relationship-list";
-		Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody, path);
+		if (!jsonBody.isPresent()) {
+			return Optional.empty();
+		}
+		Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody.get(), path);
 		if (result.isPresent()) {
 			return Optional.of(new Relationships(result.get()));
 		} else {
@@ -51,25 +56,34 @@
 	}
 	
 	public String getJson() {
-		return jsonBody;
+		return jsonBody.orElse("{}");
 	}
 	
 	public Map<String, Object> asMap() {
+		if (!this.jsonBody.isPresent()) {
+			return new HashMap<>();
+		}
 		try {
-			return mapper.readValue(this.jsonBody, new TypeReference<Map<String, Object>>(){});
+			return mapper.readValue(this.jsonBody.get(), new TypeReference<Map<String, Object>>(){});
 		} catch (IOException e) {
 			return new HashMap<>();
 		}
 	}
 	
 	public <T> Optional<T> asBean(Class<T> clazz) {
+		if (!this.jsonBody.isPresent()) {
+			return Optional.empty();
+		}
 		try {
-			return Optional.of(mapper.readValue(this.jsonBody, clazz));
+			return Optional.of(mapper.readValue(this.jsonBody.get(), clazz));
 		} catch (IOException e) {
 			return Optional.empty();
 		}
 	}
 	
+	public boolean isEmpty() {
+		return !this.jsonBody.isPresent();
+	}
 	@Override
 	public String toString() {
 		return this.getJson();
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java b/common/src/main/java/org/onap/so/client/aai/entities/Configuration.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java
rename to common/src/main/java/org/onap/so/client/aai/entities/Configuration.java
index a2d0fb3..e1ce3a8 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/Configuration.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,8 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java b/common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java
rename to common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java
index 3d014b8..8203476 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java b/common/src/main/java/org/onap/so/client/aai/entities/Relationships.java
similarity index 82%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java
rename to common/src/main/java/org/onap/so/client/aai/entities/Relationships.java
index cca2fb3..bab145b 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/Relationships.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -30,13 +30,13 @@
 
 import javax.ws.rs.core.UriBuilder;
 
-import org.openecomp.mso.client.aai.AAICommonObjectMapperProvider;
-import org.openecomp.mso.client.aai.AAIObjectName;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.AAIResourcesClient;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.jsonpath.JsonPathUtil;
+import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.GraphInventoryObjectName;
+import org.onap.so.jsonpath.JsonPathUtil;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -57,7 +57,7 @@
 		}
 	}
 	
-	public List<AAIResultWrapper> getByType(AAIObjectName type) {
+	public List<AAIResultWrapper> getByType(GraphInventoryObjectName type) {
 		
 		return this.getAll(Optional.of(type));
 	}
@@ -72,7 +72,7 @@
 		return this.getRelatedLinks(Optional.empty());
 	}
 	
-	public List<String> getRelatedLinks(AAIObjectName type) {
+	public List<String> getRelatedLinks(GraphInventoryObjectName type) {
 		return this.getRelatedLinks(Optional.of(type));
 	}
 	
@@ -80,7 +80,7 @@
 		return this.getRelatedAAIUris(x -> true);
 	}
 	
-	public List<AAIResourceUri> getRelatedAAIUris(AAIObjectName type) {
+	public List<AAIResourceUri> getRelatedAAIUris(GraphInventoryObjectName type) {
 		return this.getRelatedAAIUris(x -> type.typeName().equals(x));
 	}
 	protected List<AAIResourceUri> getRelatedAAIUris(Predicate<String> p) {
@@ -107,7 +107,7 @@
 	
 	
 	
-	protected List<AAIResultWrapper> getAll(final Optional<AAIObjectName> type) {
+	protected List<AAIResultWrapper> getAll(final Optional<GraphInventoryObjectName> type) {
 		List<AAIResourceUri> relatedLinks;
 		if (type.isPresent()) {
 			relatedLinks = this.getRelatedAAIUris(type.get());
@@ -126,7 +126,7 @@
 		
 	}
 	
-	protected List<String> getRelatedLinks(Optional<AAIObjectName> type) {
+	protected List<String> getRelatedLinks(Optional<GraphInventoryObjectName> type) {
 		String matcher = "";
 		if (type.isPresent()) {
 			matcher = "[?(@.related-to=='" + type.get() + "')]";
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java b/common/src/main/java/org/onap/so/client/aai/entities/RequestError.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java
rename to common/src/main/java/org/onap/so/client/aai/entities/RequestError.java
index 2fd3572..bc8c283 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/RequestError.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java b/common/src/main/java/org/onap/so/client/aai/entities/Results.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java
rename to common/src/main/java/org/onap/so/client/aai/entities/Results.java
index e91823a..c3f0ad1 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/Results.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java b/common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java
rename to common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java
index 66ca10d..9d9723c 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java
rename to common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java
index ddd9a45..1803440 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.bulkprocess;
+package org.onap.so.client.aai.entities.bulkprocess;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java
rename to common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java
index 8c4d54d..1c40575 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.bulkprocess;
+package org.onap.so.client.aai.entities.bulkprocess;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java
rename to common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java
index f6ce3c5..51d56d3 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.bulkprocess;
+package org.onap.so.client.aai.entities.bulkprocess;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -51,4 +51,4 @@
 return this;
 }
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java
similarity index 70%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java
rename to common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java
index 36e3d00..42fa1ad 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,19 +18,29 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectPlurals;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryResourceUri;
 
-public interface AAIResourceUri extends AAIUri {
+public interface AAIResourceUri extends AAIUri, GraphInventoryResourceUri {
 
 	public AAIResourceUri relationshipAPI();
 	public AAIResourceUri relatedTo(AAIObjectPlurals plural);
 	public AAIResourceUri relatedTo(AAIObjectType type, String... values);
 	public AAIResourceUri resourceVersion(String version);
+	public AAIResourceUri format(Format format);
+	@Override
 	public AAIResourceUri depth(Depth depth);
+	@Override
 	public AAIResourceUri nodesOnly(boolean nodesOnly);
+	@Override	
 	public AAIResourceUri queryParam(String name, String... values);
+	@Override
+	public AAIResourceUri replaceQueryParam(String name, String... values);
+	@Override
 	public AAIResourceUri clone();
 }
diff --git a/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java
new file mode 100644
index 0000000..14671b2
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java
@@ -0,0 +1,111 @@
+/*-
+ * ============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.client.aai.entities.uri;
+
+import java.net.URI;
+
+import javax.ws.rs.core.UriBuilder;
+
+import org.onap.so.client.aai.AAIObjectPlurals;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
+
+public class AAISimpleUri extends SimpleUri implements AAIResourceUri {
+	
+	protected AAISimpleUri(AAIObjectType type, Object... values) {
+		super(type, values);
+		
+	}
+	protected AAISimpleUri(AAIObjectType type, URI uri) {
+		super(type, uri);
+	}
+	protected AAISimpleUri(AAIObjectType type, UriBuilder builder, Object... values) {
+		super(type, builder, values);
+	}
+	protected AAISimpleUri(AAIObjectPlurals type, UriBuilder builder, Object... values) {
+		super(type, builder, values);
+	}
+	protected AAISimpleUri(AAIObjectPlurals type) {
+		super(type);
+	}
+	protected AAISimpleUri(AAIObjectPlurals type, Object... values) {
+		super(type, values);
+	}
+	
+	@Override
+	public AAISimpleUri relationshipAPI() {
+		return (AAISimpleUri) super.relationshipAPI();
+	}
+	
+	@Override
+	public AAISimpleUri relatedTo(AAIObjectPlurals plural) {
+		return (AAISimpleUri) super.relatedTo(plural);
+	}
+	@Override
+	public AAISimpleUri relatedTo(AAIObjectType type, String... values) {
+		return (AAISimpleUri) super.relatedTo(type, values);
+	}
+	
+	@Override
+	public AAISimpleUri resourceVersion(String version) {
+		return (AAISimpleUri) super.resourceVersion(version);
+	}
+	
+	@Override
+	public AAISimpleUri queryParam(String name, String... values) {
+		return (AAISimpleUri) super.queryParam(name, values);
+	}
+	
+	@Override
+	public AAISimpleUri replaceQueryParam(String name, String... values) {
+		return (AAISimpleUri) super.replaceQueryParam(name, values);
+	}
+	
+	@Override
+	public AAISimpleUri clone() {
+		if (this.type != null) {
+			return new AAISimpleUri((AAIObjectType)this.type, this.internalURI.clone(), values);
+		} else {
+			return new AAISimpleUri((AAIObjectPlurals)this.pluralType, this.internalURI.clone(), values);
+		}
+	}
+	
+	@Override
+	public AAIObjectType getObjectType() {
+		return (AAIObjectType)this.type;
+	}
+
+	@Override
+	public AAISimpleUri depth(Depth depth) {
+		return (AAISimpleUri) super.depth(depth);
+	}
+	@Override
+	public AAISimpleUri nodesOnly(boolean nodesOnly) {
+		return (AAISimpleUri)super.nodesOnly(nodesOnly);
+	}
+	
+	@Override
+	public AAISimpleUri format(Format format) {
+		return (AAISimpleUri)super.format(format);
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java
similarity index 78%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java
rename to common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java
index 1617bcd..eb336d9 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,17 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
 import java.net.URI;
 import java.util.Map;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri;
 
-public interface AAIUri {
+public interface AAIUri extends GraphInventoryUri {
 
-	public URI build();
 	/**
 	 * By default A&AI enforces a depth of 1. Some objects can be told to retrieve objects
 	 * nested beneath them by increasing this number.
@@ -38,21 +39,22 @@
 	 * @param depth
 	 * @return
 	 */
+	@Override
 	public AAIUri depth(Depth depth);
 	/**
 	 * Makes client only return object fields, no relationships
 	 * 
 	 * @return
 	 */
+	@Override
 	public AAIUri nodesOnly(boolean nodesOnly);
+	@Override
 	public AAIUri queryParam(String name, String... values);
+	@Override
+	public AAIUri replaceQueryParam(String name, String... values);
+	@Override
 	public AAIUri clone();
 	
-	/**
-	 * returns all key values of the URI as a map. Key names can be found in {@link AAIObjectType}
-	 * @return
-	 */
-	public Map<String, String> getURIKeys();
+	@Override
 	public AAIObjectType getObjectType();
-	public boolean equals(Object o);
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java
similarity index 76%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java
rename to common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java
index cb33435..2a7c8ee 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,12 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
 import java.net.URI;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectPlurals;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
 
 
 public class AAIUriFactory {
@@ -39,7 +40,7 @@
 		if (AAIObjectType.SERVICE_INSTANCE.equals(type)) {
 			return new ServiceInstanceUri(values);
 		} else {
-			return new SimpleUri(type, values);
+			return new AAISimpleUri(type, values);
 		}
 	}
 	
@@ -56,7 +57,7 @@
 	 * @return
 	 */
 	public static AAIResourceUri createResourceFromExistingURI(AAIObjectType type, URI uri) {
-		return new SimpleUri(type, uri);
+		return new AAISimpleUri(type, uri);
 	}
 	
 	/**
@@ -67,7 +68,19 @@
 	 */
 	public static AAIResourceUri createResourceUri(AAIObjectPlurals type) {
 		
-		return new SimpleUri(type);
+		return new AAISimpleUri(type);
+	
+	}
+	
+	/**
+	 * Creates a uri for a plural type with values e.g. /cloud-infrastructure/pservers
+	 * 
+	 * @param type
+	 * @return
+	 */
+	public static AAIResourceUri createResourceUri(AAIObjectPlurals type, Object... values) {
+		
+		return new AAISimpleUri(type, values);
 	
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java
similarity index 74%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java
rename to common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java
index 407e0ec..ccae0b4 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
-import javax.ws.rs.core.UriBuilder;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
-
-public class NodesUri extends SimpleUri {
+public class NodesUri extends AAISimpleUri {
 
 	protected NodesUri(AAIObjectType type, Object... values) {
 		super(type, values);
@@ -33,12 +32,12 @@
 	
 	
 	@Override
-	protected String getTemplate(AAIObjectType type) {
+	protected String getTemplate(GraphInventoryObjectType type) {
 		return "/nodes" + type.partialUri();
 	}
 	
 	@Override
-	protected String getTemplate(AAIObjectPlurals type) {
+	protected String getTemplate(GraphInventoryObjectPlurals type) {
 		return "/nodes" + type.partialUri();
 	}
 }
diff --git a/common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java
new file mode 100644
index 0000000..093918d
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java
@@ -0,0 +1,126 @@
+/*-
+ * ============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.client.aai.entities.uri;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.core.UriBuilder;
+
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIQueryClient;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.aai.entities.CustomQuery;
+import org.onap.so.client.aai.entities.Results;
+import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryPayloadException;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriComputationException;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriNotFoundException;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class ServiceInstanceUri extends AAISimpleUri {
+
+	private Optional<String> cachedValue = Optional.empty();
+
+	protected ServiceInstanceUri(Object... values) {
+		super(AAIObjectType.SERVICE_INSTANCE, values);
+	}
+	protected ServiceInstanceUri(UriBuilder builder, Optional<String> cachedValue, Object... values) {
+		super(AAIObjectType.SERVICE_INSTANCE, builder, values);
+		this.cachedValue = cachedValue;
+	}
+	protected String getSerivceInstance(Object id) throws GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
+		if (!this.getCachedValue().isPresent()) {
+			AAIResourceUri serviceInstanceUri = AAIUriFactory.createNodesUri(AAIObjectType.SERVICE_INSTANCE, id);
+			CustomQuery query = new CustomQuery(Collections.singletonList(serviceInstanceUri));
+			String resultJson;
+			try {
+				resultJson = this.getQueryClient().query(Format.PATHED, query);
+			} catch (BadRequestException e) {
+				throw new GraphInventoryUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build());
+				
+			}
+			try {
+				cachedValue = extractRelatedLink(resultJson);
+				if (!cachedValue.isPresent()) {
+					throw new GraphInventoryUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build());
+				}
+			} catch (IOException e) {
+				throw new GraphInventoryPayloadException("could not map payload: " + resultJson, e);
+			}
+		}
+		Optional<String> cachedValueOpt = this.getCachedValue();
+		return cachedValueOpt.isPresent() ? cachedValueOpt.get() : "";
+	}
+	
+	protected Optional<String> extractRelatedLink(String jsonString) throws IOException {
+		Optional<String> result;
+		ObjectMapper mapper = new ObjectMapper();
+		
+		Results<Map<String, String>> results = mapper.readValue(jsonString, new TypeReference<Results<Map<String, String>>>(){});
+		if (results.getResult().size() == 1) {
+			String uriString = results.getResult().get(0).get("resource-link");
+			URI uri = UriBuilder.fromUri(uriString).build();
+			String rawPath = uri.getRawPath();
+			result = Optional.of(rawPath.replaceAll("/aai/v\\d+", ""));
+		} else if (results.getResult().isEmpty()) {
+			result = Optional.empty();
+		} else {
+			throw new IllegalStateException("more than one result returned");
+		}
+	
+		return result;
+	}
+	
+	protected Optional<String> getCachedValue() {
+		return this.cachedValue;
+	}
+
+	@Override
+	public URI build() {
+		try {
+			if (this.values.length == 1) {
+				String uri = getSerivceInstance(this.values[0]);
+				Map<String, String> map = getURIKeys(uri);
+				return super.build(map.values().toArray(values));
+			}
+		} catch (GraphInventoryUriNotFoundException | GraphInventoryPayloadException e) {
+			throw new GraphInventoryUriComputationException(e);
+		}
+		return super.build();
+	}
+	
+	@Override
+	public ServiceInstanceUri clone() {
+		return new ServiceInstanceUri(this.internalURI.clone(), this.getCachedValue(), values);
+	}
+	
+	protected AAIQueryClient getQueryClient() {
+		AAIResourceUri uri = AAIUriFactory.createNodesUri(AAIObjectType.ALLOTTED_RESOURCE, "").clone();
+		return new AAIQueryClient();
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java b/common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java
rename to common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java
index f044e2a..02d8d56 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java
+++ b/common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.objects;
+package org.onap.so.client.aai.objects;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java b/common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java
similarity index 80%
rename from common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java
rename to common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java
index dbb34fc..af21949 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java
+++ b/common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,118 +18,124 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.objects;

-

-import org.openecomp.mso.client.aai.AAIObjectType;

-import org.openecomp.mso.client.aai.entities.AAIEntityObject;

-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;

-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;

-

-import com.fasterxml.jackson.annotation.JsonProperty;

-

-public class AAIServiceInstance implements AAIEntityObject {

-	

-	@JsonProperty("service-instance-id")

-	private String serviceInstanceId;

-	@JsonProperty("service-instance-name")

-	private String serviceInstanceName;	

-	@JsonProperty("service-type")

-	private String serviceType;

-	@JsonProperty("service-role")

-	private String serviceRole;

-	@JsonProperty("orchestration-status")

-	private String oStatus;

-	@JsonProperty("model-invariant-id")

-	private String modelInvariantUuid;

-	@JsonProperty("model-version-id")

-	private String modelUuid;

-	@JsonProperty("environment-context")

-	private String environmentContext;

-	@JsonProperty("workload-context")

-	private String workloadContext;

-	

-	public String getServiceInstanceName() {

-		return serviceInstanceName;

-	}

-

-	public void setServiceInstanceName(String serviceInstanceName) {

-		this.serviceInstanceName = serviceInstanceName;

-	}

-

-	public String getServiceType() {

-		return serviceType;

-	}

-

-	public void setServiceType(String serviceType) {

-		this.serviceType = serviceType;

-	}

-

-	public String getServiceRole() {

-		return serviceRole;

-	}

-

-	public void setServiceRole(String serviceRole) {

-		this.serviceRole = serviceRole;

-	}

-

-	public String getoStatus() {

-		return oStatus;

-	}

-

-	public void setoStatus(String oStatus) {

-		this.oStatus = oStatus;

-	}

-

-	public String getModelInvariantUuid() {

-		return modelInvariantUuid;

-	}

-

-	public void setModelInvariantUuid(String modelInvariantUuid) {

-		this.modelInvariantUuid = modelInvariantUuid;

-	}

-

-	public String getModelUuid() {

-		return modelUuid;

-	}

-

-	public void setModelUuid(String modelUuid) {

-		this.modelUuid = modelUuid;

-	}

-

-	public String getEnvironmentContext() {

-		return environmentContext;

-	}

-

-	public void setEnvironmentContext(String environmentContext) {

-		this.environmentContext = environmentContext;

-	}

-

-	public String getWorkloadContext() {

-		return workloadContext;

-	}

-

-	public void setWorkloadContext(String workloadContext) {

-		this.workloadContext = workloadContext;

-	}

-

-	public String getServiceInstanceId() {

-		return serviceInstanceId;

-	}

-

-	public void setServiceInstanceId(String serviceInstanceId) {

-		this.serviceInstanceId = serviceInstanceId;

-	}

-	

-	public AAIServiceInstance withServiceInstance(String serviceInstanceId) {

-		this.setServiceInstanceId(serviceInstanceId);

-		return this;

-	}

-

-	@Override

-	public AAIResourceUri getUri() {

-		final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, this.serviceInstanceId);

-		return uri;

-	}

-	

-	

-}

+package org.onap.so.client.aai.objects;
+
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.entities.AAIEntityObject;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class AAIServiceInstance implements AAIEntityObject {
+	
+	@JsonProperty("service-instance-id")
+	private String serviceInstanceId;
+	@JsonProperty("service-instance-name")
+	private String serviceInstanceName;	
+	@JsonProperty("service-type")
+	private String serviceType;
+	@JsonProperty("service-role")
+	private String serviceRole;
+	@JsonProperty("orchestration-status")
+	private String oStatus;
+	@JsonProperty("model-invariant-id")
+	private String modelInvariantUuid;
+	@JsonProperty("model-version-id")
+	private String modelUuid;
+	@JsonProperty("environment-context")
+	private String environmentContext;
+	@JsonProperty("workload-context")
+	private String workloadContext;
+	
+	public String getServiceInstanceName() {
+		return serviceInstanceName;
+	}
+
+	public void setServiceInstanceName(String serviceInstanceName) {
+		this.serviceInstanceName = serviceInstanceName;
+	}
+
+	public String getServiceType() {
+		return serviceType;
+	}
+
+	public void setServiceType(String serviceType) {
+		this.serviceType = serviceType;
+	}
+
+	public String getServiceRole() {
+		return serviceRole;
+	}
+
+	public void setServiceRole(String serviceRole) {
+		this.serviceRole = serviceRole;
+	}
+
+	public String getoStatus() {
+		return oStatus;
+	}
+
+	public void setoStatus(String oStatus) {
+		this.oStatus = oStatus;
+	}
+
+	public String getModelInvariantUuid() {
+		return modelInvariantUuid;
+	}
+
+	public void setModelInvariantUuid(String modelInvariantUuid) {
+		this.modelInvariantUuid = modelInvariantUuid;
+	}
+
+	public String getModelUuid() {
+		return modelUuid;
+	}
+
+	public void setModelUuid(String modelUuid) {
+		this.modelUuid = modelUuid;
+	}
+
+	public String getEnvironmentContext() {
+		return environmentContext;
+	}
+
+	public void setEnvironmentContext(String environmentContext) {
+		this.environmentContext = environmentContext;
+	}
+
+	public String getWorkloadContext() {
+		return workloadContext;
+	}
+
+	public void setWorkloadContext(String workloadContext) {
+		this.workloadContext = workloadContext;
+	}
+
+	public String getServiceInstanceId() {
+		return serviceInstanceId;
+	}
+
+	public void setServiceInstanceId(String serviceInstanceId) {
+		this.serviceInstanceId = serviceInstanceId;
+	}
+	
+	public AAIServiceInstance withServiceInstance(String serviceInstanceId) {
+		this.setServiceInstanceId(serviceInstanceId);
+		return this;
+	}
+
+	@Override
+	public AAIResourceUri getUri() {
+		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, this.serviceInstanceId);
+		return uri;
+	}
+	@Override
+	public String toString() {
+		return "AAIServiceInstance [serviceInstanceId=" + serviceInstanceId + ", serviceInstanceName="
+				+ serviceInstanceName + ", serviceType=" + serviceType + ", serviceRole=" + serviceRole + ", oStatus="
+				+ oStatus + ", modelInvariantUuid=" + modelInvariantUuid + ", modelUuid=" + modelUuid
+				+ ", environmentContext=" + environmentContext + ", workloadContext=" + workloadContext + "]";
+	}
+	
+}
diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
new file mode 100644
index 0000000..2329a5a
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
@@ -0,0 +1,79 @@
+/*-
+ * ============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.client.adapter.rest;
+
+import java.net.URI;
+import java.security.GeneralSecurityException;
+import java.util.Map;
+import java.util.Optional;
+
+import org.apache.commons.codec.binary.Base64;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.policy.CommonObjectMapperProvider;
+import org.onap.so.client.policy.JettisonStyleMapperProvider;
+import org.onap.so.utils.CryptoUtils;
+import org.onap.so.utils.TargetEntity;
+
+public class AdapterRestClient extends RestClient {
+
+	private final AdapterRestProperties adapterRestProperties;
+	public AdapterRestClient(AdapterRestProperties props, URI uri) {
+		super(props, Optional.of(uri));
+		this.adapterRestProperties = props;
+	}
+
+	public AdapterRestClient(AdapterRestProperties props, URI uri, String accept, String contentType) {
+		super(props, Optional.of(uri), accept, contentType);
+		this.adapterRestProperties = props;
+	}
+
+    @Override
+    public TargetEntity getTargetEntity(){
+        return TargetEntity.OPENSTACK_ADAPTER;
+    }
+
+	@Override
+	protected void initializeHeaderMap(Map<String, String> headerMap) {
+		headerMap.put("Authorization",
+				this.getBasicAuth(adapterRestProperties.getAuth(), adapterRestProperties.getKey()));
+	}
+
+	@Override
+	protected CommonObjectMapperProvider getCommonObjectMapperProvider() {
+		return new JettisonStyleMapperProvider();
+	}
+	
+	private String getBasicAuth(String encryptedAuth, String msoKey) {
+		if ((encryptedAuth == null || encryptedAuth.isEmpty()) || (msoKey == null || msoKey.isEmpty())) {
+			return null;
+		}
+		try {
+			String auth = CryptoUtils.decrypt(encryptedAuth, msoKey);
+			byte[] encoded = Base64.encodeBase64(auth.getBytes());
+			String encodedString = new String(encoded);
+			encodedString = "Basic " + encodedString;
+			return encodedString;
+		} catch (GeneralSecurityException e) {
+			this.msoLogger.debug(e.getMessage());
+			return null;
+		}
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java
similarity index 84%
copy from common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java
copy to common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java
index c208d6d..18e0bd8 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java
+++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.adapter.rest;
 
-import org.openecomp.mso.client.RestProperties;
+import org.onap.so.client.RestProperties;
 
-public interface AAIProperties extends RestProperties {
+public interface AdapterRestProperties extends RestProperties {
 
-	public AAIVersion getDefaultVersion();
 	public String getAuth();
 	public String getKey();
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java b/common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java
rename to common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java
index 1345286..ffebe77 100644
--- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java
+++ b/common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.defaultproperties;
+package org.onap.so.client.defaultproperties;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -28,7 +28,7 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.mso.client.dmaap.DmaapProperties;
+import org.onap.so.client.dmaap.DmaapProperties;
 
 public class DefaultDmaapPropertiesImpl implements DmaapProperties {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java b/common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java
rename to common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java
index 655dc5a..9e4574d 100644
--- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java
+++ b/common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.defaultproperties;
+package org.onap.so.client.defaultproperties;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -30,7 +30,7 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.mso.client.policy.PolicyRestProperties;
+import org.onap.so.client.policy.PolicyRestProperties;
 
 public class PolicyRestPropertiesImpl implements PolicyRestProperties {
 
@@ -38,9 +38,8 @@
 	final Map<Object, Object> props;
 	public PolicyRestPropertiesImpl() {
 		File initialFile = new File("src/test/resources/policy.properties");
-		
 		Map<Object, Object> temp;
-		try(InputStream targetStream = new FileInputStream(initialFile)) {
+		try (InputStream targetStream = new FileInputStream(initialFile)) {
 			Properties properties = new Properties();
 			properties.load(targetStream);
 			temp = properties;
@@ -64,14 +63,17 @@
 		return "MSO";
 	}
 	
+	@Override
 	public String getClientAuth() {
 		return (String)props.get("policy.client.auth");
 	}
 	
+	@Override
 	public String getAuth() {
 		return (String)props.get("policy.auth");
 	}
 	
+	@Override
 	public String getEnvironment() {
 		return (String)props.get("policy.environment");
 	}
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java b/common/src/main/java/org/onap/so/client/dmaap/Consumer.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java
rename to common/src/main/java/org/onap/so/client/dmaap/Consumer.java
index 0e00ae5..7b1310f 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/Consumer.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 public interface Consumer {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java
similarity index 81%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java
rename to common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java
index 5a2fa17..dde0b31 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import java.io.IOException;
 import java.util.Base64;
@@ -26,23 +26,23 @@
 import java.util.Optional;
 import java.util.Properties;
 
-import org.openecomp.mso.client.defaultproperties.DefaultDmaapPropertiesImpl;
+import org.onap.so.client.defaultproperties.DefaultDmaapPropertiesImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
 
 public abstract class DmaapClient {
 	
-	protected final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+	protected static Logger logger = LoggerFactory.getLogger(DmaapClient.class);
 	protected final Map<String, String> msoProperties;
 	protected final Properties properties;
 	public DmaapClient(String filepath) throws IOException {
 		Resource resource = new ClassPathResource(filepath);
 		DmaapProperties dmaapProperties = DmaapPropertiesLoader.getInstance().getNewImpl();
 		if (dmaapProperties == null) {
-			auditLogger.error("No RestProperty implementation found on classpath, loading default");
+			logger.error("No RestProperty implementation found on classpath, loading default");
 			dmaapProperties = new DefaultDmaapPropertiesImpl();
 		}
 		this.msoProperties = dmaapProperties.getProperties();
@@ -51,8 +51,9 @@
 		this.properties.put("password", this.deobfuscatePassword(this.getPassword()));
 		this.properties.put("username", this.getUserName());
 		this.properties.put("topic", this.getTopic());
-		if (this.getHost().isPresent()) {
-			this.properties.put("host", this.getHost().get());
+		Optional<String> host = this.getHost();
+		if (host.isPresent()) {
+			this.properties.put("host", host.get());
 		}
 	}
 	protected String deobfuscatePassword(String password) {
@@ -60,7 +61,7 @@
 		try {
 			return new String(Base64.getDecoder().decode(password.getBytes()));
 		} catch(IllegalArgumentException iae) {
-			auditLogger.error("llegal Arguments",iae);
+			logger.error("llegal Arguments",iae);
 			return password;
 		}
 	}
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java
rename to common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java
index 6a01fb6..c9acdd7 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import com.google.common.base.Stopwatch;
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
-import org.openecomp.mso.client.dmaap.exceptions.DMaaPConsumerFailure;
-import org.openecomp.mso.client.dmaap.exceptions.ExceededMaximumPollingTime;
-import org.openecomp.mso.client.dmaap.rest.RestConsumer;
+import org.onap.so.client.dmaap.exceptions.DMaaPConsumerFailure;
+import org.onap.so.client.dmaap.exceptions.ExceededMaximumPollingTime;
+import org.onap.so.client.dmaap.rest.RestConsumer;
 
 public abstract class DmaapConsumer extends DmaapClient {
 
@@ -45,7 +45,7 @@
 			while (this.continuePolling()) {
 				if (stopwatch.elapsed(TimeUnit.MILLISECONDS) >= this.getMaximumElapsedTime()) {
 					final String message = "exceeded maximum retries on " + this.getRequestId() + " on " + this.getTopic();
-					auditLogger.error(message);
+					logger.error(message);
 					throw new ExceededMaximumPollingTime(message);
 				}
 				stopwatch.start();
@@ -53,15 +53,15 @@
 				stopwatch.stop();
 				for (String message : itr) {
 					if (!accepted && this.isAccepted(message)) {
-						auditLogger.info("accepted message found for " + this.getRequestId() + " on " + this.getTopic());
+						logger.info("accepted message found for " + this.getRequestId() + " on " + this.getTopic());
 						accepted = true;
 					}
 					if (accepted) {
-						auditLogger.info("received dmaap message: " + message);
+						logger.info("received dmaap message: " + message);
 						if (this.isFailure(message)) {
 							this.stopProcessingMessages();
 							final String errorMsg = "failure received from dmaap topic " + this.getTopic();
-							auditLogger.error(errorMsg);
+							logger.error(errorMsg);
 							throw new DMaaPConsumerFailure(errorMsg);
 						} else {
 							this.processMessage(message);
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java
rename to common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java
index 7bdd7df..161608d 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import java.util.Map;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java
similarity index 79%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java
rename to common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java
index 3c86199..3064f61 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,15 +18,20 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import java.util.ServiceLoader;
 
 public class DmaapPropertiesLoader {
+	/* required to make ServiceLoader thread safe */
+	private static final ThreadLocal<ServiceLoader<DmaapProperties>> services = new ThreadLocal<ServiceLoader<DmaapProperties>>() {
+		@Override
+		protected ServiceLoader<DmaapProperties> initialValue() {
+			return ServiceLoader.load(DmaapProperties.class);
+		}
+	};
 
-	private final ServiceLoader<DmaapProperties> services;
 	private DmaapPropertiesLoader() {
-		services = ServiceLoader.load(DmaapProperties.class);
 	}
 	
 	private static class Helper {
@@ -43,7 +48,9 @@
 		return this.getImpl(true);
 	}
 	private DmaapProperties getImpl(boolean forceNewInstance) {
-		for (DmaapProperties service : services) {
+		
+		ServiceLoader<DmaapProperties> loader = this.services.get();
+		for (DmaapProperties service : loader) {
 			if (forceNewInstance) {
 				try {
 					return service.getClass().newInstance();
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java
similarity index 85%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java
rename to common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java
index d2752c5..48691dc 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 
-import org.openecomp.mso.client.dmaap.rest.RestPublisher;
+import org.onap.so.client.dmaap.rest.RestPublisher;
 
 public abstract class DmaapPublisher extends DmaapClient {
 	
@@ -41,8 +41,8 @@
 		this.seconds = seconds;
 	}
 	
-	public void send(String json) throws IOException, InterruptedException {
-		auditLogger.info("publishing message to dmaap topic " + this.getTopic() + ": " + json);
+	public void send(String json){
+		logger.info("publishing message to dmaap topic " + this.getTopic() + ": " + json);
 		publisher.send(json);
 		//publisher.close(seconds, TimeUnit.SECONDS);
 	}
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java b/common/src/main/java/org/onap/so/client/dmaap/Publisher.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java
rename to common/src/main/java/org/onap/so/client/dmaap/Publisher.java
index ed1b3f3..ba6ce16 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/Publisher.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 public interface Publisher {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java b/common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java
rename to common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java
index b1ae2b7..f845f7e 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap.exceptions;
+package org.onap.so.client.dmaap.exceptions;
 
 public class DMaaPConsumerFailure extends Exception {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java b/common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java
rename to common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java
index c0cda6b..0002f87 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap.exceptions;
+package org.onap.so.client.dmaap.exceptions;
 
 public class ExceededMaximumPollingTime extends RuntimeException  {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
similarity index 71%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java
rename to common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
index ad744ad..0438ff2 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,41 +18,33 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap.rest;
+package org.onap.so.client.dmaap.rest;
 
 import java.net.URL;
 import java.util.Base64;
 import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
 
-import javax.ws.rs.client.ClientResponseFilter;
+import org.onap.so.client.RestClient;
+import org.onap.so.utils.TargetEntity;
 
-import org.openecomp.mso.client.ResponseExceptionMapperImpl;
-import org.openecomp.mso.client.policy.RestClient;
-
-public class DMaaPRestClient  extends RestClient {
+public class DMaaPRestClient extends RestClient {
 
 	private final String username;
 	private final String password;
 	public DMaaPRestClient(URL url, String contentType, String username, String password) {
-		super(url, UUID.randomUUID(), contentType);
+		super(url, contentType);
 		this.username = username;
 		this.password = password;
 	}
 
+    @Override
+    public TargetEntity getTargetEntity(){
+        return TargetEntity.DMAAP;
+    }
+
 	@Override
 	protected void initializeHeaderMap(Map<String, String> headerMap) {
 		headerMap.put("Authorization", "Basic " + Base64.getEncoder().encodeToString((username + ":" + password).getBytes()));
 	}
 
-	@Override
-	protected Optional<ClientResponseFilter> addResponseFilter() {
-		return Optional.of(new ResponseExceptionMapperImpl());
-	}
-
-	@Override
-	public RestClient addRequestId(UUID requestId) {
-		return this;
-	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java b/common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java
rename to common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java
index e661dd8..f43c658 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap.rest;
+package org.onap.so.client.dmaap.rest;
 
 import java.util.Properties;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java b/common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java
similarity index 88%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java
rename to common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java
index c2fb6f6..39af156 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,18 +18,19 @@
  * ============LICENSE_END=========================================================
  */
  
-package org.openecomp.mso.client.dmaap.rest;
+package org.onap.so.client.dmaap.rest;
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.UriBuilder;
 
-import org.openecomp.mso.client.dmaap.Consumer;
-import org.openecomp.mso.client.policy.RestClient;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.dmaap.Consumer;
 
 public class RestConsumer implements Consumer {
 
@@ -54,7 +55,7 @@
 	@Override
 	public Iterable<String> fetch() {
 		
-		return client.get(new GenericType<List<String>>() {});
+		return client.get(new GenericType<List<String>>() {}).orElse(new ArrayList<>());
 	}
 
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java b/common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java
rename to common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java
index 3dab12f..090e505 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,17 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap.rest;
+package org.onap.so.client.dmaap.rest;
 
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Properties;
 
 import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriBuilderException;
 
-import org.openecomp.mso.client.dmaap.Publisher;
-import org.openecomp.mso.client.policy.RestClient;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.dmaap.Publisher;
 
 public class RestPublisher implements Publisher {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java b/common/src/main/java/org/onap/so/client/exceptions/SDNOException.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java
rename to common/src/main/java/org/onap/so/client/exceptions/SDNOException.java
index d55f962..1e14308 100644
--- a/common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java
+++ b/common/src/main/java/org/onap/so/client/exceptions/SDNOException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.exceptions;
+package org.onap.so.client.exceptions;
 
 
 public class SDNOException extends Exception {
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/Format.java b/common/src/main/java/org/onap/so/client/graphinventory/Format.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/aai/Format.java
rename to common/src/main/java/org/onap/so/client/graphinventory/Format.java
index e400815..5cbf132 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/Format.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/Format.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.graphinventory;
 
 public enum Format {
 
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java
new file mode 100644
index 0000000..0d10c21
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java
@@ -0,0 +1,48 @@
+/*-
+ * ============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.client.graphinventory;
+
+import java.net.URI;
+
+import org.onap.so.client.RestClient;
+import org.onap.so.client.RestProperties;
+import org.onap.so.client.RestPropertiesLoader;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri;
+
+public abstract class GraphInventoryClient {
+
+	private RestProperties props;
+	protected GraphInventoryClient(Class<? extends RestProperties> propertiesClass) {
+				
+		RestProperties props = RestPropertiesLoader.getInstance().getNewImpl(propertiesClass);
+		this.props = props;
+	}
+	protected abstract URI constructPath(GraphInventoryUri uri);
+	
+	protected abstract RestClient createClient(GraphInventoryUri uri);
+
+	protected <T extends RestProperties> T getRestProperties() {
+		if (props == null) {
+			throw new IllegalStateException("No RestProperty implementation found on classpath");
+		}
+		return (T)props;
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java
similarity index 91%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java
rename to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java
index c7459d3..4543d85 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.graphinventory;
 
 import com.google.common.base.CaseFormat;
 
-public interface AAIObjectName {
+public interface GraphInventoryObjectName {
 
 	public String typeName();
 	public String typeName(CaseFormat format);
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java
similarity index 76%
copy from common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java
copy to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java
index ed1b3f3..ba48eb2 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,10 +17,9 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
- 
-package org.openecomp.mso.client.dmaap;
 
-public interface Publisher {
+package org.onap.so.client.graphinventory;
 
-	public void send(String json);
+public interface GraphInventoryObjectPlurals extends GraphInventoryObjectName, GraphInventoryObjectUriTemplate, GraphInventoryObjectUriPartial {
+
 }
diff --git a/common/src/main/java/org/openecomp/mso/entity/package-info.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java
similarity index 77%
copy from common/src/main/java/org/openecomp/mso/entity/package-info.java
copy to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java
index bf7201c..453becb 100644
--- a/common/src/main/java/org/openecomp/mso/entity/package-info.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,9 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-/**
- * Entities used for logging.
- */
+package org.onap.so.client.graphinventory;
 
-package org.openecomp.mso.entity;
+public interface GraphInventoryObjectType extends GraphInventoryObjectName, GraphInventoryObjectUriTemplate, GraphInventoryObjectUriPartial {
 
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java
rename to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java
index 3fb867d..0987221 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.graphinventory;
 
-public interface AAIObjectUriPartial {
+public interface GraphInventoryObjectUriPartial {
 
 	public String partialUri();
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java
rename to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java
index 397b66d..e231ddb 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.graphinventory;
 
-public interface AAIObjectUriTemplate {
+public interface GraphInventoryObjectUriTemplate {
 
 	public String uriTemplate();
 }
diff --git a/common/src/main/java/org/openecomp/mso/entity/package-info.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java
similarity index 84%
copy from common/src/main/java/org/openecomp/mso/entity/package-info.java
copy to common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java
index bf7201c..3b7dba7 100644
--- a/common/src/main/java/org/openecomp/mso/entity/package-info.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,9 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-/**
- * Entities used for logging.
- */
+package org.onap.so.client.graphinventory;
 
-package org.openecomp.mso.entity;
+public interface GraphInventoryVersion {
 
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java
similarity index 88%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java
rename to common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java
index 7522ea3..1205511 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.graphinventory.entities.uri;
 
 public enum Depth {
 	ZERO("0"),
@@ -41,5 +41,4 @@
 	public String toString() {
 		return this.depth;
 	}
-	
 }
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java
new file mode 100644
index 0000000..08e7304
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java
@@ -0,0 +1,44 @@
+/*-
+ * ============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.client.graphinventory.entities.uri;
+
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
+
+public interface GraphInventoryResourceUri extends GraphInventoryUri {
+	public GraphInventoryResourceUri relationshipAPI();
+	public GraphInventoryResourceUri relatedTo(GraphInventoryObjectPlurals plural);
+	public GraphInventoryResourceUri relatedTo(GraphInventoryObjectType type, String... values);
+	public GraphInventoryResourceUri resourceVersion(String version);
+	public GraphInventoryResourceUri format(Format format);
+	@Override
+	public GraphInventoryResourceUri depth(Depth depth);
+	@Override
+	public GraphInventoryResourceUri nodesOnly(boolean nodesOnly);
+	@Override	
+	public GraphInventoryResourceUri queryParam(String name, String... values);
+	@Override
+	public GraphInventoryResourceUri replaceQueryParam(String name, String... values);
+	@Override
+	public GraphInventoryResourceUri clone();
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java
similarity index 65%
copy from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java
copy to common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java
index 1617bcd..8a25c23 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,19 +18,19 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.graphinventory.entities.uri;
 
 import java.net.URI;
 import java.util.Map;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
 
-public interface AAIUri {
-
+public interface GraphInventoryUri {
+	
 	public URI build();
 	/**
-	 * By default A&AI enforces a depth of 1. Some objects can be told to retrieve objects
+	 * By default GraphInventory enforces a depth of 1. Some objects can be told to retrieve objects
 	 * nested beneath them by increasing this number.
 	 * 
 	 * You can use 0 to restrict the returned information to only the object you requested
@@ -38,21 +38,23 @@
 	 * @param depth
 	 * @return
 	 */
-	public AAIUri depth(Depth depth);
+	public GraphInventoryUri depth(Depth depth);
 	/**
 	 * Makes client only return object fields, no relationships
 	 * 
 	 * @return
 	 */
-	public AAIUri nodesOnly(boolean nodesOnly);
-	public AAIUri queryParam(String name, String... values);
-	public AAIUri clone();
+	public GraphInventoryUri nodesOnly(boolean nodesOnly);
+	public GraphInventoryUri queryParam(String name, String... values);
+	public GraphInventoryUri replaceQueryParam(String name, String... values);
+	public GraphInventoryUri clone();
 	
 	/**
-	 * returns all key values of the URI as a map. Key names can be found in {@link AAIObjectType}
+	 * returns all key values of the URI as a map. Key names can be found in {@link GraphInventoryObjectType}
 	 * @return
 	 */
 	public Map<String, String> getURIKeys();
-	public AAIObjectType getObjectType();
+	public GraphInventoryObjectType getObjectType();
 	public boolean equals(Object o);
-}
\ No newline at end of file
+	public int hashCode();
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java
similarity index 65%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java
rename to common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java
index f3e6fad..9c86ec6 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.graphinventory.entities.uri;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
@@ -28,50 +28,60 @@
 
 import javax.ws.rs.core.UriBuilder;
 
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.uri.parsers.UriParser;
-import org.openecomp.mso.client.aai.entities.uri.parsers.UriParserSpringImpl;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.graphinventory.entities.uri.Depth;
+import org.onap.so.client.graphinventory.entities.uri.parsers.UriParser;
+import org.onap.so.client.graphinventory.entities.uri.parsers.UriParserSpringImpl;
+import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
 import org.springframework.web.util.UriUtils;
 
-public class SimpleUri implements AAIResourceUri {
+public class SimpleUri implements GraphInventoryResourceUri {
 
 	protected UriBuilder internalURI;
 	protected final static String relationshipAPI = "/relationship-list/relationship";
 	protected final static String relatedTo = "/related-to";
 	protected final Object[] values;
-	protected final AAIObjectType type;
-	protected final AAIObjectPlurals pluralType;
-	protected SimpleUri(AAIObjectType type, Object... values) {
+	protected final GraphInventoryObjectType type;
+	protected final GraphInventoryObjectPlurals pluralType;
+	protected SimpleUri(GraphInventoryObjectType type, Object... values) {
 		this.type = type;
 		this.pluralType = null;
 		this.internalURI = UriBuilder.fromPath(this.getTemplate(type));
 		this.values = values;
 	}
-	protected SimpleUri(AAIObjectType type, URI uri) {
+	protected SimpleUri(GraphInventoryObjectType type, URI uri) {
 		this.type = type;
 		this.pluralType = null;
 		this.internalURI = UriBuilder.fromPath(uri.getRawPath().replaceAll("/aai/v\\d+", ""));
 		this.values = new Object[0];
 	}
-	protected SimpleUri(AAIObjectType type, UriBuilder builder, Object... values) {
+	protected SimpleUri(GraphInventoryObjectType type, UriBuilder builder, Object... values) {
 		this.internalURI = builder;
 		this.values = values;
 		this.type = type;
 		this.pluralType = null;
 	}
-	protected SimpleUri(AAIObjectPlurals type, UriBuilder builder, Object... values) {
+	protected SimpleUri(GraphInventoryObjectPlurals type, UriBuilder builder, Object... values) {
 		this.internalURI = builder;
 		this.values = values;
 		this.type = null;
 		this.pluralType = type;
 	}
-	protected SimpleUri(AAIObjectPlurals type) {
+	protected SimpleUri(GraphInventoryObjectPlurals type) {
 		this.type = null;
 		this.pluralType = type;
 		this.internalURI = UriBuilder.fromPath(this.getTemplate(type));
 		this.values = new Object[0];
 	}
+	protected SimpleUri(GraphInventoryObjectPlurals type, Object... values) {
+		this.type = null;
+		this.pluralType = type;
+		this.internalURI = UriBuilder.fromPath(this.getTemplate(type));
+		this.values = values;
+	}
 	
 	@Override
 	public SimpleUri relationshipAPI() {
@@ -80,20 +90,20 @@
 	}
 	
 	@Override
-	public SimpleUri relatedTo(AAIObjectPlurals plural) {
+	public SimpleUri relatedTo(GraphInventoryObjectPlurals plural) {
 		
 		this.internalURI = internalURI.path(relatedTo).path(plural.partialUri());
 		return this;
 	}
 	@Override
-	public SimpleUri relatedTo(AAIObjectType type, String... values) {
+	public SimpleUri relatedTo(GraphInventoryObjectType type, String... values) {
 		this.internalURI = internalURI.path(relatedTo).path(UriBuilder.fromPath(type.partialUri()).build(values).toString());
 		return this;
 	}
 	
 	@Override
 	public SimpleUri resourceVersion(String version) {
-		this.internalURI = internalURI.queryParam("resource-version", version);
+		this.internalURI = internalURI.replaceQueryParam("resource-version", version);
 		return this;
 	}
 	
@@ -104,6 +114,12 @@
 	}
 	
 	@Override
+	public SimpleUri replaceQueryParam(String name, String... values) {
+		this.internalURI = internalURI.replaceQueryParam(name, values);
+		return this;
+	}
+	
+	@Override
 	public URI build() {
 		return build(this.values);
 	}
@@ -152,7 +168,7 @@
 	}
 	
 	@Override
-	public AAIObjectType getObjectType() {
+	public GraphInventoryObjectType getObjectType() {
 		return this.type;
 	}
 	
@@ -163,24 +179,37 @@
 		}
 		return false;
 	}
+	
+	@Override
+	public int hashCode() {		
+		return new HashCodeBuilder().append(this.build()).toHashCode();
+	}
+	
+	
 	@Override
 	public SimpleUri depth(Depth depth) {
-		this.internalURI.queryParam("depth", depth.toString());
+		this.internalURI.replaceQueryParam("depth", depth.toString());
 		return this;
 	}
 	@Override
 	public SimpleUri nodesOnly(boolean nodesOnly) {
 		if (nodesOnly) {
-			this.internalURI.queryParam("nodes-only", "");
+			this.internalURI.replaceQueryParam("nodes-only", "");
 		}
 		return this;
 	}
 	
-	protected String getTemplate(AAIObjectType type) {
+	@Override
+	public SimpleUri format(Format format) {
+		this.internalURI.replaceQueryParam("format", format);
+		return this;
+	}
+	
+	protected String getTemplate(GraphInventoryObjectType type) {
 		return type.uriTemplate();
 	}
 	
-	protected String getTemplate(AAIObjectPlurals type) {
+	protected String getTemplate(GraphInventoryObjectPlurals type) {
 		return type.uriTemplate();
 	}
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java
rename to common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java
index 8e37d59..03d83eb 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri.parsers;
+package org.onap.so.client.graphinventory.entities.uri.parsers;
 
 import java.util.Map;
 import java.util.Set;
@@ -26,4 +26,4 @@
 public interface UriParser {
   public Set<String> getVariables();
   public Map<String, String> parse(final String uri);
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java
rename to common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java
index 75f9005..aeaa923 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri.parsers;
+package org.onap.so.client.graphinventory.entities.uri.parsers;
 import java.io.UnsupportedEncodingException;
 import java.util.Collections;
 import java.util.LinkedHashMap;
@@ -65,4 +65,4 @@
 	  
 	  return result;
   }
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java
rename to common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java
index ea64f54..0c973a8 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.exceptions;
+package org.onap.so.client.graphinventory.exceptions;
 
 public class BulkProcessFailed extends Exception {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java
similarity index 67%
copy from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java
copy to common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java
index 7bdd7df..07af130 100644
--- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,15 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.graphinventory.exceptions;
 
-import java.util.Map;
+public class GraphInventoryPatchDepthExceededException extends RuntimeException {
 
-public interface DmaapProperties {
-
-	/**
-	 * A map of strings which contains the properties for a dmaap client
-	 * @return
-	 */
-	public Map<String, String> getProperties();
+	private static final long serialVersionUID = -3740429832086738907L;
+	
+	
+	public GraphInventoryPatchDepthExceededException(String payload) {
+		super("Object exceeds allowed depth for update action: " + payload);
+	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java
similarity index 78%
rename from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java
rename to common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java
index 3584220..24a6e5c 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,21 +18,21 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.exceptions;
+package org.onap.so.client.graphinventory.exceptions;
 
-public class AAIPayloadException extends Exception {
+public class GraphInventoryPayloadException extends Exception {
 
 	private static final long serialVersionUID = -5712783905947711065L;
 	
-	public AAIPayloadException(Throwable t) {
+	public GraphInventoryPayloadException(Throwable t) {
 		super(t);
 	}
 	
-	public AAIPayloadException(String s, Throwable t) {
+	public GraphInventoryPayloadException(String s, Throwable t) {
 		super(s, t);
 	}
 	
-	public AAIPayloadException(String s) {
+	public GraphInventoryPayloadException(String s) {
 		super(s);
 	}
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java
similarity index 80%
rename from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java
rename to common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java
index 4d9f320..51747d4 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,17 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.exceptions;
+package org.onap.so.client.graphinventory.exceptions;
 
-public class AAIUriComputationException extends RuntimeException {
+public class GraphInventoryUriComputationException extends RuntimeException {
 
 	private static final long serialVersionUID = 5187931752227522034L;
 
-	public AAIUriComputationException(String s) {
+	public GraphInventoryUriComputationException(String s) {
 		super(s);
 	}
 	
-	public AAIUriComputationException(Throwable t) {
+	public GraphInventoryUriComputationException(Throwable t) {
 		super(t);
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java
similarity index 84%
rename from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java
rename to common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java
index 3e37394..d2f47a5 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.exceptions;
+package org.onap.so.client.graphinventory.exceptions;
 
-public class AAIUriNotFoundException extends Exception {
+public class GraphInventoryUriNotFoundException extends Exception {
 	private static final long serialVersionUID = 2789643165122257833L;
 
-	public AAIUriNotFoundException(String message) {
+	public GraphInventoryUriNotFoundException(String message) {
 		super(message);
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java b/common/src/main/java/org/onap/so/client/grm/GRMAction.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java
rename to common/src/main/java/org/onap/so/client/grm/GRMAction.java
index 50544ba..376c736 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMAction.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 public enum GRMAction {
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java b/common/src/main/java/org/onap/so/client/grm/GRMClient.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java
rename to common/src/main/java/org/onap/so/client/grm/GRMClient.java
index 5b5f269..84e25b9 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
-import org.openecomp.mso.client.grm.beans.ServiceEndPointList;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointLookup;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointLookupRequest;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointRequest;
-import org.openecomp.mso.client.grm.beans.VersionLookup;
-import org.openecomp.mso.client.grm.exceptions.GRMClientCallFailed;
+import org.onap.so.client.grm.beans.ServiceEndPointList;
+import org.onap.so.client.grm.beans.ServiceEndPointLookup;
+import org.onap.so.client.grm.beans.ServiceEndPointLookupRequest;
+import org.onap.so.client.grm.beans.ServiceEndPointRequest;
+import org.onap.so.client.grm.beans.VersionLookup;
+import org.onap.so.client.grm.exceptions.GRMClientCallFailed;
 
 public class GRMClient {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java b/common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java
rename to common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java
index 3bdc769..b38072e 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -32,7 +32,7 @@
 
 	@Override
 	public URL getEndpoint() throws MalformedURLException {
-		return new URL("http://localhost:28090");
+		return new URL("http://localhost:47389");
 	}
 
 	@Override
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java b/common/src/main/java/org/onap/so/client/grm/GRMProperties.java
similarity index 92%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java
rename to common/src/main/java/org/onap/so/client/grm/GRMProperties.java
index 6fbbb21..da9f215 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMProperties.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
-import org.openecomp.mso.client.RestProperties;
+import org.onap.so.client.RestProperties;
 
 public interface GRMProperties extends RestProperties {
 	public String getDefaultVersion();
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java b/common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java
rename to common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java
index 9323e22..485b9b0 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import java.util.Iterator;
 import java.util.ServiceLoader;
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
similarity index 74%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java
rename to common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
index 7a81d7e..ce16cca 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,20 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 
 import java.net.URI;
 import java.util.Base64;
 import java.util.Map;
 import java.util.Optional;
-import java.util.UUID;
 
-import javax.ws.rs.client.ClientResponseFilter;
-
-import org.openecomp.mso.client.ResponseExceptionMapperImpl;
-import org.openecomp.mso.client.RestProperties;
-import org.openecomp.mso.client.policy.RestClient;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.RestProperties;
+import org.onap.so.utils.TargetEntity;
 
 public class GRMRestClient extends RestClient {
 
@@ -39,23 +36,19 @@
 	private final String password;
 	
 	public GRMRestClient(RestProperties props, URI path, String username, String password) {
-		super(props, UUID.randomUUID(), Optional.of(path));
+		super(props, Optional.of(path));
 		this.username = username;
 		this.password = password;
 	}
 
+    @Override
+    public TargetEntity getTargetEntity(){
+        return TargetEntity.GRM;
+    }
+
 	@Override
 	protected void initializeHeaderMap(Map<String, String> headerMap) {
 		headerMap.put("Authorization", "Basic " + Base64.getEncoder().encodeToString(new String(username + ":" + password).getBytes()));
 	}
 
-	@Override
-	protected Optional<ClientResponseFilter> addResponseFilter() {
-		return Optional.of(new ResponseExceptionMapperImpl());
-	}
-
-	@Override
-	public RestClient addRequestId(UUID requestId) {
-		return this;
-	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java b/common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java
rename to common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java
index d706be3..3045cb3 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import java.net.URI;
 import java.util.Base64;
 
 import javax.ws.rs.core.UriBuilder;
-import org.openecomp.mso.client.RestPropertiesLoader;
-import org.openecomp.mso.client.policy.RestClient;
+
+import org.onap.so.client.RestClient;
 
 public class GRMRestInvoker {
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java b/common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java
similarity index 91%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java
rename to common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java
index c5f5a7a..85e15f5 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
+
+import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -28,8 +30,12 @@
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonPropertyOrder({ "createdBy", "updatedBy", "createdTimestamp", "updatedTimestamp" })
-public class OperationalInfo {
+public class OperationalInfo implements Serializable{
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7213334079745439793L;
 	@JsonProperty("createdBy")
 	private String createdBy;
 	@JsonProperty("updatedBy")
@@ -79,4 +85,4 @@
 		this.updatedTimestamp = updatedTimestamp;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java b/common/src/main/java/org/onap/so/client/grm/beans/Property.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java
rename to common/src/main/java/org/onap/so/client/grm/beans/Property.java
index eff1659..705db95 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/Property.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
+
+import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -28,8 +30,12 @@
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonPropertyOrder({ "name", "value" })
-public class Property {
+public class Property implements Serializable{
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -6060749559638446881L;
 	@JsonProperty("name")
 	private String name;
 	@JsonProperty("value")
@@ -55,4 +61,4 @@
 		this.value = value;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java
rename to common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java
index a753afb..e739f00 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
 import java.io.Serializable;
 import java.util.List;
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java
rename to common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java
index 0faf1fb..19bbe69 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
 import java.util.List;
 
@@ -45,4 +45,4 @@
 		this.serviceEndPointList = serviceEndPointList;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java
rename to common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java
index 37e2379..cab10e6 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java
rename to common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java
index fc1992c..5e88630 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
-import java.util.HashMap;
-import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -60,4 +55,4 @@
 		this.env = env;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java
rename to common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java
index 324fe9f..f7ea352 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
-import java.util.HashMap;
-import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -60,4 +55,4 @@
 		this.env = env;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java b/common/src/main/java/org/onap/so/client/grm/beans/Status.java
similarity index 92%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java
rename to common/src/main/java/org/onap/so/client/grm/beans/Status.java
index 3c66c50..8794139 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/Status.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
+
+import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -28,8 +30,12 @@
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonPropertyOrder({ "status", "statusReasonCode", "statusReasonDescription", "statusCheckTime" })
-public class Status {
+public class Status implements Serializable {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3555636617671062648L;
 	@JsonProperty("status")
 	private String status;
 	@JsonProperty("statusReasonCode")
@@ -79,4 +85,4 @@
 		this.statusCheckTime = statusCheckTime;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java b/common/src/main/java/org/onap/so/client/grm/beans/Version.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java
rename to common/src/main/java/org/onap/so/client/grm/beans/Version.java
index 1d4d959..fd1e580 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/Version.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
+
+import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -28,8 +30,12 @@
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonPropertyOrder({ "major", "minor", "patch" })
-public class Version {
+public class Version implements Serializable{
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 7509573030831487410L;
 	@JsonProperty("major")
 	private Integer major;
 	@JsonProperty("minor")
@@ -66,4 +72,4 @@
 	public void setPatch(String patch) {
 		this.patch = patch;
 	}
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java b/common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java
rename to common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java
index b9d5a63..0dc86b0 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java
+++ b/common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.beans;
+package org.onap.so.client.grm.beans;
 
 import java.io.Serializable;
 
@@ -46,4 +46,4 @@
 	public void setMajor(Integer major) {
 		this.major = major;
 	}
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java b/common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java
rename to common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java
index 60de572..7107d40 100644
--- a/common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java
+++ b/common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm.exceptions;
+package org.onap.so.client.grm.exceptions;
 
 public class GRMClientCallFailed extends Exception {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java
rename to common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java
index 4f41b64..f2f6f03 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
-
-import javax.ws.rs.ext.ContextResolver;
+package org.onap.so.client.policy;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -28,9 +26,9 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 
-public class CommonObjectMapperProvider implements ContextResolver<ObjectMapper> {
+public class CommonObjectMapperProvider {
 
-	final ObjectMapper mapper;
+	protected ObjectMapper mapper;
 
 	public CommonObjectMapperProvider() {
 		
@@ -42,8 +40,7 @@
 		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
 	}
 
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
+	public ObjectMapper getMapper() {
 		return mapper;
 	}
 }
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java b/common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java
rename to common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java
index 7b765eb..951372d 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java
+++ b/common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
 
 
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java b/common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java
similarity index 80%
rename from common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java
rename to common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java
index 19579e8..23b984a 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java
+++ b/common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,32 +18,28 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
-import javax.ws.rs.ext.ContextResolver;
+import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.MapperFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
 
-public class JettisonStyleMapperProvider implements ContextResolver<ObjectMapper> {
+@Component
+public class JettisonStyleMapperProvider extends CommonObjectMapperProvider {
 	
-	final ObjectMapper mapper;
-
 	public JettisonStyleMapperProvider() {
 		
 		mapper = new ObjectMapper();
+		JaxbAnnotationModule jaxbModule = new JaxbAnnotationModule();
 		mapper.setSerializationInclusion(Include.NON_NULL);
-        mapper.enable(MapperFeature.USE_ANNOTATIONS);
 		mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
 		mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
 		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+		mapper.registerModule(jaxbModule);
 	}
 
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
-	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java b/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java
rename to common/src/main/java/org/onap/so/client/policy/LoggingFilter.java
index b040696..83cf08f 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java
+++ b/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
@@ -39,14 +39,14 @@
 import javax.ws.rs.ext.WriterInterceptor;
 import javax.ws.rs.ext.WriterInterceptorContext;
 
-import org.openecomp.mso.logger.MsoLogger;
+import org.onap.so.logger.MsoLogger;
 
 
 @Provider
 @Priority(0)
 public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor {
 
-	private static final MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+	private static final MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, LoggingFilter.class);
 	private static final String ENTITY_STREAM_PROPERTY = "LoggingFilter.entityStream";
 	private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
 	private final int maxEntitySize;
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyClient.java
similarity index 83%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java
rename to common/src/main/java/org/onap/so/client/policy/PolicyClient.java
index defd11b..74c1e39 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
-import org.openecomp.mso.client.policy.entities.AllowedTreatments;
-import org.openecomp.mso.client.policy.entities.DictionaryData;
-import org.openecomp.mso.client.policy.entities.PolicyDecision;
+import org.onap.so.client.policy.entities.DictionaryData;
+import org.onap.so.client.policy.entities.PolicyDecision;
 
 public interface PolicyClient {
 
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java b/common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java
similarity index 70%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java
rename to common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java
index 0ce1911..1fd01e6 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,33 +18,35 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
-
-import org.openecomp.mso.client.RestPropertiesLoader;
-import org.openecomp.mso.client.defaultproperties.PolicyRestPropertiesImpl;
-import org.openecomp.mso.client.policy.entities.AllowedTreatments;
-import org.openecomp.mso.client.policy.entities.Bbid;
-import org.openecomp.mso.client.policy.entities.DecisionAttributes;
-import org.openecomp.mso.client.policy.entities.DictionaryData;
-import org.openecomp.mso.client.policy.entities.DictionaryItemsRequest;
-import org.openecomp.mso.client.policy.entities.DictionaryJson;
-import org.openecomp.mso.client.policy.entities.PolicyDecision;
-import org.openecomp.mso.client.policy.entities.PolicyDecisionRequest;
-import org.openecomp.mso.client.policy.entities.PolicyServiceType;
-import org.openecomp.mso.client.policy.entities.Workstep;
+package org.onap.so.client.policy;
 
 import java.util.List;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+
+import org.onap.so.client.RestClient;
+import org.onap.so.client.RestPropertiesLoader;
+import org.onap.so.client.defaultproperties.PolicyRestPropertiesImpl;
+import org.onap.so.client.policy.entities.AllowedTreatments;
+import org.onap.so.client.policy.entities.Bbid;
+import org.onap.so.client.policy.entities.DecisionAttributes;
+import org.onap.so.client.policy.entities.DictionaryData;
+import org.onap.so.client.policy.entities.DictionaryItemsRequest;
+import org.onap.so.client.policy.entities.DictionaryJson;
+import org.onap.so.client.policy.entities.PolicyDecision;
+import org.onap.so.client.policy.entities.PolicyDecisionRequest;
+import org.onap.so.client.policy.entities.PolicyServiceType;
+import org.onap.so.client.policy.entities.Workstep;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 
 public class PolicyClientImpl implements PolicyClient {
 
-	protected final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+	private static Logger logger = LoggerFactory.getLogger(PolicyClientImpl.class);
 	private PolicyRestProperties props;
 	public PolicyClientImpl() {
 		props = RestPropertiesLoader.getInstance().getNewImpl(PolicyRestProperties.class);
 		if (props == null) {
-			metricsLogger.error("No RestProperty.PolicyRestProperties implementation found on classpath");
+			logger.error("No RestProperty.PolicyRestProperties implementation found on classpath");
 			props = new PolicyRestPropertiesImpl();
 		}
 	}
@@ -52,8 +54,8 @@
 			String errorCode) {
 		DecisionAttributes decisionAttributes = new DecisionAttributes();
 		decisionAttributes.setServiceType(serviceType);
-		decisionAttributes.setVNFType(vnfType);
-		decisionAttributes.setBBID(bbID);
+		decisionAttributes.setvNFType(vnfType);
+		decisionAttributes.setBbID(bbID);
 		decisionAttributes.setWorkStep(workStep);
 		decisionAttributes.setErrorCode(errorCode);
 
@@ -87,7 +89,7 @@
 				return dictData;
 			}
 		}
-		metricsLogger.error("There is no AllowedTreatments with that specified parameter set");
+		logger.error("There is no AllowedTreatments with that specified parameter set");
 		return null;
 	}
 
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
similarity index 62%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java
rename to common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
index 77fec34..9427fa7 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
@@ -18,49 +18,37 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
-import java.net.MalformedURLException;
+
 import java.util.Map;
 import java.util.Optional;
-import java.util.UUID;
 
-import javax.ws.rs.client.ClientResponseFilter;
 import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriBuilderException;
 
-import org.openecomp.mso.client.ResponseExceptionMapperImpl;
-import org.openecomp.mso.client.RestProperties;
-import org.openecomp.mso.client.policy.entities.PolicyServiceType;
-import org.springframework.stereotype.Service;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.policy.entities.PolicyServiceType;
+import org.onap.so.utils.TargetEntity;
 
-@Service
 public class PolicyRestClient extends RestClient {
 
-	private static final UUID X_ECOMP_REQUESTID = UUID.randomUUID();
 	private final PolicyRestProperties properties;
+
 	public PolicyRestClient(PolicyRestProperties props, PolicyServiceType serviceType) {
-		super(props, UUID.randomUUID(), Optional.of(UriBuilder.fromPath(serviceType.toString()).build()));
+		super(props, Optional.of(UriBuilder.fromPath(serviceType.toString()).build()));
 		this.properties = props;
-		this.getClient();
 	}
 
+    @Override
+    public TargetEntity getTargetEntity(){
+        return TargetEntity.POLICY;
+    }
+
 	@Override
 	protected void initializeHeaderMap(Map<String, String> headerMap) {
 		headerMap.put("ClientAuth", properties.getClientAuth());
 		headerMap.put("Authorization", properties.getAuth());
 		headerMap.put("Environment", properties.getEnvironment());
-		this.addRequestId(X_ECOMP_REQUESTID);
 	}
 
-	@Override
-	protected Optional<ClientResponseFilter> addResponseFilter() {
-		return Optional.of(new ResponseExceptionMapperImpl());
-	}
-
-	@Override
-	public RestClient addRequestId(UUID requestId) {
-		this.headerMap.put("X-ECOMP-RequestID", requestId.toString());
-		return this;
-	}
-}
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java
rename to common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java
index d89bd54..1de6e8c 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy;
 
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-
-import org.openecomp.mso.client.RestProperties;
+import org.onap.so.client.RestProperties;
 
 public interface PolicyRestProperties extends RestProperties {
 	
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java b/common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java
rename to common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java
index 50db843..e82eca5 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;
+package org.onap.so.client.policy.entities;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -102,4 +102,4 @@
 return this;
  }
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java b/common/src/main/java/org/onap/so/client/policy/entities/Bbid.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java
rename to common/src/main/java/org/onap/so/client/policy/entities/Bbid.java
index 382b27a..34faa7d 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/Bbid.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,70 +18,70 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;

-

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"valueType",

-"string",

-"chars"

-})

-public class Bbid {

-

-@JsonProperty("valueType")

-private String valueType;

-@JsonProperty("string")

-private String string;

-@JsonProperty("chars")

-private String chars;

-

-@JsonProperty("valueType")

-public String getValueType() {

-return valueType;

- }

-

-@JsonProperty("valueType")

-public void setValueType(String valueType) {

-this.valueType = valueType;

- }

-

-public Bbid withValueType(String valueType) {

-this.valueType = valueType;

-return this;

- }

-

-@JsonProperty("string")

-public String getString() {

-return string;

- }

-

-@JsonProperty("string")

-public void setString(String string) {

-this.string = string;

- }

-

-public Bbid withString(String string) {

-this.string = string;

-return this;

- }

-

-@JsonProperty("chars")

-public String getChars() {

-return chars;

- }

-

-@JsonProperty("chars")

-public void setChars(String chars) {

-this.chars = chars;

- }

-

-public Bbid withChars(String chars) {

-this.chars = chars;

-return this;

- }

-

-}
\ No newline at end of file
+package org.onap.so.client.policy.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"valueType",
+"string",
+"chars"
+})
+public class Bbid {
+
+@JsonProperty("valueType")
+private String valueType;
+@JsonProperty("string")
+private String string;
+@JsonProperty("chars")
+private String chars;
+
+@JsonProperty("valueType")
+public String getValueType() {
+return valueType;
+ }
+
+@JsonProperty("valueType")
+public void setValueType(String valueType) {
+this.valueType = valueType;
+ }
+
+public Bbid withValueType(String valueType) {
+this.valueType = valueType;
+return this;
+ }
+
+@JsonProperty("string")
+public String getString() {
+return string;
+ }
+
+@JsonProperty("string")
+public void setString(String string) {
+this.string = string;
+ }
+
+public Bbid withString(String string) {
+this.string = string;
+return this;
+ }
+
+@JsonProperty("chars")
+public String getChars() {
+return chars;
+ }
+
+@JsonProperty("chars")
+public void setChars(String chars) {
+this.chars = chars;
+ }
+
+public Bbid withChars(String chars) {
+this.chars = chars;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java b/common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java
similarity index 91%
copy from common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java
copy to common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java
index 7b765eb..07db7d8 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy.entities;
 
 
 
@@ -51,26 +51,6 @@
 		this.serviceType = serviceType;
 	}
 
-	@JsonProperty("VNFType")
-	public String getVNFType() {
-		return vNFType;
-	}
-
-	@JsonProperty("VNFType")
-	public void setVNFType(String vNFType) {
-		this.vNFType = vNFType;
-	}
-
-	@JsonProperty("BB_ID")
-	public String getBBID() {
-		return bbID;
-	}
-
-	@JsonProperty("BB_ID")
-	public void setBBID(String bBID) {
-		this.bbID = bBID;
-	}
-
 	@JsonProperty("WorkStep")
 	public String getWorkStep() {
 		return workStep;
@@ -90,4 +70,25 @@
 	public void setErrorCode(String errorCode) {
 		this.errorCode = errorCode;
 	}
+	
+	@JsonProperty("VNFType")
+	public String getvNFType() {
+		return vNFType;
+	}
+	
+	@JsonProperty("VNFType")
+	public void setvNFType(String vNFType) {
+		this.vNFType = vNFType;
+	}
+	
+	@JsonProperty("BB_ID")
+	public String getBbID() {
+		return bbID;
+	}
+	
+	@JsonProperty("BB_ID")
+	public void setBbID(String bbID) {
+		this.bbID = bbID;
+	}
+	
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java
rename to common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java
index 1ecf336..8207999 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,88 +18,88 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;

-

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"id",

-"bbid",

-"workstep",

-"treatments"

-})

-public class DictionaryData {

-

-@JsonProperty("id")

-private Id id;

-@JsonProperty("bbid")

-private Bbid bbid;

-@JsonProperty("workstep")

-private Workstep workstep;

-@JsonProperty("treatments")

-private Treatments treatments;

-

-@JsonProperty("id")

-public Id getId() {

-return id;

- }

-

-@JsonProperty("id")

-public void setId(Id id) {

-this.id = id;

- }

-

-public DictionaryData withId(Id id) {

-this.id = id;

-return this;

- }

-

-@JsonProperty("bbid")

-public Bbid getBbid() {

-return bbid;

- }

-

-@JsonProperty("bbid")

-public void setBbid(Bbid bbid) {

-this.bbid = bbid;

- }

-

-public DictionaryData withBbid(Bbid bbid) {

-this.bbid = bbid;

-return this;

- }

-

-@JsonProperty("workstep")

-public Workstep getWorkstep() {

-return workstep;

- }

-

-@JsonProperty("workstep")

-public void setWorkstep(Workstep workstep) {

-this.workstep = workstep;

- }

-

-public DictionaryData withWorkstep(Workstep workstep) {

-this.workstep = workstep;

-return this;

- }

-

-@JsonProperty("treatments")

-public Treatments getTreatments() {

-return treatments;

- }

-

-@JsonProperty("treatments")

-public void setTreatments(Treatments treatments) {

-this.treatments = treatments;

- }

-

-public DictionaryData withTreatments(Treatments treatments) {

-this.treatments = treatments;

-return this;

- }

-

-}
\ No newline at end of file
+package org.onap.so.client.policy.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"id",
+"bbid",
+"workstep",
+"treatments"
+})
+public class DictionaryData {
+
+@JsonProperty("id")
+private Id id;
+@JsonProperty("bbid")
+private Bbid bbid;
+@JsonProperty("workstep")
+private Workstep workstep;
+@JsonProperty("treatments")
+private Treatments treatments;
+
+@JsonProperty("id")
+public Id getId() {
+return id;
+ }
+
+@JsonProperty("id")
+public void setId(Id id) {
+this.id = id;
+ }
+
+public DictionaryData withId(Id id) {
+this.id = id;
+return this;
+ }
+
+@JsonProperty("bbid")
+public Bbid getBbid() {
+return bbid;
+ }
+
+@JsonProperty("bbid")
+public void setBbid(Bbid bbid) {
+this.bbid = bbid;
+ }
+
+public DictionaryData withBbid(Bbid bbid) {
+this.bbid = bbid;
+return this;
+ }
+
+@JsonProperty("workstep")
+public Workstep getWorkstep() {
+return workstep;
+ }
+
+@JsonProperty("workstep")
+public void setWorkstep(Workstep workstep) {
+this.workstep = workstep;
+ }
+
+public DictionaryData withWorkstep(Workstep workstep) {
+this.workstep = workstep;
+return this;
+ }
+
+@JsonProperty("treatments")
+public Treatments getTreatments() {
+return treatments;
+ }
+
+@JsonProperty("treatments")
+public void setTreatments(Treatments treatments) {
+this.treatments = treatments;
+ }
+
+public DictionaryData withTreatments(Treatments treatments) {
+this.treatments = treatments;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java
rename to common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java
index d37d0c6..8b063e8 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,8 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-
-package org.openecomp.mso.client.policy.entities;
+package org.onap.so.client.policy.entities;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java
rename to common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java
index b6a95ae..097c9a5 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,36 +18,37 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;

-

-import java.util.ArrayList;

-import java.util.List;

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"DictionaryDatas"

-})

-public class DictionaryJson {

-

-@JsonProperty("DictionaryDatas")

-private List<DictionaryData> dictionaryDatas = new ArrayList<DictionaryData>();

-

-@JsonProperty("DictionaryDatas")

-public List<DictionaryData> getDictionaryDatas() {

-return dictionaryDatas;

- }

-

-@JsonProperty("DictionaryDatas")

-public void setDictionaryDatas(List<DictionaryData> dictionaryDatas) {

-this.dictionaryDatas = dictionaryDatas;

- }

-

-public DictionaryJson withDictionaryDatas(List<DictionaryData> dictionaryDatas) {

-this.dictionaryDatas = dictionaryDatas;

-return this;

- }

-

-}
\ No newline at end of file
+package org.onap.so.client.policy.entities;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"DictionaryDatas"
+})
+public class DictionaryJson {
+
+@JsonProperty("DictionaryDatas")
+private List<DictionaryData> dictionaryDatas = new ArrayList<DictionaryData>();
+
+@JsonProperty("DictionaryDatas")
+public List<DictionaryData> getDictionaryDatas() {
+return dictionaryDatas;
+ }
+
+@JsonProperty("DictionaryDatas")
+public void setDictionaryDatas(List<DictionaryData> dictionaryDatas) {
+this.dictionaryDatas = dictionaryDatas;
+ }
+
+public DictionaryJson withDictionaryDatas(List<DictionaryData> dictionaryDatas) {
+this.dictionaryDatas = dictionaryDatas;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java b/common/src/main/java/org/onap/so/client/policy/entities/Id.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java
rename to common/src/main/java/org/onap/so/client/policy/entities/Id.java
index 728381a..af164d6 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/Id.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,52 +18,52 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;

-

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"integral",

-"valueType"

-})

-public class Id {

-

-@JsonProperty("integral")

-private Boolean integral;

-@JsonProperty("valueType")

-private String valueType;

-

-@JsonProperty("integral")

-public Boolean getIntegral() {

-return integral;

- }

-

-@JsonProperty("integral")

-public void setIntegral(Boolean integral) {

-this.integral = integral;

- }

-

-public Id withIntegral(Boolean integral) {

-this.integral = integral;

-return this;

- }

-

-@JsonProperty("valueType")

-public String getValueType() {

-return valueType;

- }

-

-@JsonProperty("valueType")

-public void setValueType(String valueType) {

-this.valueType = valueType;

- }

-

-public Id withValueType(String valueType) {

-this.valueType = valueType;

-return this;

- }

-

-}
\ No newline at end of file
+package org.onap.so.client.policy.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"integral",
+"valueType"
+})
+public class Id {
+
+@JsonProperty("integral")
+private Boolean integral;
+@JsonProperty("valueType")
+private String valueType;
+
+@JsonProperty("integral")
+public Boolean getIntegral() {
+return integral;
+ }
+
+@JsonProperty("integral")
+public void setIntegral(Boolean integral) {
+this.integral = integral;
+ }
+
+public Id withIntegral(Boolean integral) {
+this.integral = integral;
+return this;
+ }
+
+@JsonProperty("valueType")
+public String getValueType() {
+return valueType;
+ }
+
+@JsonProperty("valueType")
+public void setValueType(String valueType) {
+this.valueType = valueType;
+ }
+
+public Id withValueType(String valueType) {
+this.valueType = valueType;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java
rename to common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java
index 98c7e15..57c9392 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy.entities;
 
 
 
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java
rename to common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java
index c83fb19..b402e85 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy;
+package org.onap.so.client.policy.entities;
 
 
 import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java
rename to common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java
index 01f6738..83dc6b7 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;
+package org.onap.so.client.policy.entities;
 
 public enum PolicyServiceType {
 	GET_CONFIG("getConfig"),
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java b/common/src/main/java/org/onap/so/client/policy/entities/Treatments.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java
rename to common/src/main/java/org/onap/so/client/policy/entities/Treatments.java
index 13af893..433d327 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/Treatments.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,70 +18,70 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;

-

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"valueType",

-"string",

-"chars"

-})

-public class Treatments {

-

-@JsonProperty("valueType")

-private String valueType;

-@JsonProperty("string")

-private String string;

-@JsonProperty("chars")

-private String chars;

-

-@JsonProperty("valueType")

-public String getValueType() {

-return valueType;

- }

-

-@JsonProperty("valueType")

-public void setValueType(String valueType) {

-this.valueType = valueType;

- }

-

-public Treatments withValueType(String valueType) {

-this.valueType = valueType;

-return this;

- }

-

-@JsonProperty("string")

-public String getString() {

-return string;

- }

-

-@JsonProperty("string")

-public void setString(String string) {

-this.string = string;

- }

-

-public Treatments withString(String string) {

-this.string = string;

-return this;

- }

-

-@JsonProperty("chars")

-public String getChars() {

-return chars;

- }

-

-@JsonProperty("chars")

-public void setChars(String chars) {

-this.chars = chars;

- }

-

-public Treatments withChars(String chars) {

-this.chars = chars;

-return this;

- }

-

-}
\ No newline at end of file
+package org.onap.so.client.policy.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"valueType",
+"string",
+"chars"
+})
+public class Treatments {
+
+@JsonProperty("valueType")
+private String valueType;
+@JsonProperty("string")
+private String string;
+@JsonProperty("chars")
+private String chars;
+
+@JsonProperty("valueType")
+public String getValueType() {
+return valueType;
+ }
+
+@JsonProperty("valueType")
+public void setValueType(String valueType) {
+this.valueType = valueType;
+ }
+
+public Treatments withValueType(String valueType) {
+this.valueType = valueType;
+return this;
+ }
+
+@JsonProperty("string")
+public String getString() {
+return string;
+ }
+
+@JsonProperty("string")
+public void setString(String string) {
+this.string = string;
+ }
+
+public Treatments withString(String string) {
+this.string = string;
+return this;
+ }
+
+@JsonProperty("chars")
+public String getChars() {
+return chars;
+ }
+
+@JsonProperty("chars")
+public void setChars(String chars) {
+this.chars = chars;
+ }
+
+public Treatments withChars(String chars) {
+this.chars = chars;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java b/common/src/main/java/org/onap/so/client/policy/entities/Workstep.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java
rename to common/src/main/java/org/onap/so/client/policy/entities/Workstep.java
index 9d2adfe..4fbd6e2 100644
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java
+++ b/common/src/main/java/org/onap/so/client/policy/entities/Workstep.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,71 +18,70 @@
  * ============LICENSE_END=========================================================
  */
 
-

-package org.openecomp.mso.client.policy.entities;

-

-import com.fasterxml.jackson.annotation.JsonInclude;

-import com.fasterxml.jackson.annotation.JsonProperty;

-import com.fasterxml.jackson.annotation.JsonPropertyOrder;

-

-@JsonInclude(JsonInclude.Include.NON_NULL)

-@JsonPropertyOrder({

-"valueType",

-"string",

-"chars"

-})

-public class Workstep {

-

-@JsonProperty("valueType")

-private String valueType;

-@JsonProperty("string")

-private String string;

-@JsonProperty("chars")

-private String chars;

-

-@JsonProperty("valueType")

-public String getValueType() {

-return valueType;

- }

-

-@JsonProperty("valueType")

-public void setValueType(String valueType) {

-this.valueType = valueType;

- }

-

-public Workstep withValueType(String valueType) {

-this.valueType = valueType;

-return this;

- }

-

-@JsonProperty("string")

-public String getString() {

-return string;

- }

-

-@JsonProperty("string")

-public void setString(String string) {

-this.string = string;

- }

-

-public Workstep withString(String string) {

-this.string = string;

-return this;

- }

-

-@JsonProperty("chars")

-public String getChars() {

-return chars;

- }

-

-@JsonProperty("chars")

-public void setChars(String chars) {

-this.chars = chars;

- }

-

-public Workstep withChars(String chars) {

-this.chars = chars;

-return this;

- }

-

-}

+package org.onap.so.client.policy.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+"valueType",
+"string",
+"chars"
+})
+public class Workstep {
+
+@JsonProperty("valueType")
+private String valueType;
+@JsonProperty("string")
+private String string;
+@JsonProperty("chars")
+private String chars;
+
+@JsonProperty("valueType")
+public String getValueType() {
+return valueType;
+ }
+
+@JsonProperty("valueType")
+public void setValueType(String valueType) {
+this.valueType = valueType;
+ }
+
+public Workstep withValueType(String valueType) {
+this.valueType = valueType;
+return this;
+ }
+
+@JsonProperty("string")
+public String getString() {
+return string;
+ }
+
+@JsonProperty("string")
+public void setString(String string) {
+this.string = string;
+ }
+
+public Workstep withString(String string) {
+this.string = string;
+return this;
+ }
+
+@JsonProperty("chars")
+public String getChars() {
+return chars;
+ }
+
+@JsonProperty("chars")
+public void setChars(String chars) {
+this.chars = chars;
+ }
+
+public Workstep withChars(String chars) {
+this.chars = chars;
+return this;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java b/common/src/main/java/org/onap/so/client/ruby/RubyClient.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java
rename to common/src/main/java/org/onap/so/client/ruby/RubyClient.java
index a4adcb2..15b2324 100644
--- a/common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java
+++ b/common/src/main/java/org/onap/so/client/ruby/RubyClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby;
+package org.onap.so.client.ruby;
 
 import java.io.IOException;
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 
-import org.openecomp.mso.client.dmaap.DmaapPublisher;
-import org.openecomp.mso.client.ruby.beans.Event;
-import org.openecomp.mso.client.ruby.beans.MsoRequest;
-import org.openecomp.mso.client.ruby.beans.Ruby;
-import org.openecomp.mso.client.ruby.dmaap.RubyCreateTicketRequestPublisher;
+import org.onap.so.client.dmaap.DmaapPublisher;
+import org.onap.so.client.ruby.beans.Event;
+import org.onap.so.client.ruby.beans.MsoRequest;
+import org.onap.so.client.ruby.beans.Ruby;
+import org.onap.so.client.ruby.dmaap.RubyCreateTicketRequestPublisher;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -87,4 +87,4 @@
 		final DmaapPublisher publisher = this.getPublisher();
 		publisher.send(request);
 	}
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java b/common/src/main/java/org/onap/so/client/ruby/beans/Event.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java
rename to common/src/main/java/org/onap/so/client/ruby/beans/Event.java
index b926359..93745ff 100644
--- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java
+++ b/common/src/main/java/org/onap/so/client/ruby/beans/Event.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby.beans;
+package org.onap.so.client.ruby.beans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -64,4 +64,4 @@
 return this;
  }
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java b/common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java
rename to common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java
index d00adae..f2c004e 100644
--- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java
+++ b/common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby.beans;
+package org.onap.so.client.ruby.beans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -204,4 +204,4 @@
 return this;
  }
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java b/common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java
rename to common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java
index 1b81043..725e6a3 100644
--- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java
+++ b/common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,8 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-
-package org.openecomp.mso.client.ruby.beans;
+package org.onap.so.client.ruby.beans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java b/common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java
rename to common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java
index 521318f..1d4e014 100644
--- a/common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java
+++ b/common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby.dmaap;
+package org.onap.so.client.ruby.dmaap;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Optional;
 
-import org.openecomp.mso.client.dmaap.DmaapPublisher;
+import org.onap.so.client.dmaap.DmaapPublisher;
 
 public class RubyCreateTicketRequestPublisher extends DmaapPublisher{
 	public RubyCreateTicketRequestPublisher() throws FileNotFoundException, IOException {
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java b/common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java
similarity index 92%
rename from common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java
rename to common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java
index 3ba75bb..93a35f3 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java
+++ b/common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno;
+package org.onap.so.client.sdno;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -27,15 +27,15 @@
 import java.util.List;
 import java.util.Optional;
 
-import org.openecomp.mso.client.dmaap.DmaapConsumer;
-import org.openecomp.mso.client.dmaap.DmaapPublisher;
-import org.openecomp.mso.client.sdno.beans.AAIParamList;
-import org.openecomp.mso.client.sdno.beans.Body;
-import org.openecomp.mso.client.sdno.beans.Input;
-import org.openecomp.mso.client.sdno.beans.RequestHdCustom;
-import org.openecomp.mso.client.sdno.beans.SDNO;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher;
+import org.onap.so.client.dmaap.DmaapConsumer;
+import org.onap.so.client.dmaap.DmaapPublisher;
+import org.onap.so.client.sdno.beans.AAIParamList;
+import org.onap.so.client.sdno.beans.Body;
+import org.onap.so.client.sdno.beans.Input;
+import org.onap.so.client.sdno.beans.RequestHdCustom;
+import org.onap.so.client.sdno.beans.SDNO;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java b/common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java
similarity index 67%
rename from common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java
rename to common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java
index 534186b..f3cab1e 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java
+++ b/common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,21 +18,38 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno;
+package org.onap.so.client.sdno;
 
 import java.io.IOException;
 import java.util.UUID;
 
+import org.onap.aai.domain.yang.GenericVnf;
+
 public interface SDNOValidator {
 
 	/**
 	 * Issues a health diagnostic request for a given vnf to SDN-O
 	 * 
 	 * @param vnfId
+	 * @param uuid
 	 * @param requestingUserId
+	 * @return diagnostic result
 	 * @throws IOException
 	 * @throws Exception
 	 */
-	public void healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception;
+	public boolean healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception;
+	
+
+	/**
+	 * Issues a health diagnostic request for a given GenericVnf to SDN-O
+	 * 
+	 * @param genericVnf
+	 * @param uuid
+	 * @param requestingUserId
+	 * @return diagnostic result
+	 * @throws IOException
+	 * @throws Exception
+	 */
+	public boolean healthDiagnostic(GenericVnf genericVnf, UUID uuid, String requestingUserId) throws IOException, Exception;	
 
 }
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java b/common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java
similarity index 67%
rename from common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java
rename to common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java
index e6955f5..be79c8b 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java
+++ b/common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,48 +18,60 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno;
+package org.onap.so.client.sdno;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Optional;
 import java.util.UUID;
 
+import javax.ws.rs.NotFoundException;
+
 import org.onap.aai.domain.yang.GenericVnf;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.AAIResourcesClient;
-import org.openecomp.mso.client.aai.AAIVersion;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.client.dmaap.DmaapConsumer;
-import org.openecomp.mso.client.dmaap.DmaapPublisher;
-import org.openecomp.mso.client.sdno.beans.Body;
-import org.openecomp.mso.client.sdno.beans.Input;
-import org.openecomp.mso.client.sdno.beans.RequestHealthDiagnostic;
-import org.openecomp.mso.client.sdno.beans.SDNO;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.AAIVersion;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.dmaap.DmaapConsumer;
+import org.onap.so.client.dmaap.DmaapPublisher;
+import org.onap.so.client.sdno.beans.Body;
+import org.onap.so.client.sdno.beans.Input;
+import org.onap.so.client.sdno.beans.RequestHealthDiagnostic;
+import org.onap.so.client.sdno.beans.SDNO;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-
 public class SDNOValidatorImpl implements SDNOValidator {
 
 	private final static String clientName = "MSO";
 
 	@Override
-	public void healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception {
+	public boolean healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception {
 		
 		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
-		AAIResourcesClient client = new AAIResourcesClient(AAIVersion.V10, uuid);
-		GenericVnf vnf = client.get(GenericVnf.class, uri);
+		AAIResourcesClient client = new AAIResourcesClient(AAIVersion.V10);
+		GenericVnf vnf = client.get(GenericVnf.class, uri).orElseThrow(() -> new NotFoundException(vnfId + " not found in A&AI"));
 		
 		SDNO requestDiagnostic = buildRequestDiagnostic(vnf, uuid, requestingUserId);
 		ObjectMapper mapper = new ObjectMapper();
 		String json = mapper.writeValueAsString(requestDiagnostic);
 		this.submitRequest(json);
-		this.pollForResponse(uuid.toString());
+		boolean status = this.pollForResponse(uuid.toString());
+		return status;		
+	}
+	
+	@Override
+	public boolean healthDiagnostic(GenericVnf genericVnf, UUID uuid, String requestingUserId) throws IOException, Exception {
 		
+		SDNO requestDiagnostic = buildRequestDiagnostic(genericVnf, uuid, requestingUserId);
+		ObjectMapper mapper = new ObjectMapper();
+		String json = mapper.writeValueAsString(requestDiagnostic);
+		this.submitRequest(json);
+		boolean status = this.pollForResponse(uuid.toString());
+		return status;		
 	}
 
 	protected SDNO buildRequestDiagnostic(GenericVnf vnf, UUID uuid, String requestingUserId) {
@@ -80,8 +92,10 @@
 		body.setInput(input);
 		
 		RequestHealthDiagnostic request = new RequestHealthDiagnostic();
+
 		request.setRequestClientName(clientName);
 		request.setRequestNodeName(vnf.getVnfName());
+		request.setRequestNodeUuid(vnf.getVnfId());
 		request.setRequestNodeIp(vnf.getIpv4OamAddress()); //generic-vnf oam ip
 		request.setRequestUserId(requestingUserId); //mech id?
 		request.setRequestId(uuid.toString()); //something to identify this request by for polling
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java b/common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java
index bab37c0..0de9b90 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -84,4 +84,4 @@
 return this;
  }
 
-}
\ No newline at end of file
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java b/common/src/main/java/org/onap/so/client/sdno/beans/Body.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/Body.java
index 0898f3c..dfca9ec 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/Body.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import java.io.Serializable;
 import java.util.HashMap;
@@ -41,7 +41,7 @@
     @JsonProperty("input")
     private Input input;
     @JsonIgnore
-    private Map<String, Object> additionalProperties = new HashMap<>();
+    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
     private final static long serialVersionUID = 9101706044452851559L;
 
     @JsonProperty("input")
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java b/common/src/main/java/org/onap/so/client/sdno/beans/Input.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/Input.java
index 9626ff0..e565f71 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/Input.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import java.io.Serializable;
 import java.util.HashMap;
@@ -45,7 +45,7 @@
     private RequestHdCustom requestHdCustom;
     
     @JsonIgnore
-    private Map<String, Object> additionalProperties = new HashMap<>();
+    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
     private final static long serialVersionUID = 7155546785389227528L;
 
     @JsonProperty("request-healthdiagnostic")
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java
similarity index 86%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java
index a0d00a7..b3a6a48 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
+package org.onap.so.client.sdno.beans;
 
-package org.openecomp.mso.client.sdno.beans;
-
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@@ -34,10 +35,15 @@
 "request-id",
 "health-diagnostic-code",
 "operation-type",
+"send-detailed-cmd-response",
 "aai-param-list"
 })
-public class RequestHdCustom {
+public class RequestHdCustom implements Serializable {
 
+/**
+	 * 
+	 */
+	private static final long serialVersionUID = -206110458275127710L;
 @JsonProperty("request-client-name")
 private String requestClientName;
 @JsonProperty("request-user-id")
@@ -48,6 +54,8 @@
 private String healthDiagnosticCode;
 @JsonProperty("operation-type")
 private String operationType;
+@JsonProperty("send-detailed-cmd-response")
+private String sendDetailedCmdResponse = "false";
 @JsonProperty("aai-param-list")
 private List<AAIParamList> aaiParamList = new ArrayList<AAIParamList>();
 
@@ -152,6 +160,19 @@
 return this;
  }
 
+public void setSendDetailedCmdResponse(String sendDetailedCmdResponse) {
+	this.sendDetailedCmdResponse = sendDetailedCmdResponse;
+}
+
+public String getSendDetailedCmdResponse() {
+	return sendDetailedCmdResponse;
+}
+
+public RequestHdCustom withSendDetailedCmdResponse(String sendDetailedCmdResponse) {
+	this.sendDetailedCmdResponse = sendDetailedCmdResponse;
+	return this;
+}
+
 @JsonProperty("aai-param-list")
 public List<AAIParamList> getAaiParamList() {
 return aaiParamList;
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java
index 5ff47fa..69745d6 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import java.io.Serializable;
 import java.util.HashMap;
@@ -35,6 +35,7 @@
 @JsonPropertyOrder({
     "request-client-name",
     "request-node-name",
+    "request-node-uuid",
     "request-node-ip",
     "request-id",
     "request-user-id",
@@ -48,6 +49,8 @@
     private String requestClientName;
     @JsonProperty("request-node-name")
     private String requestNodeName;
+    @JsonProperty("request-node-uuid")
+    private String requestNodeUuid;
     @JsonProperty("request-node-ip")
     private String requestNodeIp;
     @JsonProperty("request-id")
@@ -59,7 +62,7 @@
     @JsonProperty("health-diagnostic-code")
     private String healthDiagnosticCode;
     @JsonIgnore
-    private Map<String, Object> additionalProperties = new HashMap<>();
+    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
     private final static long serialVersionUID = 1166788526178388021L;
 
     @JsonProperty("request-client-name")
@@ -91,6 +94,21 @@
         this.requestNodeName = requestNodeName;
         return this;
     }
+    
+    @JsonProperty("request-node-uuid")
+    public String getRequestNodeUuid() {
+        return requestNodeUuid;
+    }
+
+    @JsonProperty("request-node-uuid")
+    public void setRequestNodeUuid(String requestNodeUuid) {
+        this.requestNodeUuid = requestNodeUuid;
+    }
+
+    public RequestHealthDiagnostic withRequestNodeUuid(String requestNodeUuid) {
+        this.requestNodeUuid = requestNodeUuid;
+        return this;
+    }
 
     @JsonProperty("request-node-ip")
     public String getRequestNodeIp() {
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java b/common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java
index 1fdc9b2..7cf9c7c 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -51,7 +51,7 @@
 @JsonProperty("status")
 private String status;
 @JsonIgnore
-private Map<String, Object> additionalProperties = new HashMap<>();
+private Map<String, Object> additionalProperties = new HashMap<String, Object>();
 
 @JsonProperty("client-name")
 public String getClientName() {
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java b/common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java
rename to common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java
index fa3a26a..7c728a7 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java
+++ b/common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import java.io.Serializable;
 import java.util.HashMap;
@@ -50,7 +50,7 @@
     @JsonProperty("body")
     private Body body;
     @JsonIgnore
-    private Map<String, Object> additionalProperties = new HashMap<>();
+    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
     private final static long serialVersionUID = -5303297382564282650L;
 
     @JsonProperty("operation")
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java
rename to common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java
index ca5888c..6f415af 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java
+++ b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.dmaap;
+package org.onap.so.client.sdno.dmaap;
 
 import java.io.IOException;
 import java.util.Optional;
-import org.openecomp.mso.client.dmaap.DmaapConsumer;
-import org.openecomp.mso.client.exceptions.SDNOException;
-import org.openecomp.mso.jsonpath.JsonPathUtil;
+import org.onap.so.client.dmaap.DmaapConsumer;
+import org.onap.so.client.exceptions.SDNOException;
+import org.onap.so.jsonpath.JsonPathUtil;
 
 public class SDNOHealthCheckDmaapConsumer extends DmaapConsumer {
 
@@ -81,7 +81,7 @@
 					throw new SDNOException("failed with no status message");
 				}
 			} else {
-				auditLogger.info("successful health diagnostic found for request: " + this.getRequestId());
+				logger.info("successful health diagnostic found for request: {}" ,getRequestId());
 				stopProcessingMessages();
 			}
 		}
diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java
rename to common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java
index ef19bb7..2556e67 100644
--- a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java
+++ b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.dmaap;
+package org.onap.so.client.sdno.dmaap;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Optional;
 
-import org.openecomp.mso.client.dmaap.DmaapPublisher;
+import org.onap.so.client.dmaap.DmaapPublisher;
 
 public class SDNOHealthCheckDmaapPublisher extends DmaapPublisher {
 	
diff --git a/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java b/common/src/main/java/org/onap/so/entity/MsoRequest.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/entity/MsoRequest.java
rename to common/src/main/java/org/onap/so/entity/MsoRequest.java
index 39ba8dc..c61684b 100644
--- a/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java
+++ b/common/src/main/java/org/onap/so/entity/MsoRequest.java
@@ -18,9 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.entity;
+package org.onap.so.entity;
 
 
+import java.io.Serializable;
 
 /**
  * This simple bean holds tracking information for MSO requests within
@@ -29,8 +30,9 @@
  * 
  *
  */
-public class MsoRequest
+public class MsoRequest implements Serializable
 {
+	private static final long serialVersionUID = 1797142528913733469L;
 	private String requestId;
 	private String serviceInstanceId;
 
@@ -38,11 +40,12 @@
 		this.requestId = null;
 		this.serviceInstanceId = null;
 	}
+
 	public MsoRequest(String r, String s) {
 		this.requestId = r;
 		this.serviceInstanceId = s;
 	}
-
+	
 	public String getRequestId() {
 		return requestId;
 	}
diff --git a/common/src/main/java/org/openecomp/mso/entity/package-info.java b/common/src/main/java/org/onap/so/entity/package-info.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/entity/package-info.java
rename to common/src/main/java/org/onap/so/entity/package-info.java
index bf7201c..c4f5a16 100644
--- a/common/src/main/java/org/openecomp/mso/entity/package-info.java
+++ b/common/src/main/java/org/onap/so/entity/package-info.java
@@ -22,5 +22,5 @@
  * Entities used for logging.
  */
 
-package org.openecomp.mso.entity;
+package org.onap.so.entity;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/main/java/org/onap/so/exceptions/MarshallerException.java
similarity index 62%
copy from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
copy to common/src/main/java/org/onap/so/exceptions/MarshallerException.java
index 799e2f8..8b06a85 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
+++ b/common/src/main/java/org/onap/so/exceptions/MarshallerException.java
@@ -18,27 +18,32 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
-
-import java.util.List;
-import org.apache.commons.lang3.builder.ToStringBuilder;
+package org.onap.so.exceptions;
 
 
-public class RequestList {
+public class MarshallerException extends Exception {
 
-    protected Request request;
+    private static final long serialVersionUID = 1L;
+    private String message;
+    private int errorCode;
 
-	public Request getRequest() {
-		return request;
-	}
+    public MarshallerException(String message) {
+        super(message);
+    }
 
-	public void setRequest(Request request) {
-		this.request = request;
-	}
+    public MarshallerException(String message, int errorCode, Exception e) {
+        super (e);
+        this.message = message;
+        this.errorCode = errorCode;
 
-	@Override
-	public String toString() {
-		return new ToStringBuilder(this).append("request", request).toString();
-	}
+    }
 
+    @Override
+    public String getMessage() {
+        return message;
+    }
+
+    public int getErrorCode() {
+        return errorCode;
+    }
 }
diff --git a/common/src/main/java/org/onap/so/exceptions/ValidationException.java b/common/src/main/java/org/onap/so/exceptions/ValidationException.java
new file mode 100644
index 0000000..713fac7
--- /dev/null
+++ b/common/src/main/java/org/onap/so/exceptions/ValidationException.java
@@ -0,0 +1,54 @@
+/*-
+ * ============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.exceptions;
+
+
+public class ValidationException extends Exception {
+
+    /**
+     * This class simply extends Exception (without addition additional functionality)
+     * to provide an identifier for RequestsDB related exceptions on create, delete, query.
+     *
+     *
+     **/
+
+    private static final long serialVersionUID = 1L;
+    private static final String VALIDATION_FAIL = "No valid $ELEMENT is specified";
+    private static final String INVALID_ELEMENT = "$ELEMENT is not valid in the $VERSION version";
+    private static final String REPLACE_ELEMENT_KEY = "\\$ELEMENT";
+    private static final String REPLACE_VERSION_KEY = "\\$VERSION";
+
+    @Deprecated
+    public ValidationException (String msg) {
+        super (VALIDATION_FAIL.replaceAll (REPLACE_ELEMENT_KEY, msg));
+    }
+
+    public ValidationException(String msg, boolean overrideExistingMessage) {
+        super(overrideExistingMessage ? VALIDATION_FAIL.replaceAll(REPLACE_ELEMENT_KEY, msg) : msg);
+    }
+
+    public ValidationException (String msg, Exception cause) {
+        super (VALIDATION_FAIL.replaceAll (REPLACE_ELEMENT_KEY, msg), cause);
+    }
+    public ValidationException(String msg, String version) {
+        super(INVALID_ELEMENT.replaceAll(REPLACE_ELEMENT_KEY, msg).replaceAll(REPLACE_VERSION_KEY, version));
+    }
+}
diff --git a/common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java b/common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java
similarity index 88%
rename from common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java
rename to common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java
index 148eb74..cb0de99 100644
--- a/common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java
+++ b/common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.jsonpath;
+package org.onap.so.jsonpath;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -35,9 +35,10 @@
 
 	
 	private final Configuration conf;
-	
+	private final Configuration pathListConf;
 	private JsonPathUtil() {
 		conf = Configuration.defaultConfiguration().jsonProvider(new JacksonJsonNodeJsonProvider()).addOptions(Option.ALWAYS_RETURN_LIST, Option.SUPPRESS_EXCEPTIONS);
+		pathListConf = Configuration.defaultConfiguration().addOptions(Option.AS_PATH_LIST, Option.SUPPRESS_EXCEPTIONS,Option.ALWAYS_RETURN_LIST);
 	}
 	
 	private static class Helper {
@@ -79,4 +80,8 @@
 		}
 		return result;
 	}
+	
+	public List<String> getPathList(String json, String jsonPath) {
+		return  JsonPath.using(pathListConf).parse(json).read(jsonPath);
+	}
 }
diff --git a/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java b/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java
new file mode 100644
index 0000000..0d20dd8
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java
@@ -0,0 +1,87 @@
+/*-
+ * ============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.logger;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import org.springframework.stereotype.Component;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.spi.LoggerContextListener;
+import ch.qos.logback.core.Context;
+import ch.qos.logback.core.spi.ContextAwareBase;
+import ch.qos.logback.core.spi.LifeCycle;
+
+@Component
+public class LoggerStartupListener extends ContextAwareBase implements LoggerContextListener, LifeCycle {
+
+    private boolean started = false;
+
+    @Override
+    public void start() {
+        if (started) 
+        	return;
+        InetAddress addr= null;
+		try {
+			addr = InetAddress.getLocalHost();
+		} catch (UnknownHostException e) {
+			e.printStackTrace();
+		}    
+        Context context = getContext();
+        if (addr != null) {
+        	context.putProperty("server.name", addr.getHostName());
+        }
+        started = true;
+    }
+
+    @Override
+    public void stop() {
+    }
+
+	@Override
+	public boolean isStarted() {
+		return started;
+	}
+
+	@Override
+	public boolean isResetResistant() {
+		return true;
+	}
+
+	@Override
+	public void onLevelChange(Logger arg0, Level arg1) {
+	}
+
+	@Override
+	public void onReset(LoggerContext arg0) {
+	}
+
+	@Override
+	public void onStart(LoggerContext arg0) {
+	}
+
+	@Override
+	public void onStop(LoggerContext arg0) {
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java b/common/src/main/java/org/onap/so/logger/MessageEnum.java
similarity index 92%
rename from common/src/main/java/org/openecomp/mso/logger/MessageEnum.java
rename to common/src/main/java/org/onap/so/logger/MessageEnum.java
index 419bbf8..fcaa520 100644
--- a/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java
+++ b/common/src/main/java/org/onap/so/logger/MessageEnum.java
@@ -1,233 +1,223 @@
-/*-

- * ============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.openecomp.mso.logger;

-

-

-import com.att.eelf.i18n.EELFResolvableErrorEnum;

-import com.att.eelf.i18n.EELFResourceManager;

-

-public enum MessageEnum implements EELFResolvableErrorEnum{

-	// Api Handler Messages

-	APIH_REQUEST_NULL,

-	APIH_QUERY_FOUND,

-	APIH_QUERY_NOT_FOUND,

-	APIH_QUERY_PARAM_WRONG,

-	APIH_DB_ACCESS_EXC,

-	APIH_DB_ACCESS_EXC_REASON,

-	APIH_VALIDATION_ERROR,

-	APIH_REQUEST_VALIDATION_ERROR,

-	APIH_SERVICE_VALIDATION_ERROR,

-	APIH_GENERAL_EXCEPTION_ARG,

-	APIH_GENERAL_EXCEPTION,

-	APIH_GENERAL_WARNING,

-	APIH_AUDIT_EXEC,

-	APIH_GENERAL_METRICS,

-	APIH_DUPLICATE_CHECK_EXC,

-	APIH_DUPLICATE_FOUND,

-	APIH_BAD_ORDER,

-	APIH_DB_ATTRIBUTE_NOT_FOUND,

-	APIH_BPEL_COMMUNICATE_ERROR,

-	APIH_BPEL_RESPONSE_ERROR,

-	APIH_WARP_REQUEST,

-	APIH_ERROR_FROM_BPEL_SERVER,

-	APIH_DB_INSERT_EXC,

-	APIH_DB_UPDATE_EXC,

-	APIH_NO_PROPERTIES,

-	APIH_PROPERTY_LOAD_SUC,

-	APIH_LOAD_PROPERTIES_FAIL,

-	APIH_SDNC_COMMUNICATE_ERROR,

-	APIH_SDNC_RESPONSE_ERROR,

-	APIH_CANNOT_READ_SCHEMA,

-	APIH_HEALTH_CHECK_EXCEPTION,

-	APIH_REQUEST_VALIDATION_ERROR_REASON,

-	APIH_JAXB_MARSH_ERROR,

-	APIH_JAXB_UNMARSH_ERROR,

-	APIH_VNFREQUEST_VALIDATION_ERROR,

-	APIH_DOM2STR_ERROR,

-	APIH_READ_VNFOUTPUT_CLOB_EXCEPTION,

-	APIH_DUPLICATE_CHECK_EXC_ATT,

-	APIH_GENERATED_REQUEST_ID,

-	APIH_GENERATED_SERVICE_INSTANCE_ID,

-	APIH_REPLACE_REQUEST_ID,

-	// Resource Adapter Messages

-	RA_GENERAL_EXCEPTION_ARG,

-	RA_GENERAL_EXCEPTION,

-	RA_GENERAL_WARNING,

-	RA_MISSING_PARAM,

-	RA_AUDIT_EXEC,

-	RA_GENERAL_METRICS,

-	RA_CREATE_STACK_TIMEOUT,

-	RA_DELETE_STACK_TIMEOUT,

-	RA_UPDATE_STACK_TIMEOUT,

-	RA_CONNECTION_EXCEPTION,

-	RA_PARSING_ERROR,

-	RA_PROPERTIES_NOT_FOUND,

-	RA_LOAD_PROPERTIES_SUC,

-	RA_NETWORK_ALREADY_EXIST,

-	RA_UPDATE_NETWORK_ERR,

-	RA_CREATE_STACK_ERR,

-	RA_UPDATE_STACK_ERR,

-	RA_CREATE_TENANT_ERR,

-	RA_NETWORK_NOT_FOUND,

-	RA_NETWORK_ORCHE_MODE_NOT_SUPPORT,

-	RA_CREATE_NETWORK_EXC,

-	RA_NS_EXC,

-	RA_PARAM_NOT_FOUND,

-	RA_CONFIG_EXC,

-	RA_UNKOWN_PARAM,

-	RA_VLAN_PARSE,

-	RA_DELETE_NETWORK_EXC,

-	RA_ROLLBACK_NULL,

-	RA_TENANT_NOT_FOUND,

-	RA_QUERY_NETWORK_EXC,

-	RA_CREATE_NETWORK_NOTIF_EXC,

-	RA_ASYNC_ROLLBACK,

-	RA_WSDL_NOT_FOUND,

-	RA_WSDL_URL_CONVENTION_EXC,

-	RA_INIT_NOTIF_EXC,

-	RA_SET_CALLBACK_AUTH_EXC,

-	RA_FAULT_INFO_EXC,

-	RA_MARSHING_ERROR,

-	RA_PARSING_REQUEST_ERROR,

-	RA_SEND_REQUEST_SDNC,

-	RA_RESPONSE_FROM_SDNC,

-	RA_EXCEPTION_COMMUNICATE_SDNC,

-	RA_EVALUATE_XPATH_ERROR,

-	RA_ANALYZE_ERROR_EXC,

-	RA_ERROR_GET_RESPONSE_SDNC,

-	RA_CALLBACK_BPEL,

-	RA_INIT_CALLBACK_WSDL_ERR,

-	RA_CALLBACK_BPEL_EXC,

-	RA_CALLBACK_BPEL_COMPLETE,

-	RA_SDNC_MISS_CONFIG_PARAM,

-	RA_SDNC_INVALID_CONFIG,

-	RA_PRINT_URL,

-	RA_ERROR_CREATE_SDNC_REQUEST,

-	RA_ERROR_CREATE_SDNC_RESPONSE,

-	RA_ERROR_CONVERT_XML2STR,

-	RA_RECEIVE_SDNC_NOTIF,

-	RA_INIT_SDNC_ADAPTER,

-	RA_SEND_REQUEST_APPC_ERR,

-	RA_SEND_REQUEST_SDNC_ERR,

-	RA_RECEIVE_BPEL_REQUEST,

-	RA_TENANT_ALREADY_EXIST,

-	RA_UPDATE_TENANT_ERR,

-	RA_DELETE_TEMAMT_ERR,

-	RA_ROLLBACK_TENANT_ERR,

-	RA_QUERY_VNF_ERR,

-	RA_VNF_ALREADY_EXIST,

-	RA_VNF_UNKNOWN_PARAM,

-	RA_VNF_EXTRA_PARAM,

-	RA_CREATE_VNF_ERR,

-	RA_VNF_NOT_EXIST,

-	RA_UPDATE_VNF_ERR,

-	RA_DELETE_VNF_ERR,

-	RA_ASYNC_CREATE_VNF,

-	RA_SEND_VNF_NOTIF_ERR,

-	RA_ASYNC_CREATE_VNF_COMPLETE,

-	RA_ASYNC_UPDATE_VNF,

-	RA_ASYNC_UPDATE_VNF_COMPLETE,

-	RA_ASYNC_QUERY_VNF,

-	RA_ASYNC_QUERY_VNF_COMPLETE,

-	RA_ASYNC_DELETE_VNF,

-	RA_ASYNC_DELETE_VNF_COMPLETE,

-	RA_ASYNC_ROLLBACK_VNF,

-	RA_ASYNC_ROLLBACK_VNF_COMPLETE,

-	RA_ROLLBACK_VNF_ERR,

-	RA_DB_INVALID_STATUS,

-	RA_CANT_UPDATE_REQUEST,

-	RA_DB_REQUEST_NOT_EXIST,

-	RA_CONFIG_NOT_FOUND,

-	RA_CONFIG_LOAD,

-	RA_RECEIVE_WORKFLOW_MESSAGE,

-	// BPEL engine Messages

-	BPMN_GENERAL_INFO,

-	BPMN_GENERAL_EXCEPTION_ARG,

-	BPMN_GENERAL_EXCEPTION,

-	BPMN_GENERAL_WARNING,

-	BPMN_AUDIT_EXEC,

-	BPMN_GENERAL_METRICS,

-	BPMN_URN_MAPPING_FAIL,

-	BPMN_VARIABLE_NULL,

-	BPMN_CALLBACK_EXCEPTION,

-	// ASDC Messages

-	ASDC_GENERAL_EXCEPTION_ARG,

-	ASDC_GENERAL_EXCEPTION,

-	ASDC_GENERAL_WARNING,

-	ASDC_GENERAL_INFO,

-	ASDC_AUDIT_EXEC,

-	ASDC_GENERAL_METRICS,

-	ASDC_CREATE_SERVICE,

-	ASDC_ARTIFACT_ALREADY_DEPLOYED,

-	ASDC_CREATE_ARTIFACT,

-	ASDC_ARTIFACT_INSTALL_EXC,

-	ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL,

-	ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL,

-	ASDC_ARTIFACT_CHECK_EXC,

-	ASDC_INIT_ASDC_CLIENT_EXC,

-	ASDC_INIT_ASDC_CLIENT_SUC,

-	ASDC_LOAD_ASDC_CLIENT_EXC,

-	ASDC_SINGLETON_CHECKT_EXC,

-	ASDC_SHUTDOWN_ASDC_CLIENT_EXC,

-	ASDC_CHECK_HEAT_TEMPLATE,

-	ASDC_START_INSTALL_ARTIFACT,

-	ASDC_ARTIFACT_TYPE_NOT_SUPPORT,

-	ASDC_ARTIFACT_ALREADY_EXIST,

-	ASDC_ARTIFACT_DOWNLOAD_SUC,

-	ASDC_ARTIFACT_DOWNLOAD_FAIL,

-	ASDC_START_DEPLOY_ARTIFACT,

-	ASDC_SEND_NOTIF_ASDC,

-	ASDC_SEND_NOTIF_ASDC_EXEC,

-	ASDC_RECEIVE_CALLBACK_NOTIF,

-	ASDC_RECEIVE_SERVICE_NOTIF,

-	ASDC_ARTIFACT_NULL,

-	ASDC_SERVICE_NOT_SUPPORT,

-	ASDC_ARTIFACT_DEPLOY_SUC,

-	ASDC_PROPERTIES_NOT_FOUND,

-	ASDC_PROPERTIES_LOAD_SUCCESS,

-	// Default Messages, in case Log catalog is not defined

-	GENERAL_EXCEPTION_ARG,

-	GENERAL_EXCEPTION,

-	GENERAL_WARNING,

-	AUDIT_EXEC,

-	GENERAL_METRICS,

-	LOGGER_SETUP,

-	LOGGER_NOT_FOUND,

-	LOGGER_UPDATE_SUC,

-	LOGGER_UPDATE_DEBUG,

-	LOGGER_UPDATE_DEBUG_SUC,

-	LOAD_PROPERTIES_SUC,

-	NO_PROPERTIES,

-	MADATORY_PARAM_MISSING,

-	LOAD_PROPERTIES_FAIL,

-	INIT_LOGGER,

-	INIT_LOGGER_FAIL,

-	JAXB_EXCEPTION,

-    IDENTITY_SERVICE_NOT_FOUND;

-

-	static {

-		EELFResourceManager.loadMessageBundle("GenericMessages");

-		EELFResourceManager.loadMessageBundle("ApiHandler");

-		EELFResourceManager.loadMessageBundle("BPMN");

-		EELFResourceManager.loadMessageBundle("ResourceAdapter");

-		EELFResourceManager.loadMessageBundle("ASDC");

-	}

-}

+/*-
+ * ============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.logger;
+
+
+
+public enum MessageEnum{
+	// Api Handler Messages
+	APIH_REQUEST_NULL,
+	APIH_QUERY_FOUND,
+	APIH_QUERY_NOT_FOUND,
+	APIH_QUERY_PARAM_WRONG,
+	APIH_DB_ACCESS_EXC,
+	APIH_DB_ACCESS_EXC_REASON,
+	APIH_VALIDATION_ERROR,
+	APIH_REQUEST_VALIDATION_ERROR,
+	APIH_SERVICE_VALIDATION_ERROR,
+	APIH_GENERAL_EXCEPTION_ARG,
+	APIH_GENERAL_EXCEPTION,
+	APIH_GENERAL_WARNING,
+	APIH_AUDIT_EXEC,
+	APIH_GENERAL_METRICS,
+	APIH_DUPLICATE_CHECK_EXC,
+	APIH_DUPLICATE_FOUND,
+	APIH_BAD_ORDER,
+	APIH_DB_ATTRIBUTE_NOT_FOUND,
+	APIH_BPEL_COMMUNICATE_ERROR,
+	APIH_BPEL_RESPONSE_ERROR,
+	APIH_WARP_REQUEST,
+	APIH_ERROR_FROM_BPEL_SERVER,
+	APIH_DB_INSERT_EXC,
+	APIH_DB_UPDATE_EXC,
+	APIH_NO_PROPERTIES,
+	APIH_PROPERTY_LOAD_SUC,
+	APIH_LOAD_PROPERTIES_FAIL,
+	APIH_SDNC_COMMUNICATE_ERROR,
+	APIH_SDNC_RESPONSE_ERROR,
+	APIH_CANNOT_READ_SCHEMA,
+	APIH_HEALTH_CHECK_EXCEPTION,
+	APIH_REQUEST_VALIDATION_ERROR_REASON,
+	APIH_JAXB_MARSH_ERROR,
+	APIH_JAXB_UNMARSH_ERROR,
+	APIH_VNFREQUEST_VALIDATION_ERROR,
+	APIH_DOM2STR_ERROR,
+	APIH_READ_VNFOUTPUT_CLOB_EXCEPTION,
+	APIH_DUPLICATE_CHECK_EXC_ATT,
+	APIH_GENERATED_REQUEST_ID,
+	APIH_GENERATED_SERVICE_INSTANCE_ID,
+	APIH_REPLACE_REQUEST_ID,
+	// Resource Adapter Messages
+	RA_GENERAL_EXCEPTION_ARG,
+	RA_GENERAL_EXCEPTION,
+	RA_GENERAL_WARNING,
+	RA_MISSING_PARAM,
+	RA_AUDIT_EXEC,
+	RA_GENERAL_METRICS,
+	RA_CREATE_STACK_TIMEOUT,
+	RA_DELETE_STACK_TIMEOUT,
+	RA_UPDATE_STACK_TIMEOUT,
+	RA_CONNECTION_EXCEPTION,
+	RA_PARSING_ERROR,
+	RA_PROPERTIES_NOT_FOUND,
+	RA_LOAD_PROPERTIES_SUC,
+	RA_NETWORK_ALREADY_EXIST,
+	RA_UPDATE_NETWORK_ERR,
+	RA_CREATE_STACK_ERR,
+	RA_UPDATE_STACK_ERR,
+	RA_CREATE_TENANT_ERR,
+	RA_NETWORK_NOT_FOUND,
+	RA_NETWORK_ORCHE_MODE_NOT_SUPPORT,
+	RA_CREATE_NETWORK_EXC,
+	RA_NS_EXC,
+	RA_PARAM_NOT_FOUND,
+	RA_CONFIG_EXC,
+	RA_UNKOWN_PARAM,
+	RA_VLAN_PARSE,
+	RA_DELETE_NETWORK_EXC,
+	RA_ROLLBACK_NULL,
+	RA_TENANT_NOT_FOUND,
+	RA_QUERY_NETWORK_EXC,
+	RA_CREATE_NETWORK_NOTIF_EXC,
+	RA_ASYNC_ROLLBACK,
+	RA_WSDL_NOT_FOUND,
+	RA_WSDL_URL_CONVENTION_EXC,
+	RA_INIT_NOTIF_EXC,
+	RA_SET_CALLBACK_AUTH_EXC,
+	RA_FAULT_INFO_EXC,
+	RA_MARSHING_ERROR,
+	RA_PARSING_REQUEST_ERROR,
+	RA_SEND_REQUEST_SDNC,
+	RA_RESPONSE_FROM_SDNC,
+	RA_EXCEPTION_COMMUNICATE_SDNC,
+	RA_EVALUATE_XPATH_ERROR,
+	RA_ANALYZE_ERROR_EXC,
+	RA_ERROR_GET_RESPONSE_SDNC,
+	RA_CALLBACK_BPEL,
+	RA_INIT_CALLBACK_WSDL_ERR,
+	RA_CALLBACK_BPEL_EXC,
+	RA_CALLBACK_BPEL_COMPLETE,
+	RA_SDNC_MISS_CONFIG_PARAM,
+	RA_SDNC_INVALID_CONFIG,
+	RA_PRINT_URL,
+	RA_ERROR_CREATE_SDNC_REQUEST,
+	RA_ERROR_CREATE_SDNC_RESPONSE,
+	RA_ERROR_CONVERT_XML2STR,
+	RA_RECEIVE_SDNC_NOTIF,
+	RA_INIT_SDNC_ADAPTER,
+	RA_SEND_REQUEST_APPC_ERR,
+	RA_SEND_REQUEST_SDNC_ERR,
+	RA_RECEIVE_BPEL_REQUEST,
+	RA_TENANT_ALREADY_EXIST,
+	RA_UPDATE_TENANT_ERR,
+	RA_DELETE_TEMAMT_ERR,
+	RA_ROLLBACK_TENANT_ERR,
+	RA_QUERY_VNF_ERR,
+	RA_VNF_ALREADY_EXIST,
+	RA_VNF_UNKNOWN_PARAM,
+	RA_VNF_EXTRA_PARAM,
+	RA_CREATE_VNF_ERR,
+	RA_VNF_NOT_EXIST,
+	RA_UPDATE_VNF_ERR,
+	RA_DELETE_VNF_ERR,
+	RA_ASYNC_CREATE_VNF,
+	RA_SEND_VNF_NOTIF_ERR,
+	RA_ASYNC_CREATE_VNF_COMPLETE,
+	RA_ASYNC_UPDATE_VNF,
+	RA_ASYNC_UPDATE_VNF_COMPLETE,
+	RA_ASYNC_QUERY_VNF,
+	RA_ASYNC_QUERY_VNF_COMPLETE,
+	RA_ASYNC_DELETE_VNF,
+	RA_ASYNC_DELETE_VNF_COMPLETE,
+	RA_ASYNC_ROLLBACK_VNF,
+	RA_ASYNC_ROLLBACK_VNF_COMPLETE,
+	RA_ROLLBACK_VNF_ERR,
+	RA_DB_INVALID_STATUS,
+	RA_CANT_UPDATE_REQUEST,
+	RA_DB_REQUEST_NOT_EXIST,
+	RA_CONFIG_NOT_FOUND,
+	RA_CONFIG_LOAD,
+	RA_RECEIVE_WORKFLOW_MESSAGE,
+	// BPEL engine Messages
+	BPMN_GENERAL_INFO,
+	BPMN_GENERAL_EXCEPTION_ARG,
+	BPMN_GENERAL_EXCEPTION,
+	BPMN_GENERAL_WARNING,
+	BPMN_AUDIT_EXEC,
+	BPMN_GENERAL_METRICS,
+	BPMN_URN_MAPPING_FAIL,
+	BPMN_VARIABLE_NULL,
+	BPMN_CALLBACK_EXCEPTION,
+	// ASDC Messages
+	ASDC_GENERAL_EXCEPTION_ARG,
+	ASDC_GENERAL_EXCEPTION,
+	ASDC_GENERAL_WARNING,
+	ASDC_GENERAL_INFO,
+	ASDC_AUDIT_EXEC,
+	ASDC_GENERAL_METRICS,
+	ASDC_CREATE_SERVICE,
+	ASDC_ARTIFACT_ALREADY_DEPLOYED,
+	ASDC_CREATE_ARTIFACT,
+	ASDC_ARTIFACT_INSTALL_EXC,
+	ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL,
+	ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL,
+	ASDC_ARTIFACT_CHECK_EXC,
+	ASDC_INIT_ASDC_CLIENT_EXC,
+	ASDC_INIT_ASDC_CLIENT_SUC,
+	ASDC_LOAD_ASDC_CLIENT_EXC,
+	ASDC_SINGLETON_CHECKT_EXC,
+	ASDC_SHUTDOWN_ASDC_CLIENT_EXC,
+	ASDC_CHECK_HEAT_TEMPLATE,
+	ASDC_START_INSTALL_ARTIFACT,
+	ASDC_ARTIFACT_TYPE_NOT_SUPPORT,
+	ASDC_ARTIFACT_ALREADY_EXIST,
+	ASDC_ARTIFACT_DOWNLOAD_SUC,
+	ASDC_ARTIFACT_DOWNLOAD_FAIL,
+	ASDC_START_DEPLOY_ARTIFACT,
+	ASDC_SEND_NOTIF_ASDC,
+	ASDC_SEND_NOTIF_ASDC_EXEC,
+	ASDC_RECEIVE_CALLBACK_NOTIF,
+	ASDC_RECEIVE_SERVICE_NOTIF,
+	ASDC_ARTIFACT_NULL,
+	ASDC_SERVICE_NOT_SUPPORT,
+	ASDC_ARTIFACT_DEPLOY_SUC,
+	ASDC_PROPERTIES_NOT_FOUND,
+	ASDC_PROPERTIES_LOAD_SUCCESS,
+	// Default Messages, in case Log catalog is not defined
+	GENERAL_EXCEPTION_ARG,
+	GENERAL_EXCEPTION,
+	GENERAL_WARNING,
+	AUDIT_EXEC,
+	GENERAL_METRICS,
+	LOGGER_SETUP,
+	LOGGER_NOT_FOUND,
+	LOGGER_UPDATE_SUC,
+	LOGGER_UPDATE_DEBUG,
+	LOGGER_UPDATE_DEBUG_SUC,
+	LOAD_PROPERTIES_SUC,
+	NO_PROPERTIES,
+	MADATORY_PARAM_MISSING,
+	LOAD_PROPERTIES_FAIL,
+	INIT_LOGGER,
+	INIT_LOGGER_FAIL,
+	JAXB_EXCEPTION,
+    IDENTITY_SERVICE_NOT_FOUND;
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java b/common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java
rename to common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java
index b2b8d0a..890aac9 100644
--- a/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java
+++ b/common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java
@@ -18,10 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.logger;
+package org.onap.so.logger;
 
 
 import java.io.File;
+
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 
@@ -145,6 +146,11 @@
         alarmLogger.setAdditive (false);
     }
 
+    public void resetAppender() {
+    	synchronized (MsoAlarmLogger.class) {
+    		fileAppender = null;
+    	}
+    }
 
     private static RollingFileAppender<ILoggingEvent> getAppender (String msoAlarmFile) {
         // Create a Logger for alarms. Just use a default Pattern that outputs
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java b/common/src/main/java/org/onap/so/logger/MsoLogger.java
similarity index 69%
rename from common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
rename to common/src/main/java/org/onap/so/logger/MsoLogger.java
index 9f91880..10f572e 100644
--- a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
+++ b/common/src/main/java/org/onap/so/logger/MsoLogger.java
@@ -19,82 +19,91 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.logger;
+package org.onap.so.logger;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.lang.invoke.MethodHandles;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.slf4j.MDC;
-
-import org.openecomp.mso.entity.MsoRequest;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.att.eelf.i18n.EELFResolvableErrorEnum;
-
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.onap.so.entity.MsoRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+
 /**
- * Simple wrapper around the EELF Logger class for MSO usage. This class
- * supports all of the normal logging functions (debug, info, etc.), prepending
+ * This class supports all of the normal logging functions (debug, info, etc.), prepending
  * a string of format "[<requestId>|<serviceId]" to each message.
  *
- * MSO code should initialize with these IDs when available, so that individual
+ * SO code should initialize with these IDs when available, so that individual
  * requests and/or services can be tracked throughout the various MSO component
  * logs (API Handler, BPEL, and Adapters).
  *
  *
  */
+
 public class MsoLogger {
     // MDC parameters
-    public static final String  REQUEST_ID                  = "RequestId";
-    public static final String  SERVICE_INSTANCE_ID         = "ServiceInstanceId";
-    public static final String  SERVICE_NAME                = "ServiceName";
-    private static final String SERVICE_NAME_IS_METHOD_NAME = "ServiceNameIsMethodName";
-    private static final String INSTANCE_UUID               = "InstanceUUID";
-    private static final String SERVER_IP                   = "ServerIPAddress";
-    private static final String FQDN                        = "ServerFQDN";
-    public static final String  REMOTE_HOST                 = "RemoteHost";
-    public static final String  ALERT_SEVERITY              = "AlertSeverity";
-    public static final String  TIMER                       = "Timer";
-    private static final String USER                        = "User";
-    private static final String DUMMY_VALUE                 = "trace-#";
-    public static final String  UNKNOWN                     = "UNKNOWN";
+    public static final String REQUEST_ID                  = "RequestId";
+    public static final String SERVICE_INSTANCE_ID         = "ServiceInstanceId";
+    public static final String SERVICE_NAME                = "ServiceName";
+    public static final String SERVICE_NAME_IS_METHOD_NAME = "ServiceNameIsMethodName";
+    public static final String INSTANCE_UUID               = "InstanceUUID";
+    public static final String SERVER_IP                   = "ServerIPAddress";
+   
+    public static final String FQDN                        = "ServerFQDN";
+    public static final String REMOTE_HOST                 = "RemoteHost";
+    public static final String ALERT_SEVERITY              = "AlertSeverity";
+    public static final String TIMER                       = "Timer";
+    public static final String USER                        = "User";
+    public static final String DUMMY_VALUE                 = "trace-#";
+    public static final String UNKNOWN                     = "UNKNOWN";
+    public static final String CAT_LOG_LEVEL 			   = "CategoryLogLevel";
+    public static final String AUDI_CAT_LOG_LEVEL 		   = "AuditCategoryLogLevel";
+    
     //For getting an identity of calling application
-    public static final String HEADER_FROM_APP_ID           = "X-FromAppId";
-    public static final String FROM_APP_ID                  = "FromAppId";
+    public static final String HEADER_FROM_APP_ID          = "X-FromAppId";
+    public static final String FROM_APP_ID                 = "FromAppId";
+    public static final String HEADER_REQUEST_ID           = "X-RequestId";
+    public static final String TRANSACTION_ID			   = "X-TransactionID";
+    public static final String ECOMP_REQUEST_ID			   = "X-ECOMP-RequestID";
+    public static final String CLIENT_ID 				   = "X-ClientID";
+    
     // Audit/Metric log specific
-    private static final String BEGINTIME                   = "BeginTimestamp";
-    private static final String ENDTIME                     = "EndTimestamp";
-    public static final String  PARTNERNAME                 = "PartnerName";
-    private static final String STATUSCODE                  = "StatusCode";
-    private static final String RESPONSECODE                = "ResponseCode";
-    private static final String RESPONSEDESC                = "ResponseDesc";
+    public static final String BEGINTIME                   = "BeginTimestamp";
+    public static final String STARTTIME                   = "StartTimeMilis";
+    public static final String ENDTIME                     = "EndTimestamp";
+    public static final String PARTNERNAME                 = "PartnerName";
+    public static final String STATUSCODE                  = "StatusCode";
+    public static final String RESPONSECODE                = "ResponseCode";
+    public static final String RESPONSEDESC                = "ResponseDesc";
+    
+    
     // Metric log specific
-    private static final String TARGETENTITY                = "TargetEntity";
-    private static final String TARGETSERVICENAME           = "TargetServiceName";
-    private static final String TARGETVIRTUALENTITY         = "TargetVirtualEntity";
+    public static final String METRIC_BEGIN_TIME           = "MetricBeginTime";
+    public static final String METRIC_START_TIME           = "MetricStartTime";
+    public static final String METRIC_END_TIME                = "MetricEndTime";
+    public static final String METRIC_TIMER                = "MetricEndTime";
+    public static final String TARGETENTITY                = "TargetEntity";
+    public static final String TARGETSERVICENAME           = "TargetServiceName";
+    public static final String TARGETVIRTUALENTITY         = "TargetVirtualEntity";
 
-    private static final String FATAL_LEVEL                 = "FATAL";
-    private static final String ERROR_LEVEL                 = "ERROR";
-    private static final String WARN_LEVEL                  = "WARN";
-    private static final String INFO_LEVEL                  = "INFO";
-    private static final String DEBUG_LEVEL                 = "DEBUG";
+    public static final String FATAL_LEVEL                 = "FATAL";
+    public static final String ERROR_LEVEL                 = "ERROR";
+    public static final String WARN_LEVEL                  = "WARN";
+    public static final String INFO_LEVEL                  = "INFO";
+    public static final String DEBUG_LEVEL                 = "DEBUG";
 
-    private static final String ERRORCODE                   = "ErrorCode";
-    private static final String ERRORDESC                   = "ErrorDesc";
+    public static final String ERRORCODE                   = "ErrorCode";
+    public static final String ERRORDESC                   = "ErrorDesc";
+    
+    public static final String COMPLETE                    = "COMPLETE";    
 
     public enum Catalog {
         APIH, BPEL, RA, ASDC, GENERAL
@@ -103,6 +112,20 @@
     public enum StatusCode {
         COMPLETE, ERROR
     }
+    
+	public enum TargetEntity {
+		CAMUNDA("Camunda");
+
+		private String name;
+
+		TargetEntity(String name) {
+			this.name = name;
+		}
+
+		public String getUrl() {
+			return name;
+		}
+	}
 
     public enum ResponseCode {
         Suc(0), PermissionError(100), DataError(300), DataNotFound(301), BadRequest(302), SchemaError(
@@ -115,7 +138,7 @@
             return this.value;
         }
 
-        ResponseCode(int value) {
+        private ResponseCode(int value) {
             this.value = value;
         }
     }
@@ -130,30 +153,37 @@
             return this.value;
         }
 
-        ErrorCode(int value) {
+        private ErrorCode(int value) {
             this.value = value;
         }
     }
 
-    private EELFLogger          logger, auditLogger, metricsLogger;
-    private static final String CONFIG_FILE = System.getProperty("jboss.home.dir") + "/mso-config/uuid/uuid_"
-            + System.getProperty("jboss.server.name");
+    private Logger logger;
+    private Logger metricsLogger;
+    private Logger auditLogger;
     private static String       instanceUUID, serverIP, serverName;
     private MessageEnum         exceptionArg, defaultException, defaultWarning, defaultAudit, defaultMetrics;
 
     // For internal logging of the initialization of MSO logs
-    private static final Logger LOGGER      = Logger.getLogger(MsoLogger.class.getName());
+    private static final Logger initLOGGER      = LoggerFactory.getLogger(MsoLogger.class.getName());
 
+    private MsoLogger() {
+        this(MsoLogger.Catalog.GENERAL);
+    }
+    
+    private MsoLogger(MsoLogger.Catalog cat) {
+        this(cat, MethodHandles.lookup().lookupClass());
+    }
+    
+    private MsoLogger(MsoLogger.Catalog cat, Class<?> clazz) {
+        this.logger = LoggerFactory.getLogger(clazz);
+        this.auditLogger = LoggerFactory.getLogger("AUDIT");
+        this.metricsLogger = LoggerFactory.getLogger("METRIC");
+        MsoLogger.initialization();       
+        setDefaultLogCatalog(cat);
+    }
 
-    // Since four adaptors are using the instance of  MsoLogger which will be referenced everywhere
-    // hence limiting the number of MsoLogger instances to five.
-    private static final MsoLogger generalMsoLogger = new MsoLogger(Catalog.GENERAL);
-    private static final MsoLogger apihLogger = new MsoLogger(Catalog.APIH);
-    private static final MsoLogger asdcLogger = new MsoLogger(Catalog.ASDC);
-    private static final MsoLogger raLogger = new MsoLogger(Catalog.RA);
-    private static final MsoLogger bpelLogger = new MsoLogger(Catalog.BPEL);
-
-    static {
+    private static synchronized void initialization() {
         if (instanceUUID == null || ("").equals(instanceUUID)) {
             instanceUUID = getInstanceUUID();
         }
@@ -164,48 +194,20 @@
                 serverIP = server.getHostAddress();
                 serverName = server.getHostName();
             } catch (UnknownHostException e) {
-                LOGGER.log(Level.SEVERE, "Could not get local hostname", e);
+                initLOGGER.error("Could not get local hostname", e);
                 serverIP = "";
                 serverName = "";
             }
         }
     }
 
-    // Singleton instances of the EELFLogger of all types are referenced by MsoLogger
-    private MsoLogger(Catalog cat) {
-        this.logger = EELFManager.getInstance().getErrorLogger();
-        this.auditLogger = EELFManager.getInstance().getAuditLogger();
-        this.metricsLogger = EELFManager.getInstance().getMetricsLogger();
-        this.setDefaultLogCatalog(cat);
+
+    
+    public static MsoLogger getMsoLogger(MsoLogger.Catalog cat, Class<?> clazz) {
+        return new MsoLogger(cat,clazz);
     }
-
-
-
-    /**
-     * Get the MsoLogger based on the catalog
-     * This method is fixed now to resolve the total number of objects that are getting created
-     * everytime this function gets called. Its supposed to have fixed number of instance per java process.
-     *
-     * @param cat
-     *            Catalog of the logger
-     * @return the MsoLogger
-     */
-    public static synchronized MsoLogger getMsoLogger(MsoLogger.Catalog cat) {
-        switch (cat) {
-            case GENERAL:
-                return generalMsoLogger;
-            case APIH:
-                return apihLogger;
-            case RA:
-                return raLogger;
-            case BPEL:
-                return bpelLogger;
-            case ASDC:
-                return asdcLogger;
-            default:
-                return generalMsoLogger;
-        }
-    }
+    
+    
 
     /**
      * Record the Metrics event with no argument
@@ -225,6 +227,13 @@
      * @param targetVEntity
      *            Target VNF or VM acted opon by the component, if available
      */
+    public void recordMetricEvent() {
+        metricsLogger.info("");
+        MDC.remove(TIMER);
+        MDC.remove(TARGETENTITY);
+        MDC.remove(TARGETSERVICENAME);
+    }
+
     public void recordMetricEvent(Long startTime, StatusCode statusCode, ResponseCode responseCode, String responseDesc,
             String targetEntity, String targetServiceName, String targetVEntity) {
         prepareMetricMsg(startTime, statusCode, responseCode.getValue(), responseDesc, targetEntity, targetServiceName,
@@ -235,6 +244,7 @@
         MDC.remove(TARGETSERVICENAME);
     }
 
+
     /**
      * Record the Audit event
      *
@@ -247,8 +257,13 @@
      * @param responseDesc
      *            Human redable description of the application response code
      */
+    public void recordAuditEvent(){    	
+         auditLogger.info("");
+    }
+    
     public void recordAuditEvent(Long startTime, StatusCode statusCode, ResponseCode responseCode,
             String responseDesc) {
+    	MDC.put(MsoLogger.PARTNERNAME, "UNKNOWN");
         prepareAuditMsg(startTime, statusCode, responseCode.getValue(), responseDesc);
         auditLogger.info("");
         MDC.remove(TIMER);
@@ -278,7 +293,23 @@
         prepareMsg(DEBUG_LEVEL);
         logger.debug(msg, t);
     }
-
+    
+    public void info(String msg) {
+        prepareMsg(DEBUG_LEVEL);
+        logger.info(msg);
+    }
+    
+    
+    /**
+     * Log error message with the details of the exception that caused the error.
+     * @param msg
+     * @param throwable
+     */
+    public void error(String msg) {
+        prepareMsg(ERROR_LEVEL);
+        logger.error(msg);
+    }
+    
     /**
      * Log error message with the details of the exception that caused the error.
      * @param msg
@@ -296,7 +327,7 @@
      * @param msg
      *            The log message to put
      */
-    public void info(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName) {
+    public void info(String msg, String targetEntity, String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
         logger.info(msg);
@@ -312,10 +343,10 @@
      * @param arg0
      *            The argument used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName) {
+    public void info(MessageEnum msg, String arg0, String targetEntity, String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
-        logger.info(msg, normalize(arg0));
+        logger.info(msg.toString(), normalize(arg0));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -328,7 +359,7 @@
      * @param arg0,arg1
      *            The arguments used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity,
+    public void info(String msg, String arg0, String arg1, String targetEntity,
             String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
@@ -345,11 +376,11 @@
      * @param arg0,arg1,arg2
      *            The arguments used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity,
+    public void info(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity,
             String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
-        logger.info(msg, normalize(arg0), normalize(arg1), normalize(arg2));
+        logger.info(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -362,7 +393,7 @@
      * @param arg0,arg1,arg2,arg3
      *            The arguments used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3,
+    public void info(String msg, String arg0, String arg1, String arg2, String arg3,
             String targetEntity, String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
@@ -379,7 +410,7 @@
      * @param arg0,arg1,arg2,arg3,arg4
      *            The arguments used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void info(String msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String targetEntity, String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
@@ -396,7 +427,7 @@
      * @param arg0,arg1,arg2,arg3,arg4,arg5
      *            The arguments used in the log message
      */
-    public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void info(String msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String arg5, String targetEntity, String targetServiceName) {
         prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, "");
 
@@ -407,17 +438,28 @@
     }
 
     // Warning methods
+    
+    
     /**
      * Record the Warning event
      *
      * @param msg
      *            The log message to put
      */
-    public void warn(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
+    public void warnSimple( String targetServiceName, String errorDesc) {     
+        logger.warn("Service Name: {} Error: {}" , targetServiceName, errorDesc);            
+    }
+    /**
+     * Record the Warning event
+     *
+     * @param msg
+     *            The log message to put
+     */
+    public void warn(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
             String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
 
-        logger.warn(msg);
+        logger.warn(msg.toString());
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -430,12 +472,10 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
+    public void warn(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
             String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.warn(msg);
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.warn("Warning: "+msg, t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -448,10 +488,10 @@
      * @param arg
      *            The argument used in the log message
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg, String targetEntity, String targetServiceName,
+    public void warn(MessageEnum msg, String arg, String targetEntity, String targetServiceName,
             ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.warn(msg, arg);
+        logger.warn(msg.toString(), arg);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -466,11 +506,10 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg, String targetEntity, String targetServiceName,
+    public void warn(MessageEnum msg, String arg, String targetEntity, String targetServiceName,
             ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.warn(msg, arg);
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
+        logger.warn(msg.toString(), arg);
         logger.debug("Exception raised", t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
@@ -484,10 +523,10 @@
      * @param arg0,arg1
      *            The arguments used in the log message
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity,
+    public void warn(MessageEnum msg, String arg0, String arg1, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.warn(msg, normalize(arg0), normalize(arg1));
+        logger.warn(msg.toString(), normalize(arg0), normalize(arg1));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -502,12 +541,11 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity,
+    public void warn(String msg, String arg0, String arg1, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1));
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.warn(msg, t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -520,7 +558,7 @@
      * @param arg0,arg1,arg2
      *            The arguments used in the log message
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity,
+    public void warn(String msg, String arg0, String arg1, String arg2, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2));
@@ -538,12 +576,11 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity,
+    public void warn(String msg, String arg0, String arg1, String arg2, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2));
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.warn(msg, t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -556,7 +593,7 @@
      * @param arg0,arg1,arg2,arg3
      *            The arguments used in the log message
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3,
+    public void warn(String msg, String arg0, String arg1, String arg2, String arg3,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
@@ -574,12 +611,11 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3,
+    public void warn(String msg, String arg0, String arg1, String arg2, String arg3,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.warn(msg, t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -592,7 +628,7 @@
      * @param arg0,arg1,arg2,arg3,arg4
      *            The arguments used in the log message
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
@@ -610,30 +646,58 @@
      * @param t
      *            The exception info
      */
-    public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
         logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
-        logger.warn("Exception raised: " + getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.warn(msg, t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
+    
+    
 
     // Error methods
     /**
      * Record the Error event
      *
-     * @param msg
+     * @param generalException
      *            The log message to put
      */
-    public void error(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
+    public void error(MessageEnum generalException, String targetEntity, String targetServiceName, ErrorCode errorCode,
             String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg);
+        logger.error(generalException.toString() + ": " +errorDesc);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
+    
+    
+    /**
+     * Record the Error event
+     *
+     * @param msg
+     *            The log message to put
+     * @param t
+     *            The exception info
+     */
+    public void trace(String traceMessage) {     
+        logger.trace(traceMessage);      
+    }
+    
+    
+    /**
+     * Record the Error event
+     *
+     * @param msg
+     *            The log message to put
+     * @param t
+     *            The exception info
+     */
+    public void error( Throwable t) {     
+        logger.error(t.getMessage(), t);
+    }
+    
 
     /**
      * Record the Error event
@@ -643,16 +707,14 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
+    public void error(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode,
             String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg);
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.error(msg.toString(), t);        
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
-
+    
     /**
      * Record the Error event with 1 argument
      *
@@ -661,10 +723,10 @@
      * @param arg0
      *            The arguments used in the log message
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName,
+    public void error(MessageEnum msg, String arg0, String targetEntity, String targetServiceName,
             ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0));
+        logger.error(msg.toString(), normalize(arg0));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -679,12 +741,10 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName,
+    public void error(MessageEnum msg, String arg0, String targetEntity, String targetServiceName,
             ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0));
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.error(msg.toString(), normalize(arg0), t);       
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -697,10 +757,10 @@
      * @param arg0,arg1
      *            The arguments used in the log message
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity,
+    public void error(MessageEnum msg, String arg0, String arg1, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -715,11 +775,10 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity,
+    public void error(MessageEnum msg, String arg0, String arg1, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1));
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), t);
         logger.debug("Exception raised", t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
@@ -733,10 +792,10 @@
      * @param arg0,arg1,arg2
      *            The arguments used in the log message
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -751,12 +810,10 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity,
             String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2));
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
-        logger.debug("Exception raised", t);
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), t);        
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -769,10 +826,10 @@
      * @param arg0,arg1,arg2,arg3
      *            The arguments used in the log message
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -787,11 +844,11 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), t);
+      
         logger.debug("Exception raised", t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
@@ -805,10 +862,10 @@
      * @param arg0,arg1,arg2,arg3,arg4
      *            The arguments used in the log message
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
@@ -823,15 +880,29 @@
      * @param t
      *            The exception info
      */
-    public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
+    public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4,
             String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
         prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
-        logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
-        logger.error(exceptionArg, getNormalizedStackTrace(t));
+        logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4), t);      
         logger.debug("Exception raised", t);
         MDC.remove(TARGETENTITY);
         MDC.remove(TARGETSERVICENAME);
     }
+    
+	public void error(String errorMessage, String errorSource, String targetEntity, String targetServiceName,
+			ErrorCode errorCode, String errorText) {
+		 prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorText);
+	        logger.error(errorMessage);     	       
+	        MDC.remove(TARGETENTITY);
+	        MDC.remove(TARGETSERVICENAME);
+		
+	}
+    
+    public void logStackTrace(Exception ex){
+    	StringWriter errors = new StringWriter();
+    	ex.printStackTrace(new PrintWriter(errors));
+    	logger.error(errors.toString());
+    }
 
     public boolean isDebugEnabled() {
         return logger.isDebugEnabled();
@@ -851,23 +922,24 @@
             MDC.put(REQUEST_ID, DUMMY_VALUE);
         }
 
-        if (svcId == null || svcId.isEmpty()) {
-            MDC.put(SERVICE_INSTANCE_ID, DUMMY_VALUE);
-        }
-
         if (timer != null) {
             MDC.put(TIMER, timer);
-        } else {
-            MDC.remove(TIMER);
-        }
+        } 
 
-        MDC.put(SERVICE_NAME, getFinalServiceName(serviceNamep));
-        MDC.put(ALERT_SEVERITY, getSeverityLevel(loggingLevel));
-        MDC.put(INSTANCE_UUID, instanceUUID);
-        MDC.put(SERVER_IP, serverIP);
-        MDC.put(FQDN, serverName);
+        writeIfNotNullorEmpty(SERVICE_NAME,getFinalServiceName(serviceNamep));
+        writeIfNotNullorEmpty(ALERT_SEVERITY,getSeverityLevel(loggingLevel));
+        writeIfNotNullorEmpty(INSTANCE_UUID,instanceUUID);
+        writeIfNotNullorEmpty(SERVER_IP,serverIP);
+        writeIfNotNullorEmpty(FQDN,serverName);
+ 
     }
 
+	private void writeIfNotNullorEmpty(String Key, String value) {
+		if (MDC.get(Key) == null|| MDC.get(Key).isEmpty()) {
+        	MDC.put(Key, value);
+        }
+	}
+
     private void prepareAuditMsg(long startTime, StatusCode statusCode, int responseCode, String responseDesc) {
         long endTime = System.currentTimeMillis();
         prepareMsg(INFO_LEVEL, null, String.valueOf(endTime - startTime));
@@ -890,7 +962,9 @@
     private void prepareErrorMsg(String loggingLevel, String targetEntity, String targetServiceName,
             ErrorCode errorCode, String errorDesc) {
         MDC.put(ALERT_SEVERITY, getSeverityLevel(loggingLevel));
-        MDC.put(ERRORCODE, String.valueOf(errorCode));
+        if(errorCode != null) {
+            MDC.put(ERRORCODE, Integer.toString(errorCode.getValue()));
+        }
         MDC.put(ERRORDESC, errorDesc);
         MDC.put(TARGETENTITY, targetEntity);
         MDC.put(TARGETSERVICENAME, targetServiceName);
@@ -968,8 +1042,7 @@
             limit = classArr.length;
         }
         for (int i = 1; i < limit; i++) {
-            String className = classArr[i].getClassName();
-            if (!className.equals(this.getClass().getName())) {
+            if (!classArr[i].getClassName().equals(this.getClass().getName())) {
                 return classArr[i].getMethodName();
             }
         }
@@ -981,55 +1054,8 @@
     // it is generated during mso instance initialization period
     // The same mso instnace will use the same instanceUUID value, even after
     // restart
-    private static String getInstanceUUID() {
-        // Avoid creation during build and tests
-        if (System.getProperty("jboss.server.name") == null) {
-            return "Test UUID as JBoss not found";
-        }
-        File configFile = new File(CONFIG_FILE);
-        String uuid = "";
-        BufferedReader in = null;
-        try{
-            // Verify whether instanceUUID file exist,
-            // If yes, read the content; if not, generate the instanceUUID and
-            // write to the file
-            if (configFile.exists()) {
-                // read the content of the file
-                in = new BufferedReader(new FileReader(CONFIG_FILE));
-                if ((uuid = in.readLine()) == null) {
-                    // the file is empty, regenerate the file
-                    uuid = UUID.randomUUID().toString();
-                    try(BufferedWriter bw = new BufferedWriter(new FileWriter(configFile.getAbsoluteFile()))) {
-                    bw.write(uuid);
-                    } catch (IOException e) {
-                      LOGGER.log(Level.SEVERE, "Error trying to write UUID file", e);
-					}
-                }
-                in.close();
-            } else {
-                // file doesn't exist yet -> create the file and generate the
-                // instanceUUID
-                uuid = UUID.randomUUID().toString();
-                configFile.getParentFile().mkdirs();
-                configFile.createNewFile();
-                try(BufferedWriter bw1 = new BufferedWriter(new FileWriter(configFile.getAbsoluteFile()))){
-                bw1.write(uuid);
-                } catch (IOException e) {
-                  LOGGER.log(Level.SEVERE, "Error trying to write UUID file", e);
-				}
-            }
-        } catch (IOException e) {
-          LOGGER.log(Level.SEVERE, "Error trying to read UUID file", e);
-        } finally {
-            try {
-                if (in != null) {
-                    in.close();
-                }
-            } catch (IOException ex) {
-                LOGGER.log(Level.SEVERE, "Error trying to close UUID file", ex);
-            }
-        }
-        return uuid;
+    private static String getInstanceUUID() {       
+       return System.getProperty("mso-instance-id");
     }
 
     /**
@@ -1121,13 +1147,6 @@
         return result;
     }
 
-    private String getNormalizedStackTrace(Throwable t) {
-        StringWriter sw = new StringWriter();
-        PrintWriter pw = new PrintWriter(sw);
-        t.printStackTrace(pw);
-        return sw.toString().replace('|', '!').replace("\n", " - ");
-    }
-
     private void setDefaultLogCatalog(MsoLogger.Catalog cat) {
         if ("APIH".equals(cat.toString())) {
             exceptionArg = MessageEnum.APIH_GENERAL_EXCEPTION_ARG;
@@ -1161,4 +1180,14 @@
             defaultMetrics = MessageEnum.GENERAL_METRICS;
         }
     }
+
+	public void warnSimple(String message, Exception e) {
+		logger.warn(message,e);       
+		
+	}
+
+
+
+
+
 }
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java
new file mode 100644
index 0000000..2888cbf
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java
@@ -0,0 +1,135 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.logging.jaxrs.filter.jersey;
+
+
+import org.apache.commons.io.IOUtils;
+import org.onap.so.logger.MsoLogger;
+import org.onap.so.utils.TargetEntity;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientRequestFilter;
+import javax.ws.rs.client.ClientResponseContext;
+import javax.ws.rs.client.ClientResponseFilter;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+
+import java.io.*;
+
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+import java.util.UUID;
+
+@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
+@Component
+public class JaxRsClientLogging implements ClientRequestFilter,ClientResponseFilter {
+	
+	private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA,JaxRsClientLogging.class);
+
+	private TargetEntity targetEntity;
+
+	public void setTargetService(TargetEntity targetEntity){
+	    this.targetEntity = targetEntity;
+    }
+
+	@Override
+	public void filter(ClientRequestContext clientRequest) {
+        try{
+            MultivaluedMap<String, Object> headers = clientRequest.getHeaders();
+            
+            
+            Instant instant = Instant.now();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
+                .withLocale( Locale.US )
+                .withZone( ZoneId.systemDefault() );
+
+            String requestId = MDC.get(MsoLogger.REQUEST_ID);
+            if(requestId == null || requestId.isEmpty()){
+                requestId = UUID.randomUUID().toString();
+                logger.warnSimple(clientRequest.getUri().getPath(),"Could not Find Request ID Generating New One");
+            }
+
+			MDC.put(MsoLogger.METRIC_BEGIN_TIME, formatter.format(instant));
+			MDC.put(MsoLogger.METRIC_START_TIME, String.valueOf(System.currentTimeMillis()));
+            MDC.put(MsoLogger.REQUEST_ID,requestId);	
+            MDC.put(MsoLogger.TARGETSERVICENAME, clientRequest.getUri().toString());
+        } catch (Exception e) {
+			logger.warnSimple("Error in incoming JAX-RS Inteceptor", e);
+		}
+	}	
+
+
+	@Override
+	public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
+
+        try {
+			Instant instant = Instant.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
+			        .withLocale( Locale.US )
+			        .withZone( ZoneId.systemDefault() );
+			String startTime= MDC.get(MsoLogger.METRIC_START_TIME);
+
+			long elapsedTime = System.currentTimeMillis()-Long.parseLong(startTime);
+			String statusCode;
+			if(Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)){		
+			    statusCode=MsoLogger.COMPLETE;
+			}else{							
+				statusCode=MsoLogger.StatusCode.ERROR.toString();				
+			}
+			MultivaluedMap<String, String> headers = responseContext.getHeaders();
+
+			String partnerName =  headers.getFirst(MsoLogger.HEADER_FROM_APP_ID );
+			if(partnerName == null || partnerName.isEmpty())
+				partnerName="UNKNOWN";
+			MDC.put(MsoLogger.RESPONSEDESC,getStringFromInputStream(responseContext));
+			MDC.put(MsoLogger.STATUSCODE, statusCode);
+			MDC.put(MsoLogger.RESPONSECODE,String.valueOf(responseContext.getStatus()));
+			MDC.put(MsoLogger.METRIC_TIMER, String.valueOf(elapsedTime));
+			MDC.put(MsoLogger.METRIC_END_TIME,formatter.format(instant));
+			MDC.put(MsoLogger.PARTNERNAME,partnerName);	
+            MDC.put(MsoLogger.TARGETENTITY, targetEntity.toString());
+			logger.recordMetricEvent();			
+		} catch ( Exception e) {
+			logger.warnSimple("Error in outgoing JAX-RS Inteceptor", e);
+		}
+	}
+
+    private static String getStringFromInputStream(ClientResponseContext clientResponseContext) {
+
+	    InputStream is = clientResponseContext.getEntityStream();
+	    ByteArrayOutputStream boas = new ByteArrayOutputStream();
+
+        try {
+            IOUtils.copy(is,boas);
+            InputStream copiedStream = new ByteArrayInputStream(boas.toByteArray());
+            clientResponseContext.setEntityStream(copiedStream);
+            return boas.toString();
+
+        } catch (IOException e) {
+            logger.warnSimple("Failed to read response body", e);
+        }
+        return "Unable to read input stream";
+    }
+}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java
new file mode 100644
index 0000000..9fab4ff
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java
@@ -0,0 +1,180 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.logging.jaxrs.filter.jersey;
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+import java.util.UUID;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+import javax.ws.rs.ext.Providers;
+
+import org.onap.so.logger.MsoLogger;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Priority(1)
+@Provider
+@Component
+public class JaxRsFilterLogging implements ContainerRequestFilter,ContainerResponseFilter {
+	
+	private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA,JaxRsFilterLogging.class);
+	
+	@Context
+	private HttpServletRequest httpServletRequest;
+	
+	@Context 
+	private Providers providers;
+	
+	@Autowired
+	ObjectMapper objectMapper;
+	
+	@Override
+	public void filter(ContainerRequestContext containerRequest) {		
+
+		try {
+			String clientID = null;
+			//check headers for request id
+			MultivaluedMap<String, String> headers = containerRequest.getHeaders();
+			String requestId = (String) headers.getFirst(MsoLogger.HEADER_REQUEST_ID );
+			if(requestId == null || requestId.isEmpty()){
+				if(headers.containsKey(MsoLogger.TRANSACTION_ID)){
+					requestId = headers.getFirst(MsoLogger.TRANSACTION_ID);
+				}else if(headers.containsKey(MsoLogger.ECOMP_REQUEST_ID)){
+					requestId = headers.getFirst(MsoLogger.ECOMP_REQUEST_ID);
+				}else{
+					requestId = UUID.randomUUID().toString();
+					logger.warnSimple(containerRequest.getUriInfo().getPath(),"Generating RequestId for Request");
+				}
+			}
+			containerRequest.setProperty("requestId", requestId);
+			if(headers.containsKey(MsoLogger.CLIENT_ID)){
+				clientID = headers.getFirst(MsoLogger.CLIENT_ID);
+			}else{
+				clientID = "UNKNOWN";
+				headers.add(MsoLogger.CLIENT_ID, clientID);
+			}
+			String remoteIpAddress = "";
+			if (httpServletRequest != null) {			
+				remoteIpAddress = httpServletRequest.getRemoteAddr();
+			} 
+			Instant instant = Instant.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
+			        .withLocale( Locale.US )
+			        .withZone( ZoneId.systemDefault() );
+
+			String partnerName =  headers.getFirst(MsoLogger.HEADER_FROM_APP_ID );
+			if(partnerName == null || partnerName.isEmpty())
+				partnerName="UNKNOWN";	
+			
+			MDC.put(MsoLogger.FROM_APP_ID,partnerName);	 
+			MDC.put(MsoLogger.SERVICE_NAME, containerRequest.getUriInfo().getPath());
+			MDC.put(MsoLogger.BEGINTIME, formatter.format(instant));
+			MDC.put(MsoLogger.REQUEST_ID,requestId);
+			MDC.put(MsoLogger.PARTNERNAME,partnerName);			
+			MDC.put(MsoLogger.REMOTE_HOST, String.valueOf(remoteIpAddress));
+			MDC.put(MsoLogger.STARTTIME, String.valueOf(System.currentTimeMillis()));
+			MDC.put(MsoLogger.CLIENT_ID, clientID);
+		} catch (Exception e) {
+			logger.warnSimple("Error in incoming JAX-RS Inteceptor", e);
+		}
+	}	
+
+
+	@Override
+	public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+			throws IOException {
+		try {
+			Instant instant = Instant.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
+			        .withLocale( Locale.US )
+			        .withZone( ZoneId.systemDefault() );
+			String startTime= MDC.get(MsoLogger.STARTTIME);
+			long elapsedTime;
+			try {
+				elapsedTime = System.currentTimeMillis() - Long.parseLong(startTime);
+			}catch(NumberFormatException e){
+				elapsedTime = 0;
+			}
+			String statusCode;
+			if(Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)){		
+			    statusCode=MsoLogger.COMPLETE;
+			}else{							
+				statusCode= MsoLogger.StatusCode.ERROR.toString();				
+			}			
+		
+			MDC.put(MsoLogger.RESPONSEDESC,payloadMessage(responseContext));
+			MDC.put(MsoLogger.STATUSCODE, statusCode);
+			MDC.put(MsoLogger.RESPONSECODE,String.valueOf(responseContext.getStatus()));			
+			MDC.put(MsoLogger.TIMER, String.valueOf(elapsedTime));
+			MDC.put(MsoLogger.ENDTIME,formatter.format(instant));			
+			logger.recordAuditEvent();
+		} catch ( Exception e) {
+			logger.warnSimple("Error in outgoing JAX-RS Inteceptor", e);
+		} 
+	} 
+	
+	 private String payloadMessage(ContainerResponseContext responseContext) throws IOException {
+	        String message = new String();
+	        if (responseContext.hasEntity()) {
+	            ByteArrayOutputStream baos = new ByteArrayOutputStream();           
+	            Class<?> entityClass = responseContext.getEntityClass();
+	            Type entityType = responseContext.getEntityType();
+	            Annotation[] entityAnnotations = responseContext.getEntityAnnotations();
+	            MediaType mediaType = responseContext.getMediaType();
+	            @SuppressWarnings("unchecked")
+	            MessageBodyWriter<Object> bodyWriter = (MessageBodyWriter<Object>) providers.getMessageBodyWriter(entityClass, 
+	                    entityType, 
+	                    entityAnnotations, 
+	                    mediaType);
+	            bodyWriter.writeTo(responseContext.getEntity(), 
+	                    entityClass, 
+	                    entityType, 
+	                    entityAnnotations, 
+	                    mediaType, 
+	                    responseContext.getHeaders(), 
+	                    baos); 
+	            message = message.concat(new String(baos.toByteArray()));
+	        }
+	        return message;
+	 }
+}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java
new file mode 100644
index 0000000..0477c9a
--- /dev/null
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.logging.jaxrs.filter.jersey;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpRequest;
+import org.springframework.http.client.ClientHttpRequestExecution;
+import org.springframework.http.client.ClientHttpRequestInterceptor;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.util.StreamUtils;
+ 
+import java.io.IOException;
+import java.nio.charset.Charset;
+ 
+public class SpringClientFilter implements ClientHttpRequestInterceptor {
+ 
+    private final Logger log = LoggerFactory.getLogger(this.getClass());
+ 
+    @Override
+    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
+        logRequest(request, body);
+        ClientHttpResponse response = execution.execute(request, body);
+        logResponse(response);
+        return response;
+    }
+ 
+    private void logRequest(HttpRequest request, byte[] body) throws IOException {
+        if (log.isDebugEnabled()) {
+            log.debug("===========================request begin================================================");
+            log.debug("URI         : {}", request.getURI());
+            log.debug("Method      : {}", request.getMethod());
+            log.debug("Headers     : {}", request.getHeaders());
+            log.debug("Request body: {}", new String(body, "UTF-8"));
+            log.debug("==========================request end================================================");
+        }
+    }
+ 
+    private void logResponse(ClientHttpResponse response) throws IOException {
+        if (log.isDebugEnabled()) {
+            log.debug("============================response begin==========================================");
+            log.debug("Status code  : {}", response.getStatusCode());
+            log.debug("Status text  : {}", response.getStatusText());
+            log.debug("Headers      : {}", response.getHeaders());
+            log.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
+            log.debug("=======================response end=================================================");
+        }
+    }
+}
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java b/common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java
similarity index 87%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java
rename to common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java
index fa24662..2c6590a 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
@@ -33,7 +33,7 @@
 
 public class CustomSetterMustExistRule implements Rule {
 
-	private Matcher<PojoField>[] excludeMatchers = new Matcher[]{not(anything())};
+	private Matcher[] excludeMatchers = new Matcher[]{not(anything())};
 	private Matcher<PojoField>[] includeMatchers = new Matcher[]{anything()};
 	public CustomSetterMustExistRule() {
 	}
@@ -45,7 +45,7 @@
 			}
 		}
 	}
-	public CustomSetterMustExistRule exclude(Matcher<PojoField>... excludeMatchers) {
+	public CustomSetterMustExistRule exclude(Matcher... excludeMatchers) {
 		this.excludeMatchers = excludeMatchers;
 		return this;
 	}
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java b/common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java
rename to common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java
index 9540409..5433681 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
@@ -29,6 +29,7 @@
 import java.util.List;
 import java.util.Set;
 
+import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
 import org.hamcrest.Matcher;
@@ -118,6 +119,7 @@
 		
 		fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(BusinessKey.class));
 		fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(Id.class));
+		fields.removeAll(pojoClass.getPojoFieldsAnnotatedWith(GeneratedValue.class));
 		
 		return fields;
 		
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java
similarity index 68%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java
rename to common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java
index fdfb969..6a06834 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anything;
 
@@ -29,18 +29,20 @@
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeDiagnosingMatcher;
 
-public class HasAnnotationMatcher<T extends Annotation> extends TypeSafeDiagnosingMatcher<AnnotatedElement> {
-	private final Class<T> annotationType;
+import com.openpojo.reflection.PojoField;
+
+public class HasAnnotationMatcher<T extends PojoField> extends TypeSafeDiagnosingMatcher<T> {
+	private final Class<? extends Annotation> annotationType;
 	private final Matcher<? super T> annotationMatcher;
 
-	public HasAnnotationMatcher(final Class<T> annotationType, final Matcher<? super T> annotationMatcher) {
+	public HasAnnotationMatcher(final Class<? extends Annotation> annotationType, final Matcher<? super T> annotationMatcher) {
 		this.annotationType = annotationType;
 		this.annotationMatcher = annotationMatcher;
 	}
 
 	@Override
-	protected boolean matchesSafely(final AnnotatedElement item, final Description mismatchDescription) {
-		final T annotation = item.getAnnotation(this.annotationType);
+	protected boolean matchesSafely(final PojoField item, final Description mismatchDescription) {
+		final Annotation annotation = item.getAnnotation(this.annotationType);
 		if (annotation == null) {
 			mismatchDescription.appendText("does not have annotation ").appendText(this.annotationType.getName());
 			return false;
@@ -59,11 +61,11 @@
 		// Intentionally left blank.
 	}
 
-	public static Matcher<AnnotatedElement> hasAnnotation(final Class<? extends Annotation> annotationType) {
+	public static <T extends PojoField> Matcher<T> hasAnnotation(final Class<? extends Annotation> annotationType) {
 		return hasAnnotation(annotationType, anything(""));
 	}
 
-	public static <T extends Annotation> Matcher<AnnotatedElement> hasAnnotation(final Class<T> annotationType, final Matcher<? super T> annotationMatcher) {
+	public static <T extends PojoField> Matcher<T> hasAnnotation(final Class<? extends Annotation> annotationType, final Matcher<? super T> annotationMatcher) {
 		return new HasAnnotationMatcher<T>(annotationType, annotationMatcher);
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java
rename to common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java
index d1b2fb1..551305c 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
@@ -28,12 +28,12 @@
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeDiagnosingMatcher;
-import org.openecomp.mso.logger.MsoLogger;
+import org.onap.so.logger.MsoLogger;
 
 import com.openpojo.reflection.PojoField;
 
 public class HasAnnotationPropertyWithValueMatcher<T extends PojoField> extends TypeSafeDiagnosingMatcher<T> {
-	private MsoLogger logger=MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+	private MsoLogger logger=MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, HasAnnotationPropertyWithValueMatcher.class);
 	private final String attribute;
 	private final Matcher<?> annotationMatcher;
 	private final Class<? extends Annotation> annotationClass;
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java b/common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java
rename to common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java
index 4ef5607..0c7d6ad 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java b/common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java
rename to common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java
index f866650..8a4333e 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java b/common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java
rename to common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java
index bd582d4..ff1a139 100644
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java
+++ b/common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.openpojo.rules;
+package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java b/common/src/main/java/org/onap/so/properties/MsoDatabaseException.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java
rename to common/src/main/java/org/onap/so/properties/MsoDatabaseException.java
index 9583e51..84216af 100644
--- a/common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java
+++ b/common/src/main/java/org/onap/so/properties/MsoDatabaseException.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.properties;
+package org.onap.so.properties;
 
 
 /**
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java b/common/src/main/java/org/onap/so/security/MSOSpringFirewall.java
similarity index 70%
copy from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
copy to common/src/main/java/org/onap/so/security/MSOSpringFirewall.java
index ada1939..82a30f0 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/security/MSOSpringFirewall.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,18 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.security;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.security.web.firewall.StrictHttpFirewall;
 
-public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvider {
+public class MSOSpringFirewall extends StrictHttpFirewall {
 
-	public AAIResourcesObjectMapperProvider() {
+	
+	public MSOSpringFirewall() {
 		super();
-	}
-
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
+		this.setAllowUrlEncodedSlash(true);
+		this.setAllowSemicolon(true);
+		this.setAllowUrlEncodedPercent(true);
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/main/java/org/onap/so/security/UserCredentials.java
similarity index 61%
copy from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
copy to common/src/main/java/org/onap/so/security/UserCredentials.java
index 799e2f8..f411789 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
+++ b/common/src/main/java/org/onap/so/security/UserCredentials.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,27 +18,36 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.security;
 
-import java.util.List;
-import org.apache.commons.lang3.builder.ToStringBuilder;
+public class UserCredentials {
 
+	private String username;
+	private String password;
+	private String role;
 
-public class RequestList {
-
-    protected Request request;
-
-	public Request getRequest() {
-		return request;
+	public String getUsername() {
+		return username;
 	}
 
-	public void setRequest(Request request) {
-		this.request = request;
+	public void setUsername(String username) {
+		this.username = username;
 	}
 
-	@Override
-	public String toString() {
-		return new ToStringBuilder(this).append("request", request).toString();
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public String getRole() {
+		return role;
+	}
+
+	public void setRole(String role) {
+		this.role = role;
 	}
 
 }
diff --git a/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java b/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java
new file mode 100644
index 0000000..90d484e
--- /dev/null
+++ b/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java
@@ -0,0 +1,56 @@
+/*-
+ * ============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.security;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import java.util.List;
+
+@ConfigurationProperties(prefix = "spring.security")
+public class UserDetailsServiceImpl implements UserDetailsService {
+
+	private List<UserCredentials> usercredentials;
+
+	public List<UserCredentials> getUsercredentials() {
+		return usercredentials;
+	}
+
+	public void setUsercredentials(List<UserCredentials> usercredentials) {
+		this.usercredentials = usercredentials;
+	}
+
+	@Override
+	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+
+		for (int i = 0; usercredentials != null && i < usercredentials.size(); i++) {
+			if (usercredentials.get(i).getUsername().equals(username)) {
+				return User.withUsername(username).password(usercredentials.get(i).getPassword())
+						.roles(usercredentials.get(i).getRole()).build();
+			}
+		}
+
+		throw new UsernameNotFoundException("User not found, username: " + username);
+	}
+
+}
diff --git a/common/src/main/java/org/onap/so/security/WebSecurityConfig.java b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java
new file mode 100644
index 0000000..11eec46
--- /dev/null
+++ b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java
@@ -0,0 +1,76 @@
+/*-
+ * ============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.security;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+
+
+@ConfigurationProperties(prefix = "spring.security")
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+	
+	private List<UserCredentials> credentials;
+	private List<String> roles = new ArrayList<>();
+
+	public List<String> getRoles() {
+		return roles;
+	}
+
+	@PostConstruct
+	private void addRoles() {
+		for(int i=0; i <credentials.size(); i++) {
+			roles.add(credentials.get(i).getRole());
+		}
+	}
+	
+	public List<UserCredentials> getUsercredentials() {
+		return credentials;
+	}
+
+	public void setUsercredentials(List<UserCredentials> usercredentials) {
+		this.credentials = usercredentials;
+	}
+
+	@Bean
+	public UserDetailsService userDetailsService() {
+		return new UserDetailsServiceImpl();
+	}
+
+	@Bean
+	public BCryptPasswordEncoder passwordEncoder() {
+		return new BCryptPasswordEncoder();
+	}
+
+	@Override
+	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+		auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder());
+	}
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java b/common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java
index cb5a101..a58949e 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java
index 84518cf..e5d586f 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java
@@ -26,15 +26,17 @@
 //
 
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.util.ArrayList;
 import java.util.List;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
@@ -153,15 +155,14 @@
         }
         return this.variables;
     }
-    
-    public void setVariables(List<String> variables) {
-    	this.variables = variables;
-    }
+
+	public void setVariables(List<String> variables) {
+		this.variables = variables;
+	}
 
 	@Override
 	public String toString() {
 		return new ToStringBuilder(this).append("messageId", messageId).append("text", text)
 				.append("variables", variables).toString();
 	}
-
 }
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java
index adb1d38..7be03e6 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * OPENECOMP - MSO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.util.List;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java
index 8d57d57..788cdd9 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java
index b49825e..ad796b2 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 public enum InstanceDirection {
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java
index 17f0955..69d21c4 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java
@@ -1,15 +1,15 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * OPENECOMP - MSO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java b/common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java
index ce46291..27bc0e8 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java
similarity index 92%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java
index f91dd10..6976fb6 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -26,7 +26,7 @@
 //
 
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
@@ -46,6 +46,8 @@
     protected String modelInvariantId;
 	@JsonProperty("modelType")
 	protected ModelType modelType;
+	@JsonProperty("modelId")
+	protected String modelId;
 	//v2
 	@JsonProperty("modelNameVersionId")
     protected String modelNameVersionId;
@@ -60,6 +62,7 @@
     protected String modelVersionId;
 	@JsonProperty("modelCustomizationId")
     protected String modelCustomizationId;
+	
     //Decomposition fields
 	@JsonProperty("modelUuid")
     protected String modelUuid;
@@ -72,6 +75,7 @@
 		return modelCustomizationName;
 	}
 	public void setModelCustomizationName(String modelCustomizationName) {
+		modelInstanceName = modelCustomizationName;
 		this.modelCustomizationName = modelCustomizationName;
 	}
 	public String getModelNameVersionId() {
@@ -102,6 +106,7 @@
 		return modelInvariantId;
 	}
 	public void setModelInvariantId(String modelInvariantId) {
+		this.modelInvariantUuid = modelInvariantId;
 		this.modelInvariantId = modelInvariantId;
 	}
 	public String getModelCustomizationUuid() {
@@ -114,19 +119,29 @@
 		return modelVersionId;
 	}
 	public void setModelVersionId(String modelVersionId) {
+		this.modelUuid=modelVersionId;
 		this.modelVersionId = modelVersionId;
 	}
 	public String getModelCustomizationId() {
 		return modelCustomizationId;
 	}
 	public void setModelCustomizationId(String modelCustomizationId) {
+		this.modelCustomizationUuid = modelCustomizationId;
 		this.modelCustomizationId = modelCustomizationId;
 	}
     public String getModelUuid() {
 		return modelUuid;
 	}
+    public String getModelId() {
+    	return modelId;
+    }
 	public void setModelUuid(String modelUuid) {
+		this.modelId = modelUuid;
 		this.modelUuid = modelUuid;
+		
+	}
+	public void setModelId(String modelId) {
+		this.modelId = modelId;
 	}
 	public String getModelInvariantUuid() {
 		return modelInvariantUuid;
@@ -151,4 +166,4 @@
 	}
 
 
-}
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java
similarity index 94%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java
index 1080c57..2ddad20 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 /*
  * Enum for Model Type values returned by API Handler to BPMN
@@ -31,5 +31,6 @@
 	network,
 	configuration,
 	connectionPoint,
-	pnf
+	pnf,
+	networkCollection
 }
diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java
new file mode 100644
index 0000000..386078a
--- /dev/null
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.serviceinstancebeans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonRootName;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+@JsonRootName(value = "networks")
+@JsonInclude(Include.NON_DEFAULT)
+public class Networks implements Serializable{
+
+	private static final long serialVersionUID = 8081495240474276501L;
+	@JsonProperty("modelInfo")
+	protected ModelInfo modelInfo;
+	@JsonProperty("cloudConfiguration")
+	protected CloudConfiguration cloudConfiguration;
+	@JsonProperty("instanceName")
+	protected String instanceName;
+	@JsonProperty("productFamilyId")
+	protected String productFamilyId;
+	@JsonProperty("instanceParams")
+	private List<Map<String, String>> instanceParams = new ArrayList<>();
+
+	public ModelInfo getModelInfo() {
+		return modelInfo;
+	}
+
+	public void setModelInfo(ModelInfo modelInfo) {
+		this.modelInfo = modelInfo;
+	}
+
+	public CloudConfiguration getCloudConfiguration() {
+		return cloudConfiguration;
+	}
+
+	public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
+		this.cloudConfiguration = cloudConfiguration;
+	}
+
+	public String getInstanceName() {
+		return instanceName;
+	}
+
+	public void setInstanceName(String instanceName) {
+		this.instanceName = instanceName;
+	}
+	
+	public String getProductFamilyId() {
+		return productFamilyId;
+	}
+
+	public void setProductFamilyId(String productFamilyId) {
+		this.productFamilyId = productFamilyId;
+	}
+
+	public List<Map<String, String>> getInstanceParams() {
+		return instanceParams;
+	}
+
+	public void setInstanceParams(List<Map<String, String>> instanceParams) {
+		this.instanceParams = instanceParams;
+	}
+
+	@Override
+	public String toString() {
+		return "Networks [modelInfo=" + modelInfo + 
+				", cloudConfiguration=" + cloudConfiguration + 
+				", instanceName=" + instanceName + ", productFamilyId=" + productFamilyId + 
+				", instanceParams=" + instanceParams + "]";
+	}
+	
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java b/common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java
index 985de7d..f552554 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java
index a7a34cc..9610622 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java b/common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java
index dfa23f6..263089e 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java
@@ -26,7 +26,7 @@
 //
 
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -41,7 +41,7 @@
  * <pre>
  * &lt;complexType name="policyException">
  *   &lt;complexContent>
- *     &lt;extension base="{http://org.openecomp/mso/request/types/v1}exceptionType">
+ *     &lt;extension base="{http://org.onap/so/request/types/v1}exceptionType">
  *     &lt;/extension>
  *   &lt;/complexContent>
  * &lt;/complexType>
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Project.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/Project.java
index b7e8016..47bd2bb 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Project.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java
index 60e7d9b..cfdba18 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * OPENECOMP - MSO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java
index b11accc..9d10865 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Request.java
similarity index 95%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/Request.java
index 0671089..bda3096 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Request.java
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-//@JsonRootName(value = "request")
+
 @JsonInclude(Include.NON_DEFAULT)
 public class Request {
 
@@ -32,7 +32,6 @@
     protected String startTime;
     protected String requestScope;
     protected String requestType;
-    //protected String requestDetails;
     protected RequestDetails requestDetails;
     protected InstanceReferences instanceReferences;
     protected RequestStatus requestStatus;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java
similarity index 91%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java
index 2bae526..d713342 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,10 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
@@ -53,7 +56,11 @@
     protected Platform platform;
 	@JsonProperty("lineOfBusiness")
     protected LineOfBusiness lineOfBusiness;
-    /**
+	@JsonProperty("instanceName")
+	private List<Map<String, String>> instanceName = new ArrayList<>();
+    
+
+	/**
      * Gets the value of the serviceInfo property.
      *
      * @return
@@ -268,6 +275,21 @@
 	public void setLineOfBusiness(LineOfBusiness value){
 		this.lineOfBusiness = value;
 	}
+	/**
+     * Gets the value of the instanceName property.
+     */
+	public List<Map<String, String>> getInstanceName() {
+		return instanceName;
+	}
+	/**
+     * Sets the value of the instanceName property.
+     *
+     * @param value
+     *
+     */
+	public void setInstanceName(List<Map<String, String>> instanceName) {
+		this.instanceName = instanceName;
+	}
 	@Override
 	public String toString() {
 		return "RequestDetails [modelInfo=" + modelInfo + ", requestInfo="
@@ -275,6 +297,7 @@
 				+ Arrays.toString(relatedInstanceList) + ", subscriberInfo="
 				+ subscriberInfo + ", cloudConfiguration=" + cloudConfiguration
 				+ ", requestParameters=" + requestParameters + ", platform=" + platform 
-				+ ", lineOfBusiness=" + ", project=" + project + ", owningEntity=" + owningEntity + "]";
+				+ ", lineOfBusiness=" + ", project=" + project + ", owningEntity=" + owningEntity 
+				+ ", instanceName" + instanceName + "]";
 	}
 }
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java
index efd5358..76137d0 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java
@@ -26,7 +26,7 @@
 //
 
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -34,6 +34,8 @@
 import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import com.fasterxml.jackson.annotation.JsonRootName;
+
 
 /**
  * <p>Java class for anonymous complex type.
@@ -46,8 +48,8 @@
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
  *         &lt;choice>
- *           &lt;element name="policyException" type="{http://org.openecomp/mso/request/types/v1}policyException"/>
- *           &lt;element name="serviceException" type="{http://org.openecomp/mso/request/types/v1}serviceException"/>
+ *           &lt;element name="policyException" type="{http://org.onap/so/request/types/v1}policyException"/>
+ *           &lt;element name="serviceException" type="{http://org.onap/so/request/types/v1}serviceException"/>
  *         &lt;/choice>
  *       &lt;/sequence>
  *     &lt;/restriction>
@@ -63,6 +65,7 @@
     "serviceException"
 })
 @XmlRootElement(name = "requestError")
+@JsonRootName(value = "requestError")
 public class RequestError {
 
     protected PolicyException policyException;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java
index d1e489a..158ca7a 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java
index 799e2f8..a4c0ddf 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.util.List;
 import org.apache.commons.lang3.builder.ToStringBuilder;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java
similarity index 76%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java
index 06d5328..1697a4e 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java
@@ -1,15 +1,15 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * OPENECOMP - MSO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import javax.persistence.Transient;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -41,18 +43,23 @@
 	private List<Map<String, Object>> userParams = new ArrayList<>();
 	@JsonProperty("aLaCarte")
 	private Boolean aLaCarte;
+	
+	// DONOT USE. It is intended to handle older VID requests(prior to 1802)
+	@Deprecated
+	@JsonProperty("alaCarte")
+	private Boolean alaCarte;
 	@JsonProperty("autoBuildVfModules")
 	private Boolean autoBuildVfModules;
 	@JsonProperty("cascadeDelete")
 	private Boolean cascadeDelete;
+	@JsonProperty("testApi")
+	private String testApi; // usePreload would always be true for Update
 	@JsonProperty("usePreload")
 	private Boolean usePreload; // usePreload would always be true for Update
 	@JsonProperty("rebuildVolumeGroups")
 	private Boolean rebuildVolumeGroups;
 	@JsonProperty("payload")
 	private String payload;
-	@JsonProperty("controllerType")
-	private String controllerType;
 
 	public String getSubscriptionServiceType() {
 		return subscriptionServiceType;
@@ -61,11 +68,11 @@
 	public void setSubscriptionServiceType(String subscriptionServiceType) {
 		this.subscriptionServiceType = subscriptionServiceType;
 	}
-
+	@JsonProperty("aLaCarte")
 	public Boolean getALaCarte() {
 		return aLaCarte;
 	}
-
+	@JsonProperty("aLaCarte")
 	public void setaLaCarte(Boolean aLaCarte) {
 		this.aLaCarte = aLaCarte;
 	}
@@ -74,6 +81,27 @@
 		return aLaCarte;
 	}
 
+	@Deprecated
+	@Transient
+	@JsonProperty("alaCarte")
+	public Boolean getAlaCarte() {
+		return alaCarte;
+	}
+
+	@Deprecated
+	@JsonProperty("alaCarte")
+	public void setAlaCarte(Boolean alaCarte) {
+		this.alaCarte = alaCarte;
+	}
+
+	public String getTestApi() {
+		return testApi;
+	}
+
+	public void setTestApi(String testApi) {
+		this.testApi = testApi;
+	}
+	
 	public List<Map<String, Object>> getUserParams() {
 		return userParams;
 	}
@@ -92,11 +120,11 @@
 		}
 		return null;
 	}
-
+	
 	public Boolean getAutoBuildVfModules() {
 		return autoBuildVfModules;
 	}
-
+	
 	public void setAutoBuildVfModules(Boolean autoBuildVfModules) {
 		this.autoBuildVfModules = autoBuildVfModules;
 	}
@@ -117,13 +145,10 @@
 		this.usePreload = usePreload;
 	}
 	
-	public Boolean rebuildVolumeGroups() {
+	public Boolean getRebuildVolumeGroups() {
 		return rebuildVolumeGroups;
 	}
 
-	public Boolean isRebuildVolumeGroups() {
-		return rebuildVolumeGroups;
-	}
 	public void setRebuildVolumeGroups(Boolean rebuildVolumeGroups) {
 		this.rebuildVolumeGroups = rebuildVolumeGroups;
 	}
@@ -134,19 +159,13 @@
 		this.payload = value;
 	}
 	
-	public String getControllerType() {
-		return controllerType;
-	}
-
-	public void setControllerType(String controllerType) {
-		this.controllerType = controllerType;
-	}
-
 	@Override
 	public String toString() {
-		return "RequestParameters [subscriptionServiceType=" + subscriptionServiceType + ", userParams=" + userParams
-				+ ", aLaCarte=" + aLaCarte + ", autoBuildVfModules=" + autoBuildVfModules + ", cascadeDelete="
-				+ cascadeDelete + ", usePreload=" + usePreload + ", rebuildVolumeGroups=" + rebuildVolumeGroups
-				+ ", payload=" + payload + ", controllerType=" + controllerType + "]";
+		return "RequestParameters [subscriptionServiceType="
+				+ subscriptionServiceType + ", userParams=" + userParams
+				+ ", aLaCarte=" + aLaCarte + ", testApi= " + testApi + ", autoBuildVfModules="
+				+ autoBuildVfModules + ", usePreload="
+				+ usePreload + ", rebuildVolumeGroups="
+				+ rebuildVolumeGroups + ", payload=" + payload + "]";
 	}
-}
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java
similarity index 84%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java
index d4d7019..c30e39a 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java
@@ -18,10 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonRootName;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+@JsonRootName(value = "requestReferences")
+@JsonInclude(Include.NON_DEFAULT)
 public class RequestReferences {
 	
 	String requestId;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
index d6a8fc0..527aa03 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java
similarity index 61%
copy from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java
copy to common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java
index b7e8016..68fd95c 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java
@@ -3,13 +3,14 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,34 +19,42 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonRootName;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
-@JsonRootName(value = "project")
+@JsonRootName(value = "resources")
 @JsonInclude(Include.NON_DEFAULT)
-public class Project implements Serializable {
+public class Resources implements Serializable{
 	
-	private static final long serialVersionUID = -3868114191925177035L;
-	@JsonProperty("projectName")
-	private String projectName;
+	private static final long serialVersionUID = 2194797231782624520L;
+	@JsonProperty("vnfs")
+	private List<Vnfs> vnfs = new ArrayList<>();
+	@JsonProperty("networks")
+	private List<Networks> networks = new ArrayList<>();
 	
-	public String getProjectName(){
-		return projectName;
+	public List<Vnfs> getVnfs() {
+		return vnfs;
 	}
-
-	public void setProjectName(String value) {
-		this.projectName = value;
+	public void setVnfs(List<Vnfs> vnfs) {
+		this.vnfs = vnfs;
 	}
-
+	public List<Networks> getNetworks() {
+		return networks;
+	}
+	public void setNetworks(List<Networks> networks) {
+		this.networks = networks;
+	}
 	@Override
 	public String toString() {
-		return new ToStringBuilder(this).append("projectName", projectName).toString();
+		return "Resources [vnfs=" + vnfs + ", networks=" + networks + "]";
 	}
-}
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java
new file mode 100644
index 0000000..66848d3
--- /dev/null
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.serviceinstancebeans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonRootName;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+@JsonRootName(value = "service")
+@JsonInclude(Include.NON_DEFAULT)
+public class Service implements Serializable{
+	
+	private static final long serialVersionUID = 2194797231782624520L;
+	@JsonProperty("modelInfo")
+	protected ModelInfo modelInfo;
+	@JsonProperty("cloudConfiguration")
+	protected CloudConfiguration cloudConfiguration;
+	@JsonProperty("instanceName")
+	protected String instanceName;
+	@JsonProperty("instanceParams")
+	private List<Map<String, String>> instanceParams = new ArrayList<>();
+	@JsonProperty("resources")
+	protected Resources resources;
+
+	public ModelInfo getModelInfo() {
+		return modelInfo;
+	}
+
+	public void setModelInfo(ModelInfo modelInfo) {
+		this.modelInfo = modelInfo;
+	}
+
+	public CloudConfiguration getCloudConfiguration() {
+		return cloudConfiguration;
+	}
+
+	public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
+		this.cloudConfiguration = cloudConfiguration;
+	}
+
+	public String getInstanceName() {
+		return instanceName;
+	}
+
+	public void setInstanceName(String instanceName) {
+		this.instanceName = instanceName;
+	}
+
+	public List<Map<String, String>> getInstanceParams() {
+		return instanceParams;
+	}
+
+	public void setInstanceParams(List<Map<String, String>> instanceParams) {
+		this.instanceParams = instanceParams;
+	}
+
+	public Resources getResources() {
+		return resources;
+	}
+
+	public void setResources(Resources resources) {
+		this.resources = resources;
+	}
+
+	@Override
+	public String toString() {
+		return "Service [modelInfo=" + modelInfo + 
+				", cloudConfiguration=" + cloudConfiguration 
+				+ ", instanceName=" + instanceName + 
+				", instanceParams=" + instanceParams + 
+				", resources=" + resources + "]";
+	}
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java
similarity index 89%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java
index 0fe8b5f..7efb7f0 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java
@@ -26,12 +26,14 @@
 //
 
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlType;
 
+import com.fasterxml.jackson.annotation.JsonRootName;
+
 
 /**
  * <p>Java class for serviceException complex type.
@@ -41,7 +43,7 @@
  * <pre>
  * &lt;complexType name="serviceException">
  *   &lt;complexContent>
- *     &lt;extension base="{http://org.openecomp/mso/request/types/v1}exceptionType">
+ *     &lt;extension base="{http://org.onap/so/request/types/v1}exceptionType">
  *     &lt;/extension>
  *   &lt;/complexContent>
  * &lt;/complexType>
@@ -51,6 +53,7 @@
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "serviceException")
+@JsonRootName(value = "serviceException")
 public class ServiceException
     extends ExceptionType
 {
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java
index d06c532..3ccf291 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java
similarity index 96%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java
index 614a87d..db3add8 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java
similarity index 97%
rename from common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java
rename to common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java
index 47cb1f2..0378023 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import java.io.Serializable;
 
diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java b/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java
new file mode 100644
index 0000000..74f8af8
--- /dev/null
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java
@@ -0,0 +1,99 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.serviceinstancebeans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonRootName;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+@JsonRootName(value = "vfmodules")
+@JsonInclude(Include.NON_DEFAULT)
+public class VfModules implements Serializable{
+
+	private static final long serialVersionUID = 8081495240474276501L;
+	@JsonProperty("modelInfo")
+	protected ModelInfo modelInfo;
+	@JsonProperty("cloudConfiguration")
+	protected CloudConfiguration cloudConfiguration;
+	@JsonProperty("instanceName")
+	protected String instanceName;
+	@JsonProperty("volumeGroupInstanceName")
+	protected String volumeGroupInstanceName;
+	@JsonProperty("instanceParams")
+	private List<Map<String, String>> instanceParams = new ArrayList<>();
+	
+
+	public ModelInfo getModelInfo() {
+		return modelInfo;
+	}
+
+	public void setModelInfo(ModelInfo modelInfo) {
+		this.modelInfo = modelInfo;
+	}
+
+	public CloudConfiguration getCloudConfiguration() {
+		return cloudConfiguration;
+	}
+
+	public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
+		this.cloudConfiguration = cloudConfiguration;
+	}
+
+	public String getInstanceName() {
+		return instanceName;
+	}
+
+	public void setInstanceName(String instanceName) {
+		this.instanceName = instanceName;
+	}
+	
+	public String getVolumeGroupInstanceName() {
+		return volumeGroupInstanceName;
+	}
+
+	public void setVolumeGroupInstanceName(String volumeGroupInstanceName) {
+		this.volumeGroupInstanceName = volumeGroupInstanceName;
+	}
+
+	public List<Map<String, String>> getInstanceParams() {
+		return instanceParams;
+	}
+
+	public void setInstanceParams(List<Map<String, String>> instanceParams) {
+		this.instanceParams = instanceParams;
+	}
+
+	@Override
+	public String toString() {
+		return "VfModules [modelInfo=" + modelInfo + 
+				", cloudConfiguration=" + cloudConfiguration + 
+				", instanceName=" + instanceName + ", volumeGroupInstanceName=" 
+				+ volumeGroupInstanceName + ", instanceParams=" + instanceParams + "]";
+	}
+	
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java
new file mode 100644
index 0000000..b55a528
--- /dev/null
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.serviceinstancebeans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonRootName;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+@JsonRootName(value = "vnfs")
+@JsonInclude(Include.NON_DEFAULT)
+public class Vnfs implements Serializable{
+
+	private static final long serialVersionUID = 8081495240474276501L;
+	@JsonProperty("modelInfo")
+	protected ModelInfo modelInfo;
+	@JsonProperty("cloudConfiguration")
+	protected CloudConfiguration cloudConfiguration;
+	@JsonProperty("instanceName")
+	protected String instanceName;
+	@JsonProperty("platform")
+	protected Platform platform;
+	@JsonProperty("lineOfBusiness")
+	protected LineOfBusiness lineOfBusiness;
+	@JsonProperty("productFamilyId")
+	protected String productFamilyId;
+	@JsonProperty("instanceParams")
+	private List<Map<String, String>> instanceParams = new ArrayList<>();
+	@JsonProperty("vfModules")
+	private List<VfModules> vfModules = new ArrayList<>();
+	
+
+	public ModelInfo getModelInfo() {
+		return modelInfo;
+	}
+
+	public void setModelInfo(ModelInfo modelInfo) {
+		this.modelInfo = modelInfo;
+	}
+
+	public CloudConfiguration getCloudConfiguration() {
+		return cloudConfiguration;
+	}
+
+	public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
+		this.cloudConfiguration = cloudConfiguration;
+	}
+
+	public String getInstanceName() {
+		return instanceName;
+	}
+
+	public void setInstanceName(String instanceName) {
+		this.instanceName = instanceName;
+	}
+
+	public Platform getPlatform() {
+		return platform;
+	}
+
+	public void setPlatform(Platform platform) {
+		this.platform = platform;
+	}
+
+	public LineOfBusiness getLineOfBusiness() {
+		return lineOfBusiness;
+	}
+
+	public void setLineOfBusiness(LineOfBusiness lineOfBusiness) {
+		this.lineOfBusiness = lineOfBusiness;
+	}
+
+	public String getProductFamilyId() {
+		return productFamilyId;
+	}
+
+	public void setProductFamilyId(String productFamilyId) {
+		this.productFamilyId = productFamilyId;
+	}
+
+	public List<Map<String, String>> getInstanceParams() {
+		return instanceParams;
+	}
+
+	public void setInstanceParams(List<Map<String, String>> instanceParams) {
+		this.instanceParams = instanceParams;
+	}
+
+	public List<VfModules> getVfModules() {
+		return vfModules;
+	}
+
+	public void setVfModules(List<VfModules> vfModules) {
+		this.vfModules = vfModules;
+	}
+
+	@Override
+	public String toString() {
+		return "Vnfs [modelInfo=" + modelInfo + 
+				", cloudConfiguration=" + cloudConfiguration + 
+				", instanceName=" + instanceName + ", platform=" + platform + ", " + 
+				"lineOfBusiness=" + lineOfBusiness + 
+				", productFamilyId=" + productFamilyId + ", instanceParams=" + instanceParams + 
+				", vfModules=" + vfModules + "]";
+	}
+	
+}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java b/common/src/main/java/org/onap/so/test/categories/SlowTests.java
similarity index 83%
copy from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java
copy to common/src/main/java/org/onap/so/test/categories/SlowTests.java
index 3f0c4f3..58a1404 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java
+++ b/common/src/main/java/org/onap/so/test/categories/SlowTests.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,8 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.test.categories;
 
-public class AAIEntity{
-	
+public interface SlowTests {
+/* category marker */ 
 }
diff --git a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java b/common/src/main/java/org/onap/so/utils/CheckResults.java
similarity index 98%
rename from common/src/main/java/org/openecomp/mso/utils/CheckResults.java
rename to common/src/main/java/org/onap/so/utils/CheckResults.java
index ad0344d..4f6089d 100644
--- a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java
+++ b/common/src/main/java/org/onap/so/utils/CheckResults.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.utils;
+package org.onap.so.utils;
 
 
 
diff --git a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java b/common/src/main/java/org/onap/so/utils/CryptoUtils.java
similarity index 70%
rename from common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
rename to common/src/main/java/org/onap/so/utils/CryptoUtils.java
index 5d0ff5b..11d464a 100644
--- a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
+++ b/common/src/main/java/org/onap/so/utils/CryptoUtils.java
@@ -18,17 +18,19 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.utils;
+package org.onap.so.utils;
 
 
 
-import java.io.IOException;
 import java.security.GeneralSecurityException;
 import java.security.NoSuchAlgorithmException;
 
 import javax.crypto.Cipher;
 import javax.crypto.spec.SecretKeySpec;
 
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+
 
 /**
  * CryptoUtils adapted from RTTP client.
@@ -36,8 +38,10 @@
  */
 public final class CryptoUtils {
 
-    public static final String AES = "AES";
+    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, CryptoUtils.class);
 
+    public static final String AES = "AES";
+    private static final String CLOUD_KEY = "aa3871669d893c7fb8abbcda31b88b4f";
     /**
      * encrypt a value and generate a keyfile
      * if the keyfile is not found then a new one is created
@@ -65,6 +69,36 @@
         return new String (decrypted);
     }
 
+    /**
+     * decrypt a value or return defaultValue
+     * 
+     */
+    public static String decryptProperty (String prop, String defaultValue, String encryptionKey) {
+		 try {
+			 return CryptoUtils.decrypt(prop, encryptionKey);			
+		 }	
+		 catch (GeneralSecurityException e) {
+			 LOGGER.debug("Security exception", e);
+		 }
+		 return defaultValue;
+	}
+    
+    public static String encryptCloudConfigPassword(String message) {
+    	try {
+	    	return CryptoUtils.encrypt(message, CryptoUtils.CLOUD_KEY);
+	    } catch (GeneralSecurityException e) {
+	        LOGGER.error (MessageEnum.RA_GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in encryptPassword", e);
+	        return null;
+	    }
+    }
+    public static String decryptCloudConfigPassword(String message) {
+    	try {
+	    	return CryptoUtils.decrypt(message, CryptoUtils.CLOUD_KEY);
+	    } catch (GeneralSecurityException e) {
+	        LOGGER.error (MessageEnum.RA_GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in encryptPassword", e);
+	        return null;
+	    }
+    }
     private static SecretKeySpec getSecretKeySpec (String keyString) throws NoSuchAlgorithmException {
         byte[] key = hexStringToByteArray (keyString);
         SecretKeySpec sks = new SecretKeySpec (key, CryptoUtils.AES);
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java b/common/src/main/java/org/onap/so/utils/TargetEntity.java
similarity index 75%
copy from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
copy to common/src/main/java/org/onap/so/utils/TargetEntity.java
index ada1939..ad76e56 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java
+++ b/common/src/main/java/org/onap/so/utils/TargetEntity.java
@@ -18,18 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.utils;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvider {
+public enum TargetEntity {
+    OPENSTACK_ADAPTER, BPMN, GRM ,AAI, DMAAP, POLICY, CATALOG_DB, REQUEST_DB, VNF_ADAPTER, SDNC_ADAPTER, NARAD;
 
-	public AAIResourcesObjectMapperProvider() {
-		super();
-	}
-
-	@Override
-	public ObjectMapper getContext(Class<?> type) {
-		return mapper;
-	}
+    private static final String PREFIX = "MSO";
+    @Override
+    public String toString(){
+        return TargetEntity.PREFIX + "." + this.name();
+    }
 }
diff --git a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java b/common/src/main/java/org/onap/so/utils/UUIDChecker.java
similarity index 93%
rename from common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
rename to common/src/main/java/org/onap/so/utils/UUIDChecker.java
index b715717..fac73e8 100644
--- a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
+++ b/common/src/main/java/org/onap/so/utils/UUIDChecker.java
@@ -19,18 +19,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.utils;
-
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
+package org.onap.so.utils;
 
 import java.util.UUID;
 
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+
 /**
  */
 public class UUIDChecker {
 	
-	private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
+	private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL, UUIDChecker.class);
 
     private UUIDChecker() {
 
@@ -49,7 +49,7 @@
         }
     }
 
-    private static String getUUID () {
+    public static String getUUID () {
         return UUID.randomUUID().toString();
     }
 
diff --git a/common/src/main/java/org/onap/so/utils/XmlMarshaller.java b/common/src/main/java/org/onap/so/utils/XmlMarshaller.java
new file mode 100644
index 0000000..903d055
--- /dev/null
+++ b/common/src/main/java/org/onap/so/utils/XmlMarshaller.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.utils;
+
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.XMLConstants;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.sax.SAXSource;
+
+import org.onap.so.exceptions.MarshallerException;
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class XmlMarshaller {
+
+    private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, XmlMarshaller.class);
+
+    public static String marshal(Object object) throws MarshallerException {
+
+        StringWriter stringWriter = new StringWriter();
+        try {
+            JAXBContext jaxbContext = JAXBContext.newInstance(object.getClass());
+            Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+            jaxbMarshaller.marshal(object, stringWriter);
+        } catch (JAXBException e) {
+            logger.error(MessageEnum.GENERAL_EXCEPTION, "", "", "", MsoLogger.ErrorCode.SchemaError, e.getMessage(), e);
+            throw new MarshallerException(e.getMessage(), MsoLogger.ErrorCode.SchemaError.getValue(), e);
+        }
+
+        return stringWriter.toString();
+    }
+
+    public static Object unMarshal(String input, Object object) throws MarshallerException {
+
+        try {
+            SAXParserFactory spf = SAXParserFactory.newInstance();
+            spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+            spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
+            spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+            spf.setNamespaceAware(true);
+            XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+
+            JAXBContext jaxbContext = JAXBContext.newInstance(object.getClass());
+            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
+
+            InputSource inputSource = new InputSource(new StringReader(input));
+            SAXSource source = new SAXSource(xmlReader, inputSource);
+            object = jaxbUnmarshaller.unmarshal(source, object.getClass()).getValue();
+        } catch (Exception e) {
+            logger.error(MessageEnum.GENERAL_EXCEPTION, "", "", "", MsoLogger.ErrorCode.SchemaError, e.getMessage(), e);
+            throw new MarshallerException(e.getMessage(), MsoLogger.ErrorCode.SchemaError.getValue(), e);
+        }
+
+        return object;
+    }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java b/common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java
similarity index 69%
copy from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java
copy to common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java
index 5f895ef..0486341 100644
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java
+++ b/common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.web.exceptions;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -26,21 +26,21 @@
 
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
-    "requestError"
+	"message"
 })
-public class AAIError {
+public class ExceptionResponse {
+	@JsonProperty("message")
+	private String message;
 
-    @JsonProperty("requestError")
-    private RequestError requestError;
+	public ExceptionResponse(String message) {
+		this.message = message;
+	}
+	public String getMessage() {
+		return message;
+	}
 
-    @JsonProperty("requestError")
-    public RequestError getRequestError() {
-        return requestError;
-    }
-
-    @JsonProperty("requestError")
-    public void setRequestError(RequestError requestError) {
-        this.requestError = requestError;
-    }
+	public void setMessage(String message) {
+		this.message = message;
+	}
 
 }
diff --git a/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java b/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java
new file mode 100644
index 0000000..72e609a
--- /dev/null
+++ b/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java
@@ -0,0 +1,46 @@
+/*-
+ * ============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.web.exceptions;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.ext.ExceptionMapper;
+
+import org.onap.so.logger.MsoAlarmLogger;
+import org.onap.so.logger.MsoLogger;
+
+public class RuntimeExceptionMapper implements ExceptionMapper<RuntimeException> {
+
+	private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RuntimeExceptionMapper.class);
+	private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger();
+	@Override
+	public Response toResponse(RuntimeException exception) {
+		
+		if (exception instanceof NotFoundException) {
+			return Response.status(Status.NOT_FOUND).build();
+		} else {
+			alarmLogger.sendAlarm("MsoApplicationError", MsoAlarmLogger.CRITICAL, exception.getMessage());
+			logger.error(exception);
+			return Response.status(Status.INTERNAL_SERVER_ERROR).entity(new ExceptionResponse("Unexpected Internal Exception")).build();
+		}
+	}
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java b/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java
deleted file mode 100644
index 9150dca..0000000
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java
+++ /dev/null
@@ -1,69 +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.openecomp.mso.client.aai;
-
-import java.net.URI;
-import java.util.UUID;
-
-import javax.ws.rs.core.UriBuilder;
-
-import org.openecomp.mso.client.RestPropertiesLoader;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.defaultproperties.DefaultAAIPropertiesImpl;
-import org.openecomp.mso.client.policy.RestClient;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-public abstract class AAIClient {
-
-	protected final AAIVersion defaultVersion;
-	private static final String AAI_ROOT = "/aai";
-	protected final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-	private final AAIProperties properties;
-	protected final UUID requestId;
-	public AAIClient(UUID requestId) {
-		AAIProperties props = RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class);
-		if (props == null) {
-			metricsLogger.error("No RestProperty.AAIProperties implementation found on classpath");
-			props = new DefaultAAIPropertiesImpl();
-		}
-		this.properties = props;
-		this.defaultVersion = props.getDefaultVersion();
-		this.requestId = requestId;
-	}
-	protected URI constructPath(AAIUri uri) {
-		
-		return UriBuilder.fromUri(AAI_ROOT + "/" + this.getVersion().toString() + uri.build().toString()).build();
-	}
-	
-	protected RestClient createClient(AAIUri uri) {
-		return new AAIRestClient(properties, this.getRequestId(), constructPath(uri)).addRequestId(this.getRequestId());
-
-	}
-	
-	protected UUID getRequestId() {
-		return this.requestId;
-	}
-	protected AAIVersion getVersion() {
-		return defaultVersion;
-	}
-}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java b/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java
deleted file mode 100644
index e36033f..0000000
--- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java
+++ /dev/null
@@ -1,76 +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.openecomp.mso.client.aai;
-
-import java.net.URI;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.ext.ContextResolver;
-
-import org.openecomp.mso.client.policy.RestClient;
-import org.openecomp.mso.client.policy.RestClientSSL;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class AAIRestClient extends RestClientSSL {
-	
-	private final AAIProperties props;
-
-	protected AAIRestClient(AAIProperties props, UUID requestId, URI uri) {
-		super(props, requestId, Optional.of(uri));
-		this.props = props;
-		headerMap.put("X-TransactionId", requestId.toString());
-	}
-
-	@Override
-	protected void initializeHeaderMap(Map<String, String> headerMap) {
-		headerMap.put("X-FromAppId", "MSO");
-
-		String auth = props.getAuth();
-		String key = props.getKey();
-
-		if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) {
-			addBasicAuthHeader(auth, key);
-		}
-	}
-
-	@Override
-	protected Optional<ClientResponseFilter> addResponseFilter() {
-
-		return Optional.of(new AAIClientResponseExceptionMapper(this.getRequestId()));
-	}
-
-	@Override
-	public RestClient addRequestId(UUID requestId) {
-		headerMap.put("X-TransactionId", requestId.toString());
-		this.requestId = requestId;
-		return this;
-	}
-	
-	@Override
-	protected ContextResolver<ObjectMapper> getMapper() {
-		return new AAICommonObjectMapperProvider();
-	}
-
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java b/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java
deleted file mode 100644
index cdaeced..0000000
--- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java
+++ /dev/null
@@ -1,129 +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.openecomp.mso.client.aai.entities.uri;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.client.ResponseProcessingException;
-import javax.ws.rs.core.UriBuilder;
-
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.AAIQueryClient;
-import org.openecomp.mso.client.aai.Format;
-import org.openecomp.mso.client.aai.entities.CustomQuery;
-import org.openecomp.mso.client.aai.entities.Results;
-import org.openecomp.mso.client.aai.exceptions.AAIPayloadException;
-import org.openecomp.mso.client.aai.exceptions.AAIUriComputationException;
-import org.openecomp.mso.client.aai.exceptions.AAIUriNotFoundException;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class ServiceInstanceUri extends SimpleUri {
-
-	private Optional<String> cachedValue = Optional.empty();
-
-	protected ServiceInstanceUri(Object... values) {
-		super(AAIObjectType.SERVICE_INSTANCE, values);
-	}
-	protected ServiceInstanceUri(UriBuilder builder, Optional<String> cachedValue, Object... values) {
-		super(AAIObjectType.SERVICE_INSTANCE, builder, values);
-		this.cachedValue = cachedValue;
-	}
-	protected String getSerivceInstance(Object id) throws AAIUriNotFoundException, AAIPayloadException {
-		if (!this.getCachedValue().isPresent()) {
-			AAIResourceUri serviceInstanceUri = AAIUriFactory.createNodesUri(AAIObjectType.SERVICE_INSTANCE, id);
-			CustomQuery query = new CustomQuery(Collections.singletonList(serviceInstanceUri));
-			String resultJson;
-			try {
-				resultJson = this.getQueryClient().query(Format.PATHED, query);
-			} catch (ResponseProcessingException e) {
-				if (e.getCause() instanceof BadRequestException) {
-					throw new AAIUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build());
-				} else {
-					throw e;
-				}
-			}
-			try {
-				cachedValue = extractRelatedLink(resultJson);
-				if (!cachedValue.isPresent()) {
-					throw new AAIUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build());
-				}
-			} catch (IOException e) {
-				throw new AAIPayloadException("could not map payload: " + resultJson, e);
-			}
-			
-		}
-		
-		return this.getCachedValue().get();
-	}
-	
-	protected Optional<String> extractRelatedLink(String jsonString) throws IOException {
-		Optional<String> result;
-		ObjectMapper mapper = new ObjectMapper();
-		
-			Results<Map<String, String>> results = mapper.readValue(jsonString, new TypeReference<Results<Map<String, String>>>(){});
-			if (results.getResult().size() == 1) {
-				String uriString = results.getResult().get(0).get("resource-link");
-				URI uri = UriBuilder.fromUri(uriString).build();
-				String rawPath = uri.getRawPath();
-			result = Optional.of(rawPath.replaceAll("/aai/v\\d+", ""));
-			} else if (results.getResult().isEmpty()) {
-			result = Optional.empty();
-			} else {
-				throw new IllegalStateException("more than one result returned");
-			}
-	
-		return result;
-	}
-	
-	protected Optional<String> getCachedValue() {
-		return this.cachedValue;
-	}
-
-	@Override
-	public URI build() {
-		try {
-		if (this.values.length == 1) {
-			String uri = getSerivceInstance(this.values[0]);
-			Map<String, String> map = getURIKeys(uri);
-			return super.build(map.values().toArray(values));
-		}
-		} catch (AAIUriNotFoundException | AAIPayloadException e) {
-			throw new AAIUriComputationException(e);
-		}
-		return super.build();
-	}
-	
-	@Override
-	public ServiceInstanceUri clone() {
-		return new ServiceInstanceUri(this.internalURI.clone(), this.getCachedValue(), values);
-	}
-	
-	protected AAIQueryClient getQueryClient() {
-		return new AAIQueryClient();
-	}
-}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java b/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java
deleted file mode 100644
index b0b3d06..0000000
--- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java
+++ /dev/null
@@ -1,67 +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.openecomp.mso.client.aai.objects;
-
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.AAIEntityObject;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class AAIOwningEntity implements AAIEntityObject {
-	
-	@JsonProperty("owning-entity-name")
-	private String owningEntityName;
-	
-	@JsonProperty("owning-entity-id")
-	private String owningEntityId;
-	
-	public String getOwningEntityName() {
-		return owningEntityName;
-	}
-
-	public void setOwningEntityName(String owningEntityName) {
-		this.owningEntityName = owningEntityName;
-	}
-	
-	public String getOwningEntityId() {
-		return owningEntityId;
-	}
-
-	public void setOwningEntityId(String owningEntityId) {
-		this.owningEntityId = owningEntityId;
-	}
-	
-	public AAIOwningEntity withOwningEntity(String owningEntityName, String owningEntityId) {
-		this.setOwningEntityName(owningEntityName);
-		this.setOwningEntityId(owningEntityId);
-		return this;
-	}
-
-	@Override
-	public AAIResourceUri getUri() {
-		final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, this.owningEntityId);
-		return uri;
-	}
-	
-	
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java b/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java
deleted file mode 100644
index 34f715d..0000000
--- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.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.openecomp.mso.client.aai.objects;
-
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.AAIEntityObject;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class AAIProject implements AAIEntityObject {
-	
-	@JsonProperty("project-name")
-	private String projectName;
-	
-	public String getProjectName() {
-		return projectName;
-	}
-
-	public void setProjectName(String projectName) {
-		this.projectName = projectName;
-	}
-	
-	public AAIProject withProjectName(String projectName) {
-		this.setProjectName(projectName);
-		return this;
-	}
-
-	@Override
-	public AAIResourceUri getUri() {
-		final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, this.projectName);
-		return uri;
-	}
-	
-	
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java b/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java
deleted file mode 100644
index 77afe82..0000000
--- a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java
+++ /dev/null
@@ -1,243 +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.openecomp.mso.client.policy;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.security.GeneralSecurityException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.UUID;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation.Builder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.ext.ContextResolver;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
-import org.openecomp.mso.client.RestProperties;
-import org.openecomp.mso.logger.MsoLogger;
-import org.openecomp.mso.utils.CryptoUtils;
-import org.springframework.stereotype.Service;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@Service
-public abstract class RestClient {
-	protected static final String ECOMP_COMPONENT_NAME = "MSO";
-	
-	private static final int MAX_PAYLOAD_SIZE = 1024 * 1024;
-	private WebTarget webTarget;
-
-	protected final Map<String, String> headerMap;
-	protected final MsoLogger msoLogger;
-	protected URL host;
-	protected Optional<URI> path;
-	protected Logger logger;
-	protected String accept;
-	protected String contentType;
-	protected UUID requestId;
-
-	protected RestClient(RestProperties props, UUID requestId, Optional<URI> path) {
-		logger = Logger.getLogger(getClass().getName());
-		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-		this.requestId = requestId;
-		headerMap = new HashMap<>();
-		try {
-			host = props.getEndpoint();
-		} catch (MalformedURLException e) {
-			logger.error("url not valid", e);
-			throw new RuntimeException(e);
-		}
-		
-		this.path = path;
-		initializeClient(getClient());
-	}
-
-	protected RestClient(RestProperties props, UUID requestId, Optional<URI> path, String accept, String contentType) {
-		this(props, requestId, path);
-		this.accept = accept;
-		this.contentType = contentType;
-	}
-
-	protected RestClient(URL host, UUID requestId, String contentType) {
-		headerMap = new HashMap<>();
-		logger = Logger.getLogger(getClass().getName());
-		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-		this.path = Optional.empty();
-		this.host = host;
-		this.contentType = contentType;
-		this.requestId = requestId;
-		initializeClient(getClient());
-	}
-
-	/**
-	 * Override method to return false to disable logging.
-	 * 
-	 * @return true - to enable logging, false otherwise
-	 */
-	protected boolean enableLogging() {
-		return true;
-	}
-	
-	/**
-	 * Override method to return custom value for max payload size.
-	 * 
-	 * @return Default value for MAX_PAYLOAD_SIZE = 1024 * 1024
-	 */
-	protected int getMaxPayloadSize()
-	{
-		return MAX_PAYLOAD_SIZE;
-	}
-
-	protected Builder getBuilder() {
-
-		Builder builder = webTarget.request();
-		initializeHeaderMap(headerMap);
-
-		for (Entry<String, String> entry : headerMap.entrySet()) {
-			builder.header(entry.getKey(), entry.getValue());
-		}
-		return builder;
-	}
-
-	protected abstract void initializeHeaderMap(Map<String, String> headerMap);
-
-	protected abstract Optional<ClientResponseFilter> addResponseFilter();
-
-	public abstract RestClient addRequestId(UUID requestId);
-	
-	/**
-	 * Adds a basic authentication header to the request.
-	 * @param auth the encrypted credentials
-	 * @param key the key for decrypting the credentials
-	 */
-	protected void addBasicAuthHeader(String auth, String key) {
-		try {
-			byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes();
-			String authHeaderValue = "Basic " + new String(Base64.encodeBase64(decryptedAuth));
-			headerMap.put("Authorization", authHeaderValue);
-		} catch (GeneralSecurityException e) {
-			logger.warn(e.getMessage(), e);
-		}
-	}
-
-	protected ContextResolver<ObjectMapper> getMapper() {
-		return new CommonObjectMapperProvider();
-	}
-
-	protected String getAccept() {
-		return accept;
-	}
-
-	protected String getContentType() {
-		return contentType;
-	}
-
-	protected String getMergeContentType() {
-		return "application/merge-patch+json";
-	}
-
-	protected Client getClient() {
-		return ClientBuilder.newBuilder().build();
-	}
-
-	protected UUID getRequestId() {
-		return this.requestId;
-	}
-	protected void initializeClient(Client client) {
-		if (this.enableLogging()) {
-			client.register(logger).register(new LoggingFilter(this.getMaxPayloadSize()));
-		}
-		client.register(this.getMapper());
-		Optional<ClientResponseFilter> responseFilter = this.addResponseFilter();
-		responseFilter.ifPresent(clientResponseFilter -> client.register(clientResponseFilter));
-		webTarget = path.<WebTarget>map(uri -> client.target(UriBuilder.fromUri(host + uri.toString())))
-			.orElseGet(() -> client.target(host.toString()));
-		this.accept = MediaType.APPLICATION_JSON;
-		this.contentType = MediaType.APPLICATION_JSON;
-	}
-
-	public Response get() {
-		return this.getBuilder().accept(this.getAccept()).get();
-	}
-
-	public Response post(Object obj) {
-		return this.getBuilder().accept(this.getAccept()).post(Entity.entity(obj, this.getContentType()));
-	}
-
-	public Response patch(Object obj) {
-		return this.getBuilder().header("X-HTTP-Method-Override", "PATCH").accept(this.getAccept())
-				.post(Entity.entity(obj, this.getMergeContentType()));
-	}
-
-	public Response put(Object obj) {
-		return this.getBuilder().accept(this.getAccept()).put(Entity.entity(obj, this.getContentType()));
-	}
-
-	public Response delete() {
-		return this.getBuilder().accept(this.getAccept()).delete();
-	}
-
-	public Response delete(Object obj) {
-		return this.getBuilder().header("X-HTTP-Method-Override", "DELETE").accept(this.getAccept())
-				.put(Entity.entity(obj, this.getContentType()));
-	}
-
-	public <T> T get(Class<T> resultClass) {
-		return this.get().readEntity(resultClass);
-	}
-
-	public <T> T get(GenericType<T> resultClass) {
-		return this.get().readEntity(resultClass);
-	}
-
-	public <T> T post(Object obj, Class<T> resultClass) {
-		return this.post(obj).readEntity(resultClass);
-	}
-
-	public <T> T patch(Object obj, Class<T> resultClass) {
-		return this.patch(obj).readEntity(resultClass);
-	}
-
-	public <T> T put(Object obj, Class<T> resultClass) {
-		return this.put(obj).readEntity(resultClass);
-	}
-
-	public <T> T delete(Class<T> resultClass) {
-		return this.delete().readEntity(resultClass);
-	}
-	
-	public <T> T delete(Object obj, Class<T> resultClass) {
-		return this.delete(obj).readEntity(resultClass);
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java b/common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java
deleted file mode 100644
index 655f71f..0000000
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java
+++ /dev/null
@@ -1,94 +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.openecomp.mso.client.policy.entities;
-
-
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({ "ServiceType", "VNFType", "BB_ID", "WorkStep", "ErrorCode" })
-public class DecisionAttributes {
-
-	@JsonProperty("ServiceType")
-	private String serviceType;
-	@JsonProperty("VNFType")
-	private String VNFType;
-	@JsonProperty("BB_ID")
-	private String BBID;
-	@JsonProperty("WorkStep")
-	private String workStep;
-	@JsonProperty("ErrorCode")
-	private String errorCode;
-
-	@JsonProperty("ServiceType")
-	public String getServiceType() {
-		return serviceType;
-	}
-
-	@JsonProperty("ServiceType")
-	public void setServiceType(String serviceType) {
-		this.serviceType = serviceType;
-	}
-
-	@JsonProperty("VNFType")
-	public String getVNFType() {
-		return VNFType;
-	}
-
-	@JsonProperty("VNFType")
-	public void setVNFType(String vNFType) {
-		this.VNFType = vNFType;
-	}
-
-	@JsonProperty("BB_ID")
-	public String getBBID() {
-		return BBID;
-	}
-
-	@JsonProperty("BB_ID")
-	public void setBBID(String bBID) {
-		this.BBID = bBID;
-	}
-
-	@JsonProperty("WorkStep")
-	public String getWorkStep() {
-		return workStep;
-	}
-
-	@JsonProperty("WorkStep")
-	public void setWorkStep(String workStep) {
-		this.workStep = workStep;
-	}
-
-	@JsonProperty("ErrorCode")
-	public String getErrorCode() {
-		return errorCode;
-	}
-
-	@JsonProperty("ErrorCode")
-	public void setErrorCode(String errorCode) {
-		this.errorCode = errorCode;
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java b/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java
deleted file mode 100644
index fbc8e23..0000000
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java
+++ /dev/null
@@ -1,58 +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.openecomp.mso.client.policy.entities;
-
-
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({ "decision", "details" })
-public class PolicyDecision {
-
-	@JsonProperty("decision")
-	private String decision;
-	@JsonProperty("details")
-	private String details;
-
-	@JsonProperty("decision")
-	public String getDecision() {
-		return decision;
-	}
-
-	@JsonProperty("decision")
-	public void setDecision(String decision) {
-		this.decision = decision;
-	}
-
-	@JsonProperty("details")
-	public String getDetails() {
-		return details;
-	}
-
-	@JsonProperty("details")
-	public void setDetails(String details) {
-		this.details = details;
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java b/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java
deleted file mode 100644
index bc20b9c..0000000
--- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java
+++ /dev/null
@@ -1,58 +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.openecomp.mso.client.policy.entities;
-
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({ "decisionAttributes", "ecompcomponentName" })
-public class PolicyDecisionRequest {
-
-	@JsonProperty("decisionAttributes")
-	private DecisionAttributes decisionAttributes;
-	@JsonProperty("ecompcomponentName")
-	private String ecompcomponentName;
-
-	@JsonProperty("decisionAttributes")
-	public DecisionAttributes getDecisionAttributes() {
-		return decisionAttributes;
-	}
-
-	@JsonProperty("decisionAttributes")
-	public void setDecisionAttributes(DecisionAttributes decisionAttributes) {
-		this.decisionAttributes = decisionAttributes;
-	}
-
-	@JsonProperty("ecompcomponentName")
-	public String getEcompcomponentName() {
-		return ecompcomponentName;
-	}
-
-	@JsonProperty("ecompcomponentName")
-	public void setEcompcomponentName(String ecompcomponentName) {
-		this.ecompcomponentName = ecompcomponentName;
-	}
-
-}
diff --git a/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java b/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java
deleted file mode 100644
index 2988e30..0000000
--- a/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java
+++ /dev/null
@@ -1,74 +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.openecomp.mso.db;
-
-import org.hibernate.cfg.Configuration;
-import org.hibernate.SessionFactory;
-import org.hibernate.service.ServiceRegistry;
-import org.openecomp.mso.properties.MsoDatabaseException;
-import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
-import java.net.URL;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-public abstract class AbstractSessionFactoryManager {
-
-    protected static Map<String, SessionFactory> sessionFactories = new ConcurrentHashMap<>();
-
-    protected synchronized SessionFactory initializeSessionFactory(URL hibernateConfigFile)
-            throws MsoDatabaseException {
-        try {
-            if (hibernateConfigFile != null) {
-                SessionFactory tempFactory = sessionFactories.get(hibernateConfigFile.getPath());
-                // Already initialized, skip
-                if (tempFactory != null) {
-                    return tempFactory;
-                }
-
-                Configuration conf = new Configuration().configure(hibernateConfigFile);
-                ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
-                tempFactory = conf.buildSessionFactory(sr);
-                if (tempFactory == null) {
-                    throw new MsoDatabaseException(
-                            "SessionFactory can't be initialized, method buildSessionFactory returned null !");
-                }
-                sessionFactories.put(hibernateConfigFile.getPath(), tempFactory);
-                return tempFactory;
-            } else {
-                throw new MsoDatabaseException(
-                        "HibernateConfigFile provided is null, therefore Hibernate can't be initialized !");
-            }
-        } catch (Exception e) {
-            throw new MsoDatabaseException("Exception occurred during the SessionFactory Build", e);
-        }
-    }
-
-    public SessionFactory getSessionFactory() throws MsoDatabaseException {
-        URL hibernateConfigFile = getHibernateConfigFile();
-        SessionFactory factory = sessionFactories.get(hibernateConfigFile.getPath());
-        if (factory == null) {
-            factory = initializeSessionFactory(hibernateConfigFile);
-        }
-        return factory;
-    }
-
-    protected abstract URL getHibernateConfigFile();
-}
diff --git a/common/src/main/java/org/openecomp/mso/logger/LogFilter.java b/common/src/main/java/org/openecomp/mso/logger/LogFilter.java
deleted file mode 100644
index d799b47..0000000
--- a/common/src/main/java/org/openecomp/mso/logger/LogFilter.java
+++ /dev/null
@@ -1,68 +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.openecomp.mso.logger;
-
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.slf4j.MDC;
-
-import java.io.IOException;
-import java.security.Principal;
-
-public class LogFilter implements Filter {
-	@Override
-	public void destroy() {
-		// Nothing to do.
-	}
-
-	@Override
-	public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
-		final HttpServletRequest httpRequest = (HttpServletRequest) request;
-		final HttpServletResponse httpResponse = (HttpServletResponse) response;
-
-		MDC.clear ();
-		MDC.put (MsoLogger.REMOTE_HOST, httpRequest.getRemoteAddr());
-
-		Principal userPrincipal = httpRequest.getUserPrincipal();
-		if (null != userPrincipal) {
-			MDC.put (MsoLogger.PARTNERNAME, userPrincipal.getName ());
-		}
-		//Set identity of calling application / component
-		String fromAppId = httpRequest.getHeader(MsoLogger.HEADER_FROM_APP_ID);
-		if(fromAppId != null && !fromAppId.isEmpty()) {
-			MDC.put (MsoLogger.FROM_APP_ID, fromAppId);
-		}
-		chain.doFilter(httpRequest, httpResponse);
-	}
-	
-	@Override
-	public void init(final FilterConfig config) throws ServletException {
-		// Nothing to do
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java
deleted file mode 100644
index 6ed2786..0000000
--- a/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java
+++ /dev/null
@@ -1,108 +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.openecomp.mso.logger;
-
-
-import java.io.File;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import org.slf4j.LoggerFactory;
-
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.joran.JoranConfigurator;
-
-
-/**
- * This class will attempt to initialize MSO log4j when part of a web application.
- * It will look for the logback configuration file logback.xml in the 
- * following order:
- * 1. In an init-param "log.configuration" in web.xml
- * 2. TODO: In a property "log.configuration" in an "application.properties" file
- * 3. In the default location "/etc/ecomp/mso/config"
- * 4. Using the log4j default (check system property log.configuration or
- *    just look on the classpath for logback.xml)
- * 
- *
- */
-@WebListener
-public class MsoLogInitializer implements ServletContextListener
-{
-	private static String DEFAULT_LOG4J_PROPERTIES_FILE = "/etc/ecomp/mso/config/logback.xml";
-	private static String prefixMsoPropertiesPath = System.getProperty("mso.config.path");
-	static  {
-		if (prefixMsoPropertiesPath == null) {
-			prefixMsoPropertiesPath = "/";
-		} else if (!(prefixMsoPropertiesPath.charAt(prefixMsoPropertiesPath.length() - 1) == '/')) {
-			prefixMsoPropertiesPath = prefixMsoPropertiesPath + "/";
-		}
-	}
-	
-	public MsoLogInitializer () {
-	}
-
-
-	@Override
-	public void contextDestroyed(ServletContextEvent event) {
-		// Nothing to do...
-	}
-
-	@Override
-	public void contextInitialized(ServletContextEvent event)
-	{
-		String logPropertiesFile = null;
-		try {
-			// Look first in the init-parameters
-			String initParam = event.getServletContext().getInitParameter("log.configuration");
-			if (initParam != null && fileIsReadable(prefixMsoPropertiesPath + initParam)) {
-				logPropertiesFile = prefixMsoPropertiesPath + initParam;
-			}
-			else if (fileIsReadable(DEFAULT_LOG4J_PROPERTIES_FILE)) {
-				logPropertiesFile = DEFAULT_LOG4J_PROPERTIES_FILE;
-			}
-			
-			if (logPropertiesFile != null) {
-				// Initialize loggers with the specified file.  If no such file was
-				// specified, will use the default Log4j resolution.
-				LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); 
-				JoranConfigurator jc = new JoranConfigurator(); 
-				jc.setContext(context); 		
-				context.reset(); 
-				jc.doConfigure(logPropertiesFile);
-				// Try it out
-				MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-				initLogger.info(MessageEnum.INIT_LOGGER, logPropertiesFile, "", "");
-			}
-		} catch (Exception e) {
-			MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-			initLogger.error (MessageEnum.INIT_LOGGER_FAIL, "", "", MsoLogger.ErrorCode.UnknownError, "", e);
-		}
-	}
-	
-	private boolean fileIsReadable (String filePath) {
-		File f = new File(filePath);
-		if (f.exists() && f.canRead())
-			return true;
-		return false;
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java b/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java
deleted file mode 100644
index dd42efb..0000000
--- a/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java
+++ /dev/null
@@ -1,163 +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.openecomp.mso.logger;
-
-
-import java.util.List;
-
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-
-import org.slf4j.LoggerFactory;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.joran.JoranConfigurator;
-import ch.qos.logback.core.Appender;
-
-import com.wordnik.swagger.annotations.Api;
-import com.wordnik.swagger.annotations.ApiOperation;
-
-@Path("/logging")
-@Api(value="/logging",description="logging")
-public class MsoLoggingServlet {
-
-    private static final String DEBUGLOG = "asyncEELFDebug";
-    private MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
-    private static final String GENERAL_LOGGER = "com.att.eelf.error";
-    private static final String AUDIT_LOGGER = "com.att.eelf.audit";
-    private static final String METRICS_LOGGER = "com.att.eelf.metrics";
-
-    @GET
-    @Path("/setLevel/{logContext}/{level}")
-    @Produces("text/plain")
-    @ApiOperation(value="message print",response=Response.class)
-    public Response setLogLevel (@PathParam("logContext") String logContext, @PathParam("level") String level) {
-        logger.info (MessageEnum.LOGGER_SETUP, "", "");
-        
-        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); 
-		JoranConfigurator jc = new JoranConfigurator(); 
-		jc.setContext(context); 
-		Logger updateLogger = context.getLogger (logContext);
-        
-        if (updateLogger == null) {
-            logger.info (MessageEnum.LOGGER_NOT_FOUND, logContext, "", "");
-            String response = "Unknown logger: " + logContext;
-            return Response.status (200).entity (response).build ();
-        }
-        
-        Level currentLevel = updateLogger.getLevel();
-        if (!currentLevel.equals(Level.toLevel(level))) {
-        	Level newLevel = Level.toLevel (level);
-        	updateLogger.setLevel (newLevel);
-            logger.info (MessageEnum.LOGGER_UPDATE_SUC, updateLogger.getName (), currentLevel.toString(), newLevel.toString());
-        }
-
-        String response = "Log level set to: " + level + " for " + updateLogger.getName ();
-        return Response.status (200).entity (response).build ();
-
-    }
-
-    @GET
-    @Path("/loggers")
-    @Produces("text/plain")
-    @SuppressWarnings("rawtypes")
-    @ApiOperation(value="message print",response=Response.class)
-    public Response getLoggers () {
-        StringBuilder response = new StringBuilder ();
-        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); 
-		JoranConfigurator jc = new JoranConfigurator(); 
-		jc.setContext(context); 
-		List <Logger> loggerList = context.getLoggerList();
-        for (Logger logger:loggerList) {
-        	//if (logger.getLevel() != null) {
-        		response.append(logger.getName()).append(":").append(logger.getLevel()).append(" (")
-                    .append(logger.getEffectiveLevel()).append(")\n");
-        	//}
-        }
-        return Response.status (200).entity (response).build ();
-
-    }
-
-    @GET
-    @Path("/debug")
-    @Produces("text/plain")
-    @ApiOperation(value="message print",response=Response.class)
-    @SuppressWarnings("rawtypes")
-    /*
-     * Debug log is used as a general log to store all the logs events, including events generated by MSO code or by
-     * components used by MSO.
-     * This method will only enable/disable the function to store MSO generated events into debug log,
-     * since those events will also be generated to error, audit, metrics log.
-     * The events generated by other components will not be affected by this interface.
-     */
-    public Response updateDebugAppender (@DefaultValue("true") @QueryParam("enable") Boolean enable) {
-        String response;
-        
-		LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); 
-		JoranConfigurator jc = new JoranConfigurator(); 
-		jc.setContext(context); 
-		List <Logger> loggerList = context.getLoggerList();
-		Logger rootLogger = context.getLogger("ROOT");
-        Appender appender = rootLogger.getAppender(DEBUGLOG);
-
-        if (null == appender) {
-        	return Response.status (500).entity ("Not able to found Debug appender. Please verify to make sure the needed logback file is present in the config folder.").build ();
-        }
-
-        if (enable) {
-            logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", "");
-
-            for (Logger logger: loggerList) {
-                if (isMsoLogger (logger.getName ()) && logger.getAppender (DEBUGLOG) == null && logger.getLevel () != null) {
-                	logger.addAppender (appender);
-                	logger.setAdditive(false);
-                }
-            }
-            logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "enabled", "", "");
-            response = "Debuglog successfully enabled.";
-        } else {
-            logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", "");
-            for (Logger logger: loggerList) {
-                if (isMsoLogger (logger.getName ())) {
-                	logger.detachAppender (appender);
-                }
-            }
-            logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "disabled", "", "");
-            response = "Debuglog successfully disabled.";
-        }
-        return Response.status (200).entity (response).build ();
-        
-        
-    }
-
-    private boolean isMsoLogger (String loggerName) {
-        return loggerName.contains (GENERAL_LOGGER) || loggerName.equals (AUDIT_LOGGER)
-               || loggerName.equals (METRICS_LOGGER);
-    }
-
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java b/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java
deleted file mode 100644
index 8ab275e..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java
+++ /dev/null
@@ -1,75 +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.openecomp.mso.properties;
-
-
-import java.io.IOException;
-import java.util.Properties;
-
-import org.openecomp.mso.logger.MsoLogger;
-
-public abstract class AbstractMsoProperties {
-
-	public static final int DEFAULT_RELOAD_TIME_MIN=1;
-	
-	public static final String RELOAD_TIME_PROPERTY="mso.properties.reload.time.minutes";
-	
-	protected static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-
-	protected String propertiesFileName;
-
-	protected int automaticRefreshInMinutes=0;
-
-	public String getPropertiesFileName() {
-		return propertiesFileName;
-	}
-
-	public int getAutomaticRefreshInMinutes() {
-		return automaticRefreshInMinutes;
-	}
-	
-	protected synchronized void reloadPropertiesFile() throws IOException {
-		this.loadPropertiesFile(this.propertiesFileName);
-	}
-	
-	/**
-	 * This method load a properties file from a source path.
-	 *
-	 * @param propertiesPath The path to the file
-	 * @throws IOException In case of issues during the opening
-	 */
-	
-	protected abstract void loadPropertiesFile(String propertiesPath) throws IOException;
-	
-	@Override
-	protected abstract AbstractMsoProperties clone();
-	
-	@Override
-	public abstract int hashCode();
-	
-	@Override
-	public abstract boolean equals(Object obj);
-	
-	@Override
-	public abstract String toString();
-	
-	
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java
deleted file mode 100644
index c13b9e0..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java
+++ /dev/null
@@ -1,228 +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.openecomp.mso.properties;
-
-
-import java.io.FileReader;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.codec.binary.Base64;
-import org.openecomp.mso.utils.CryptoUtils;
-
-public class MsoJavaProperties extends AbstractMsoProperties {
-
-	
-	private Properties msoProperties = new Properties();
-
-
-	public MsoJavaProperties() {
-		
-	}
-
-	public synchronized void setProperty(String key,String value) {
-		msoProperties.setProperty(key, value);
-	}
-	
-	public synchronized String getProperty(String key, String defaultValue) {
-		if (msoProperties.containsKey(key)) {
-			return msoProperties.getProperty(key);
-		} else {
-			return defaultValue;
-		}
-	}
-
-	public synchronized int getIntProperty(String key, int defaultValue) {
-
-		int value = defaultValue;
-		if (msoProperties.containsKey(key)) {
-			try {
-				value = Integer.parseInt(msoProperties.getProperty(key));
-			} catch (NumberFormatException e) {
-				LOGGER.debug("Exception while parsing integer: " + msoProperties.getProperty(key), e);
-			}
-		}
-		return value;
-
-	}
-
-	public synchronized boolean getBooleanProperty(String key, boolean defaultValue) {
-
-		if (msoProperties.containsKey(key)) {
-			return Boolean.parseBoolean(msoProperties.getProperty(key));
-		} else {
-			return defaultValue;
-		}
-
-	}
-
-	public synchronized String getEncryptedProperty(String key, String defaultValue, String encryptionKey) {
-
-		if (msoProperties.containsKey(key)) {
-			try {
-				return CryptoUtils.decrypt(msoProperties.getProperty(key), encryptionKey);
-			} catch (GeneralSecurityException e) {
-				LOGGER.debug("Exception while decrypting property: " + msoProperties.getProperty(key), e);
-			}
-		}
-		return defaultValue;
-
-	}
-
-	/**
-	 * @param encryptedAuth: encrypted credentials from properties
-	 * @param msoKey: key to use to decrypt from properties
-	 * @return base 64 encoded basic auth credentials
-	 */
-	public synchronized String getBasicAuth(String encryptedAuth, String msoKey){
-		String encodedString = null;
-		if ((encryptedAuth == null || encryptedAuth.isEmpty()) || (msoKey == null || msoKey.isEmpty()))
-			return null;
-		try {
-			String auth = decrypt(encryptedAuth, msoKey);
-			byte[] encoded = Base64.encodeBase64(auth.getBytes());
-			encodedString = new String(encoded);
-			encodedString = "Basic " + encodedString;
-			
-		} catch (Exception ex) {
-			LOGGER.debug("Exception while getBasicAuth " + encryptedAuth, ex);
-		}
-		return encodedString;
-	}		
-	
-	public synchronized int size() {
-		return this.msoProperties.size();
-	}
-	
-	public synchronized String decrypt(String toDecrypt, String msokey){
-		String result = null;
-		try {
-			result = CryptoUtils.decrypt(toDecrypt, msokey);
-			
-		}
-		catch (Exception e) {
-			LOGGER.debug("Failed to decrypt credentials: " + toDecrypt, e);
-		}
-		return result;
-	}	
-	
-	@Override
-	protected synchronized void reloadPropertiesFile() throws IOException {
-		this.loadPropertiesFile(this.propertiesFileName);
-	}
-
-	/**
-	 * This method load a properties file from a source path.
-	 *
-	 * @param propertiesPath The path to the file
-	 * @throws IOException In case of issues during the opening
-	 */
-	@Override
-	protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException {
-
-		FileReader reader = null;
-	
-		propertiesFileName = propertiesPath;
-		try {
-			msoProperties.clear();
-			reader = new FileReader(propertiesPath);
-			msoProperties.load(reader);
-
-		} finally {
-			this.automaticRefreshInMinutes = this.getIntProperty(RELOAD_TIME_PROPERTY, DEFAULT_RELOAD_TIME_MIN);
-			try {
-				if (reader != null) {
-					reader.close();
-				}
-			} catch (IOException e) {
-				LOGGER.debug("Exception while closing reader for file:" + propertiesPath, e);
-			}
-		}
-	}
-
-	@Override
-	public synchronized MsoJavaProperties clone() {
-		MsoJavaProperties msoCopy = new MsoJavaProperties();
-		msoCopy.msoProperties.putAll(msoProperties);
-		msoCopy.propertiesFileName = this.propertiesFileName;
-		msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes;
-		return msoCopy;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((msoProperties == null) ? 0 : msoProperties.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (getClass() != obj.getClass()) {
-			return false;
-		}
-		MsoJavaProperties other = (MsoJavaProperties) obj;
-
-		return msoProperties.equals(other.msoProperties);
-	}
-
-	@Override
-	public String toString() {
-
-		StringBuilder response = new StringBuilder();
-		response.append("Config file ")
-				.append(propertiesFileName)
-				.append("(Timer:")
-				.append(automaticRefreshInMinutes)
-				.append("mins):")
-				.append(System.lineSeparator());
-
-		for (Object key : this.msoProperties.keySet()) {
-			String propertyName = (String) key;
-			response.append(propertyName);
-			response.append("=");
-			response.append(this.msoProperties.getProperty(propertyName));
-			response.append(System.lineSeparator());
-		}
-		response.append(System.lineSeparator());
-		response.append(System.lineSeparator());
-
-		return response.toString();
-	}
-	 
-    public Map<String, String> asMap() {
-        final Map<String, String> result = new HashMap<>();
-        msoProperties.forEach((key, value) -> result.put(key.toString(), value.toString()));
-        
-        return result;
-    }
-
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java
deleted file mode 100644
index ec0b54a..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java
+++ /dev/null
@@ -1,167 +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.openecomp.mso.properties;
-
-
-import java.io.FileReader;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-
-import org.openecomp.mso.utils.CryptoUtils;
-
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-
-public class MsoJsonProperties extends AbstractMsoProperties {
-	
-	protected ObjectMapper mapper = new ObjectMapper();
-	
-	protected JsonNode jsonRootNode = mapper.createObjectNode();
-	
-	protected MsoJsonProperties() {
-		
-	}
-
-	public synchronized JsonNode getJsonRootNode () {
-		return this.jsonRootNode;
-	}
-
-	/**
-	 * This method is used to get the text encrypted in the string value of the node.
-	 * @param jsonNode The JsonNode containing the strig to decode
-	 * @param defaultValue The default value in case of issue
-	 * @param encryptionKey The encryption Key in AES 128 bits
-	 * @return the String decrypted
-	 */
-	public synchronized String getEncryptedProperty(JsonNode jsonNode, String defaultValue, String encryptionKey) {
-
-		if (jsonNode.isTextual()) {
-			try {
-				return CryptoUtils.decrypt(jsonNode.asText(), encryptionKey);
-			} catch (GeneralSecurityException e) {
-				LOGGER.debug("Exception while decrypting property: " + jsonNode.asText(), e);
-			}
-		} 
-		
-		return defaultValue;
-	}
-	
-	/**
-	 * This method load a properties file from a source path.
-	 *
-	 * @param propertiesPath The path to the file
-	 * @throws IOException In case of issues during the opening
-	 */
-	@Override
-	protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException {
-
-		FileReader reader = null;
-	
-		this.propertiesFileName = propertiesPath;
-		
-		try {
-			// Clean
-			this.jsonRootNode = mapper.createObjectNode();
-			
-			reader = new FileReader(propertiesPath);
-			
-			// Try a tree load
-			this.jsonRootNode = mapper.readValue(reader, JsonNode.class);
-
-
-		} finally {
-			JsonNode reloadJsonProp = this.jsonRootNode.get(RELOAD_TIME_PROPERTY);
-			if (reloadJsonProp != null) {
-				this.automaticRefreshInMinutes = reloadJsonProp.asInt(DEFAULT_RELOAD_TIME_MIN); 
-			} else {
-				this.automaticRefreshInMinutes = DEFAULT_RELOAD_TIME_MIN;
-			}
-			
-			// Always close the file
-			try {
-				if (reader != null) {
-					reader.close();
-				}
-			} catch (IOException e) {
-				LOGGER.debug("Exception while closing reader for file:" + propertiesFileName, e);
-			}
-		}
-	}
-
-	@Override
-	public synchronized MsoJsonProperties clone() {
-		MsoJsonProperties msoCopy = new MsoJsonProperties();
-		
-		ObjectMapper newMapper = new ObjectMapper();
-		try {
-			msoCopy.jsonRootNode = newMapper.createObjectNode();
-			msoCopy.jsonRootNode = newMapper.readValue(this.jsonRootNode.toString(), JsonNode.class);
-		} catch (JsonParseException e) {
-			LOGGER.debug("JsonParseException when cloning the object:" + this.propertiesFileName, e);
-		} catch (JsonMappingException e) {
-			LOGGER.debug("JsonMappingException when cloning the object:" + this.propertiesFileName, e);
-		} catch (IOException e) {
-			LOGGER.debug("IOException when cloning the object:" + this.propertiesFileName, e);
-		} 
-		
-		msoCopy.propertiesFileName = this.propertiesFileName;
-		msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes;
-		return msoCopy;
-	}
-
-
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((jsonRootNode == null) ? 0 : jsonRootNode.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		MsoJsonProperties other = (MsoJsonProperties) obj;
-		if (jsonRootNode == null) {
-			if (other.jsonRootNode != null)
-				return false;
-		} else if (!jsonRootNode.equals(other.jsonRootNode))
-			return false;
-		return true;
-	}
-
-	@Override
-	public String toString() {
-		return "Config file " + propertiesFileName + "(Timer:" + automaticRefreshInMinutes + "mins):" + System
-			.getProperty("line.separator") + this.jsonRootNode.toString() + System.getProperty("line.separator")
-			+ System.getProperty("line.separator");
-	}
-
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java
deleted file mode 100644
index 1563ca5..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java
+++ /dev/null
@@ -1,51 +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.openecomp.mso.properties;
-
-
-/**
- * Exception during artifact installation.
- */
-public class MsoPropertiesException extends Exception {
-
-	/**
-     * serialization id.
-	 */
-	private static final long serialVersionUID = 4095937499475915021L;
-
-    /**
-     * @param message The message to dump
-     * @param cause The Throwable cause object
-     */
-    public MsoPropertiesException (final String message) {
-        super (message);
-       
-    }
-	
-    /**
-     * @param message The message to dump
-     * @param cause The Throwable cause object
-     */
-    public MsoPropertiesException (final String message, final Throwable cause) {
-        super (message, cause);
-       
-    }
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java
deleted file mode 100644
index 3f81734..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java
+++ /dev/null
@@ -1,395 +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.openecomp.mso.properties;
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import javax.ejb.ConcurrencyManagement;
-import javax.ejb.ConcurrencyManagementType;
-import javax.ejb.LocalBean;
-import javax.ejb.Schedule;
-import javax.ejb.Singleton;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-import org.openecomp.mso.utils.CryptoUtils;
-
-/**
- * This EJB Singleton class returns an instance of the mso properties for a specified file.
- * This class can handle many config at the same time and is thread safe.
- * This instance is a copy of the one cached so it can be modified or reloaded without impacting the others class using
- * it.
- * The mso properties files loaded and cached here will be reloaded every X second (it's configurable with the init
- * method)
- * This class can be used as an EJB or can be instantiated directly as long as the EJB has been initialized for the current
- * module. Locks are made manually and not using EJB locks to allow this.
- *
- *
- */
-@Singleton(name = "MsoPropertiesFactory")
-@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
-@LocalBean
-@Path("/properties")
-public class MsoPropertiesFactory implements Serializable {
-
-	private static final long serialVersionUID = 4365495305496742113L;
-
-    protected static String prefixMsoPropertiesPath = System.getProperty ("mso.config.path");
-
-    private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
-
-    // Keep a static copy of properties for global usage
-    private static final ConcurrentHashMap <String, MsoPropertiesParameters> msoPropertiesCache;
-
-    static {
-        if (prefixMsoPropertiesPath == null) {
-            // Hardcode if nothing is received
-            prefixMsoPropertiesPath = "";
-        }
-        msoPropertiesCache = new ConcurrentHashMap<>();
-    }
-
-    private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock ();
-
-    public MsoPropertiesFactory () {
-
-    }
-
-    private boolean isJsonFile(String propertiesFilePath) {
-    	return propertiesFilePath.endsWith(".json");
-    }
-    
-    
-    private boolean isJavaPropertiesFile (String propertiesFilePath) {
-    	return propertiesFilePath.endsWith(".properties");
-    }
-    
-	private MsoPropertiesParameters createObjectType (MsoPropertiesParameters msoPropParams, String propertiesFilePath) throws MsoPropertiesException, IOException {
-    	
-		try {
-	    	if (this.isJavaPropertiesFile(propertiesFilePath)) {
-	    		
-	    		msoPropParams.msoProperties =  new MsoJavaProperties();
-	    		msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP;
-	    	 } else if (this.isJsonFile(propertiesFilePath)) {
-	    		 
-	    		msoPropParams.msoProperties =  new MsoJsonProperties();
-	    		msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JSON_PROP;
-	         } else {
-	        	 throw new MsoPropertiesException("Unable to load the MSO properties file because format is not recognized (only .json or .properties): " + propertiesFilePath);
-	         }
-	
-	    	msoPropParams.msoProperties.loadPropertiesFile (propertiesFilePath);
-	    	
-	    	return msoPropParams;
-		} finally {
-			if (msoPropParams.msoProperties!=null) {
-				msoPropParams.refreshCounter = msoPropParams.msoProperties.getAutomaticRefreshInMinutes();
-			}
-		}
-
-    }
-    
-    /**
-     * This method is used to create a MsoProperties file cache and factory.
-	 * The ID is kept in cache even if the config fails to be loaded.
-	 * This is used to maintain the config ID until someone fixes the config file.
-     *
-     * @param msoPropertiesID A string representing the key of the config
-     * @param propertiesFilePath The mso properties file to load
-     *
-     * @throws MsoPropertiesException In case of issues with the mso properties loading
-     *
-     * @see MsoPropertiesFactory#getMsoJavaProperties()
-     * @see MsoPropertiesFactory#getMsoJsonProperties()
-     */
-    public void initializeMsoProperties (String msoPropertiesID,
-                                         String propertiesFilePath) throws MsoPropertiesException {
-             
-        rwl.writeLock ().lock ();
-        
-        String msoPropPath="none";
-        MsoPropertiesParameters msoPropertiesParams=new MsoPropertiesParameters();
-        try {
-        	msoPropPath = prefixMsoPropertiesPath + propertiesFilePath; 
-        	if (msoPropertiesCache.get (msoPropertiesID) != null) {
-                throw new MsoPropertiesException ("The factory contains already an instance of this mso properties: "
-                                                  + msoPropPath);
-            }
-        	// Create the global MsoProperties object
-        	msoPropertiesParams = createObjectType(msoPropertiesParams, msoPropPath);
-
-        } catch (FileNotFoundException e) {
-            throw new MsoPropertiesException ("Unable to load the MSO properties file because it has not been found:"
-                                              + msoPropPath, e);
-
-        } catch (IOException e) {
-            throw new MsoPropertiesException ("Unable to load the MSO properties file because IOException occurs: "
-                                              + msoPropPath, e);
-        } finally {
-        	// put it in all cases, just to not forget about him and attempt a default reload
-        	msoPropertiesCache.put (msoPropertiesID, msoPropertiesParams);
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    public void removeMsoProperties (String msoPropertiesID) throws MsoPropertiesException {
-
-        rwl.writeLock ().lock ();
-        try {
-            if (MsoPropertiesFactory.msoPropertiesCache.remove (msoPropertiesID) == null) {
-                throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
-            }
-        } finally {
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    /**
-     * This method clears all the configs in cache, the factory will then be free of any config.
-     * 
-     * @see MsoPropertiesFactory#initializeMsoProperties(String, String)
-     */
-    public void removeAllMsoProperties () {
-
-        rwl.writeLock ().lock ();
-        try {
-            MsoPropertiesFactory.msoPropertiesCache.clear ();
-        } finally {
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    /**
-     * THis method can be used to change the file and timer fields of an existing MSO properties file.
-     *
-     * @param msoPropertiesID The MSO properties ID
-     * @param newMsoPropPath The new file Path
-     * @throws MsoPropertiesException In case of the MSO Properties is not found in cache
-     */
-    public void changeMsoPropertiesFilePath (String msoPropertiesID,
-                                             String newMsoPropPath) throws MsoPropertiesException {
-
-        rwl.writeLock ().lock ();
-        try {
-        	MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID);
-
-            if (msoPropInCache != null) {
-                msoPropInCache.msoProperties.propertiesFileName = prefixMsoPropertiesPath + newMsoPropPath;
-                
-            } else {
-                throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
-            }
-        } finally {
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    private AbstractMsoProperties getAndCloneProperties(String msoPropertiesID, MsoPropertiesParameters.MsoPropertiesType type) throws MsoPropertiesException {
-    	 rwl.readLock ().lock ();
-         try {
-         	MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID);
-             if (msoPropInCache == null) {
-                 throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
-             } else {
-                 if (type.equals(msoPropInCache.msoPropertiesType)) {
-                 	return msoPropInCache.msoProperties.clone ();
-                 } else {
-                 	throw new MsoPropertiesException ("Mso properties is not "+type.name()+" properties type:" + msoPropertiesID);
-                 }
-             	
-             }
-         } finally {
-             rwl.readLock ().unlock ();
-         }
-    }
-    
-    /**
-     * Get the MSO Properties (As Java Properties) as a copy of the mso properties cache.
-     * The object returned can therefore be modified.
-     *
-     * @return A copy of the mso properties, properties class can be empty if the file has not been read properly
-     * @throws MsoPropertiesException If the mso properties does not exist in the cache
-     */
-    public MsoJavaProperties getMsoJavaProperties (String msoPropertiesID) throws MsoPropertiesException {
-
-    	return (MsoJavaProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP);
-    }
-    
-    /**
-     * Get the MSO Properties (As JSON Properties) as a copy of the mso properties cache.
-     * The object returned can therefore be modified.
-     *
-     * @return A copy of the mso properties, properties class can be empty if the file has not been read properly
-     * @throws MsoPropertiesException If the mso properties does not exist in the cache
-     */
-    public MsoJsonProperties getMsoJsonProperties (String msoPropertiesID) throws MsoPropertiesException {
-
-    	return (MsoJsonProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JSON_PROP);
-    }
-
-    /**
-     * Get all MSO Properties as a copy of the mso properties cache.
-     * The objects returned can therefore be modified.
-     *
-     * @return A List of copies of the mso properties, can be empty
-     */
-    public List <AbstractMsoProperties> getAllMsoProperties () {
-
-        List <AbstractMsoProperties> resultList = new LinkedList<>();
-        rwl.readLock ().lock ();
-        try {
-
-        	for (MsoPropertiesParameters msoProp:MsoPropertiesFactory.msoPropertiesCache.values ()) {
-        		resultList.add(msoProp.msoProperties.clone());
-        	}
-            return resultList;
-
-        } finally {
-            rwl.readLock ().unlock ();
-        }
-
-    }
-
-    /**
-     * This method is not intended to be called, it's used to refresh the config automatically
-     *
-     * @return true if Properties have been reloaded, false otherwise
-     */
-    @Schedule(minute = "*/1", hour = "*", persistent = false)
-    public boolean reloadMsoProperties () {
-    	AbstractMsoProperties msoPropInCache = null;
-        try {
-            if (!rwl.writeLock ().tryLock () && !rwl.writeLock ().tryLock (30L, TimeUnit.SECONDS)) {
-                LOGGER.debug ("Busy write lock on mso properties factory, skipping the reloading");
-                return false;
-            }
-        } catch (InterruptedException e1) {
-            LOGGER.debug ("Interrupted while trying to acquire write lock on mso properties factory, skipping the reloading");
-            Thread.currentThread ().interrupt ();
-            return false;
-        }
-        try {
-            for (Entry <String, MsoPropertiesParameters> entryMsoPropTimer : MsoPropertiesFactory.msoPropertiesCache.entrySet ()) {
-
-                if (entryMsoPropTimer.getValue ().refreshCounter <= 1) {
-                    // It's time to reload the config
-                    msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (entryMsoPropTimer.getKey ()).msoProperties;
-                    try {
-                    	AbstractMsoProperties oldProps = msoPropInCache.clone ();
-                        msoPropInCache.reloadPropertiesFile ();
-                        entryMsoPropTimer.getValue().refreshCounter=entryMsoPropTimer.getValue().msoProperties.getAutomaticRefreshInMinutes();
-                     
-                        if (!msoPropInCache.equals (oldProps)) {
-                            LOGGER.info (MessageEnum.LOAD_PROPERTIES_SUC, msoPropInCache.getPropertiesFileName (), "", "");
-                        }
-                    } catch (FileNotFoundException ef) {
-                        LOGGER.error (MessageEnum.NO_PROPERTIES, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.PermissionError, "", ef);
-                    } catch (Exception e) {
-                        LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e);
-                    }
-
-                } else {
-                	--entryMsoPropTimer.getValue().refreshCounter;
-                }
-            }
-            return true;
-        } catch (Exception e) {
-            LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. Global issue while reloading", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e);
-            return false;
-        } finally {
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    /**
-     * This method can be used to known if the MSO properties instance hold is different from the one in cache
-     *
-     * @param msoPropertiesID The MSO properties ID
-     * @param oldMsoProperties The MSO Properties instance that must be compared to
-     * @return True if they are the same, false otherwise
-     * @throws MsoPropertiesException 
-     */
-    public boolean propertiesHaveChanged (String msoPropertiesID, AbstractMsoProperties oldMsoProperties) throws MsoPropertiesException {
-        rwl.readLock ().lock ();
-        try {
-        	if (MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID) == null) {
-        		throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
-        	}
-        		 
-        	AbstractMsoProperties msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID).msoProperties;
-            if (oldMsoProperties != null) {
-                return !oldMsoProperties.equals (msoPropInCache);
-            } else {
-                return msoPropInCache != null;
-            }
-        } finally {
-            rwl.readLock ().unlock ();
-        }
-    }
-
-    @GET
-    @Path("/show")
-    @Produces("text/plain")
-    public Response showProperties () {
-
-        List <AbstractMsoProperties> listMsoProp = this.getAllMsoProperties ();
-        StringBuffer response = new StringBuffer ();
-
-        if (listMsoProp.isEmpty ()) {
-            response.append ("No file defined");
-        }
-
-        for (AbstractMsoProperties properties : listMsoProp) {
-
-        	response.append(properties.toString());
-        }
-
-        return Response.status (200).entity (response).build ();
-    }
-
-    @GET
-    @Path("/encrypt/{value}/{cryptKey}")
-    @Produces("text/plain")
-    public Response encryptProperty (@PathParam("value") String value, @PathParam("cryptKey") String cryptKey) {
-        try {
-            String encryptedValue = CryptoUtils.encrypt (value, cryptKey);
-            return Response.status (200).entity (encryptedValue).build ();
-        } catch (Exception e) {
-            LOGGER.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Encryption error", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Error in encrypting property", e);
-            return Response.status (500).entity (e.getMessage ()).build ();
-        }
-    }
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
deleted file mode 100644
index b89a5d4..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
+++ /dev/null
@@ -1,33 +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.openecomp.mso.properties;
-
-
-public class MsoPropertiesParameters {
-	
-	protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP}
-
-	protected MsoPropertiesType msoPropertiesType;
-	
-	protected int refreshCounter;
-	
-	protected AbstractMsoProperties msoProperties;
-}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java
deleted file mode 100644
index 8490ff8..0000000
--- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java
+++ /dev/null
@@ -1,87 +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.openecomp.mso.properties;
-
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-
-/**
- * This class will attempt to initialize MSO Properties when part of a web application.
- * It will look for the configuration file mso.properties in the
- * following order:
- * 1. In an init-param "mso.configuration" in web.xml
- * 2. In a system property "mso.configuration"
- * 3. In the default location "/etc/ecomp/mso/config/mso.properties"
- *
- * If all else fails, the MSO Properties will go uninitialized, and will
- * attempt to use the default constructors within the MsoProperties class.
- *
- *
- */
-@WebListener
-public class MsoPropertyInitializer implements ServletContextListener
-{
-
-	private MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory();
-
-	public MsoPropertyInitializer () {
-	}
-
-	@Override
-	public void contextDestroyed(ServletContextEvent event) {
-		// Nothing to do...
-	}
-
-
-	@Override
-	public void contextInitialized(ServletContextEvent event)
-	{
-
-		// Note - this logger may be before or after MSO Logging configuration applied
-		MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
-		try {
-			// Look first in the init-parameters
-			String msoPropConfigParam = event.getServletContext().getInitParameter("mso.configuration");
-			if (msoPropConfigParam != null && !msoPropConfigParam.isEmpty() ) {
-				String[] configFileSplit = msoPropConfigParam.split(",");
-				for (String msoPropConfig:configFileSplit) {
-					String[] msoPropDecoded = msoPropConfig.split("=");
-	
-					try {
-						msoPropertiesFactory.initializeMsoProperties(msoPropDecoded[0], msoPropDecoded[1]);
-						initLogger.info(MessageEnum.LOAD_PROPERTIES_SUC, msoPropDecoded[1], "", "");
-						initLogger.debug("Mso properties successfully loaded:"+msoPropDecoded[1]+",ID:"+msoPropDecoded[0]+")");
-					} catch (MsoPropertiesException e) {
-						initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, msoPropDecoded[1] + ". MSO Properties failed due to an mso properties exception", "", "", MsoLogger.ErrorCode.DataError, "Error in contextInitialized", e);
-					}
-				}
-			}
-		}
-		catch (Exception e) {
-			initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. MSO Properties failed to initialize completely", "", "", MsoLogger.ErrorCode.DataError, "", e);
-		}
-	}
-}
diff --git a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java b/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java
deleted file mode 100644
index 95f72c4..0000000
--- a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java
+++ /dev/null
@@ -1,67 +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.openecomp.mso.utils;
-
-import java.io.IOException;
-import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonRootName;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * A JSON deserializer that ignores the root element if it is present.
- */
-public class RootIgnoringJsonDeserializer<T> extends JsonDeserializer<T> {
-
-	private final ObjectMapper mapper = new ObjectMapper();
-	private final Class<T> clazz;
-	private final String jsonRootName;
-
-	public RootIgnoringJsonDeserializer(Class<T> clazz) {
-		this.clazz = clazz;
-
-		JsonRootName annotation = clazz.getAnnotation(JsonRootName.class);
-		
-		if (annotation == null || annotation.value() == null || annotation.value().equals("")) {
-			jsonRootName = clazz.getSimpleName();
-		} else {
-			jsonRootName = annotation.value();
-		}
-	}
-
-	@Override
-	public T deserialize(JsonParser jp, DeserializationContext dc) 
-			throws IOException, JsonProcessingException {
-	   JsonNode rootNode = jp.getCodec().readTree(jp);
-	   Map.Entry<String,JsonNode> field = rootNode.fields().next();
-
-	   if (jsonRootName.equals(field.getKey())) {
-		   rootNode = field.getValue();
-	   }
-
-	   return mapper.convertValue(rootNode, clazz);
-	}
-}
\ No newline at end of file
diff --git a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java b/common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java
deleted file mode 100644
index 6f3c5b7..0000000
--- a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java
+++ /dev/null
@@ -1,39 +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.openecomp.mso.utils;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-
-/**
- * An ObjectMapper for a specific class that ignores the root element
- * if it is present.
- */
-public class RootIgnoringObjectMapper<T> extends ObjectMapper {
-
-	private static final long serialVersionUID = 6812584067195377395L;
-
-	public RootIgnoringObjectMapper(Class<T> clazz) {
-		SimpleModule module = new SimpleModule();
-		module.addDeserializer(clazz, new RootIgnoringJsonDeserializer<T>(clazz));
-		registerModule(module);
-	}
-}
\ No newline at end of file
diff --git a/common/src/main/resources/Policy.properties b/common/src/main/resources/Policy.properties
index b5b38c4..b82b7e4 100644
--- a/common/src/main/resources/Policy.properties
+++ b/common/src/main/resources/Policy.properties
@@ -1,7 +1,7 @@
-HOST = https://mtanjvsgcvm02.nvp.cip.att.com:8081/pdp/api/getDecision

-CLIENT_AUTH = Basic bTAzNzQzOnBvbGljeVIwY2sk

-AUTHORIZATION = Basic dGVzdHBkcDphbHBoYTEyMw==

-ENVIRONMENT = TEST

-X_ECOMP_REQUESTID = 1234567h

-ECOMP_COMPONENT_NAME = MSO

+HOST = https://localhost:8081/pdp/api/getDecision
+CLIENT_AUTH = Basic bTAzNzQzOnBvbGljeVIwY2sk
+AUTHORIZATION = Basic dGVzdHBkcDphbHBoYTEyMw==
+ENVIRONMENT = TEST
+X_ECOMP_REQUESTID = 1234567h
+ECOMP_COMPONENT_NAME = MSO
 ssl.key.store.password.key = javax.net.ssl.keyStorePassword
\ No newline at end of file
diff --git a/common/src/main/resources/dmaap/default-consumer.properties b/common/src/main/resources/dmaap/default-consumer.properties
index 4d2ecce..f19b642 100644
--- a/common/src/main/resources/dmaap/default-consumer.properties
+++ b/common/src/main/resources/dmaap/default-consumer.properties
@@ -10,7 +10,7 @@
 Protocol=http
 MethodType=GET
 contenttype=application/json
-host=http://olsd005.wnsnet.attws.com:3904
+host=http://localhost:3904
 partition=MSO
 maxBatchSize=100
 maxAgeMs=250
diff --git a/common/src/main/resources/dmaap/default-publisher.properties b/common/src/main/resources/dmaap/default-publisher.properties
index af1b481..6d9be75 100644
--- a/common/src/main/resources/dmaap/default-publisher.properties
+++ b/common/src/main/resources/dmaap/default-publisher.properties
@@ -10,7 +10,7 @@
 Protocol=http
 MethodType=POST
 contenttype=application/json
-host=http://olsd005.wnsnet.attws.com:3904
+host=http://localhost:3904
 partition=MSO
 maxBatchSize=100
 maxAgeMs=250
diff --git a/common/src/main/resources/test b/common/src/main/resources/test
new file mode 100644
index 0000000..7a8e433
--- /dev/null
+++ b/common/src/main/resources/test
@@ -0,0 +1,159 @@
+
+   1 <configuration debug="false" scan="true" scanPeriod="3 seconds">
+   2     <!--<jmxConfigurator /> -->
+   3     <!-- directory path for all other type logs -->
+   4     <property name="logDir" value="/var/log/onap" />
+   5     <property name="componentName" value="logging-demo"></property>
+   6     <property name="subComponentName" value="demo"></property>
+   7     <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />   8    
+   9     <property name="generalLogName" value="error" />
+  10     <property name="metricsLogName" value="metric" />
+  11     <property name="auditLogName" value="audit" />
+  12     <property name="debugLogName" value="debug" />
+  13     <property name="queueSize" value="256" />
+  14     <property name="maxFileSize" value="50MB" />
+  15     <property name="maxHistory" value="30" />
+  16     <property name="totalSizeCap" value="10GB" />
+  17     <property name="pattern" value="%nopexception%logger|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%level|%replace(%replace(%replace(%message){'\t','\\\\t'}){'\n','\\\\n'}){'|','\\\\|'}|%replace(%replace(%replace(%mdc){'\t','\\\\t'}){'\n','\\\\n'}){'|','\\\\|'}|%replace(%replace(%replace(%rootException){'\t','\\\\t'}){'\n','\\\\n'}){'|','\\\\|'}|%replace(%replace(%replace(%marker){'\t','\\\\t'}){'\n','\\\\n'}){'|','\\\\|'}|%thread|%n"/>
+  18     <!-- Example evaluator filter applied against console appender -->
+  19     <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
+  20         <encoder>
+  21             <pattern>${pattern}</pattern>
+  22         </encoder>
+  23     </appender>
+  24     <!-- ============================================================================ -->
+  25     <!-- EELF Appenders -->
+  26     <!-- ============================================================================ -->
+  27     <!-- The EELFAppender is used to record events to the general application 
+  28                 log -->
+  29     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">
+  30         <file>${logDirectory}/${generalLogName}.log</file>
+  31         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+  32             <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+  33             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+  34                 <maxFileSize>${maxFileSize}</maxFileSize>
+  35             </timeBasedFileNamingAndTriggeringPolicy>
+  36             <maxHistory>${maxHistory}</maxHistory>
+  37             <totalSizeCap>${totalSizeCap}</totalSizeCap>
+  38         </rollingPolicy>
+  39         <encoder>
+  40             <pattern>${pattern}</pattern>
+  41         </encoder>
+  42     </appender>
+  43     <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">
+  44         <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+  45         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+  46             <level>INFO</level>
+  47         </filter>
+  48         <queueSize>${queueSize}</queueSize>
+  49         <appender-ref ref="EELF" />
+  50     </appender>
+  51     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">
+  52         <file>${logDirectory}/${auditLogName}.log</file>
+  53         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+  54             <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+  55             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+  56                 <maxFileSize>${maxFileSize}</maxFileSize>
+  57             </timeBasedFileNamingAndTriggeringPolicy>
+  58             <maxHistory>${maxHistory}</maxHistory>
+  59             <totalSizeCap>${totalSizeCap}</totalSizeCap>
+  60         </rollingPolicy>
+  61         <encoder>
+  62             <pattern>${pattern}</pattern>
+  63         </encoder>
+  64     </appender>
+  65     <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">
+  66         <queueSize>${queueSize}</queueSize>
+  67         <appender-ref ref="EELFAudit" />
+  68     </appender>
+  69     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">
+  70         <file>${logDirectory}/${metricsLogName}.log</file>
+  71         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+  72             <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+  73             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+  74                 <maxFileSize>${maxFileSize}</maxFileSize>
+  75             </timeBasedFileNamingAndTriggeringPolicy>
+  76             <maxHistory>${maxHistory}</maxHistory>
+  77             <totalSizeCap>${totalSizeCap}</totalSizeCap>
+  78         </rollingPolicy>
+  79         <encoder>
+  80             <pattern>${pattern}</pattern>
+  81         </encoder>
+  82     </appender>
+  83     <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">
+  84         <queueSize>${queueSize}</queueSize>
+  85         <appender-ref ref="EELFMetrics" />
+  86     </appender>
+  87     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">
+  88         <file>${logDirectory}/${debugLogName}.log</file>
+  89         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+  90             <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+  91             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+  92                 <maxFileSize>${maxFileSize}</maxFileSize>
+  93             </timeBasedFileNamingAndTriggeringPolicy>
+  94             <maxHistory>${maxHistory}</maxHistory>
+  95             <totalSizeCap>${totalSizeCap}</totalSizeCap>
+  96         </rollingPolicy>
+  97         <encoder>
+  98             <pattern>${pattern}</pattern>
+  99         </encoder>
+ 100     </appender>
+ 101     <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">
+ 102         <queueSize>${queueSize}</queueSize>
+ 103         <appender-ref ref="EELFDebug" />
+ 104         <includeCallerData>true</includeCallerData>
+ 105     </appender>
+ 106     <!-- ============================================================================ -->
+ 107     <!-- EELF loggers -->
+ 108     <!-- ============================================================================ -->
+ 109     <logger additivity="false" level="info" name="com.att.eelf">
+ 110         <appender-ref ref="asyncEELF" />
+ 111         <appender-ref ref="asyncEELFDebug" />
+ 112     </logger>
+ 113     <logger additivity="false" level="info" name="com.att.eelf.security">
+ 114         <appender-ref ref="asyncEELFSecurity" />
+ 115     </logger>
+ 116     <logger additivity="false" level="info" name="com.att.eelf.perf">
+ 117         <appender-ref ref="asyncEELFPerformance" />
+ 118     </logger>
+ 119     <logger additivity="false" level="info" name="com.att.eelf.server">
+ 120         <appender-ref ref="asyncEELFServer" />
+ 121     </logger>
+ 122     <logger additivity="false" level="info" name="com.att.eelf.policy">
+ 123         <appender-ref ref="asyncEELFPolicy" />
+ 124     </logger>
+ 125     <logger additivity="false" level="info" name="com.att.eelf.audit">
+ 126         <appender-ref ref="asyncEELFAudit" />
+ 127     </logger>
+ 128     <logger additivity="false" level="info" name="com.att.eelf.metrics">
+ 129         <appender-ref ref="asyncEELFMetrics" />
+ 130     </logger>
+ 131     <!-- Spring related loggers -->
+ 132     <logger level="WARN" name="org.springframework" />
+ 133     <logger level="WARN" name="org.springframework.beans" />
+ 134     <logger level="WARN" name="org.springframework.web" />
+ 135     <logger level="WARN" name="com.blog.spring.jms" />
+ 136     <logger level="INFO" name="com.att" />
+ 137     <!-- Other Loggers that may help troubleshoot -->
+ 138     <logger level="WARN" name="net.sf" />
+ 139     <logger level="WARN" name="org.apache.commons.httpclient" />
+ 140     <logger level="WARN" name="org.apache.commons" />
+ 141     <logger level="WARN" name="org.apache.coyote" />
+ 142     <logger level="WARN" name="org.apache.jasper" />
+ 143     <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. 
+ 144                 May aid in troubleshooting) -->
+ 145     <logger level="WARN" name="org.apache.camel" />
+ 146     <logger level="WARN" name="org.apache.cxf" />
+ 147     <logger level="WARN" name="org.apache.camel.processor.interceptor" />
+ 148     <logger level="WARN" name="org.apache.cxf.jaxrs.interceptor" />
+ 149     <logger level="WARN" name="org.apache.cxf.service" />
+ 150     <logger level="WARN" name="org.restlet" />
+ 151     <logger level="WARN" name="org.apache.camel.component.restlet" />
+ 152     <!-- logback internals logging -->
+ 153     <logger level="WARN" name="ch.qos.logback.classic" />
+ 154     <logger level="WARN" name="ch.qos.logback.core" />
+ 155     <root>
+ 156         <appender-ref ref="asyncEELF" />
+ 157         <!-- <appender-ref ref="asyncEELFDebug" /> -->
+ 158     </root>
+ 159 </configuration>
diff --git a/common/src/test/java/org/onap/so/BeansTest.java b/common/src/test/java/org/onap/so/BeansTest.java
new file mode 100644
index 0000000..2e825cf
--- /dev/null
+++ b/common/src/test/java/org/onap/so/BeansTest.java
@@ -0,0 +1,97 @@
+/*-
+ * ============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;
+
+import static org.hamcrest.CoreMatchers.allOf;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.onap.so.openpojo.rules.HasAnnotationMatcher.hasAnnotation;
+import static org.onap.so.openpojo.rules.HasAnnotationPropertyWithValueMatcher.hasAnnotationPropertyWithValue;
+
+import javax.persistence.Column;
+import javax.persistence.Temporal;
+
+import org.junit.Test;
+import org.onap.so.openpojo.rules.CustomSetterMustExistRule;
+import org.onap.so.openpojo.rules.EqualsAndHashCodeTester;
+import org.onap.so.openpojo.rules.HasEqualsAndHashCodeRule;
+import org.onap.so.openpojo.rules.HasToStringRule;
+import org.onap.so.openpojo.rules.ToStringTester;
+
+import com.openpojo.reflection.PojoClass;
+import com.openpojo.reflection.PojoClassFilter;
+import com.openpojo.reflection.filters.FilterEnum;
+import com.openpojo.reflection.filters.FilterNonConcrete;
+import com.openpojo.reflection.filters.FilterPackageInfo;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.rule.impl.BusinessKeyMustExistRule;
+import com.openpojo.validation.rule.impl.GetterMustExistRule;
+import com.openpojo.validation.rule.impl.NoNestedClassRule;
+import com.openpojo.validation.rule.impl.NoPrimitivesRule;
+import com.openpojo.validation.rule.impl.NoPublicFieldsExceptStaticFinalRule;
+import com.openpojo.validation.rule.impl.NoStaticExceptFinalRule;
+import com.openpojo.validation.rule.impl.SerializableMustHaveSerialVersionUIDRule;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+
+
+public class BeansTest {
+
+	private PojoClassFilter filterTestClasses = new FilterTestClasses();
+	
+	private PojoClassFilter  enumFilter = new FilterEnum();
+	
+	
+
+	@Test
+	public void pojoStructure() {	
+		test("org.onap.so.client.aai.objects");	
+		test("org.onap.so.client.policy.entities");
+		test("org.onap.so.client.grm.beans");
+		test("org.onap.so.client.ruby.beans");
+		test("org.onap.so.client.sdno.beans");
+		test("org.onap.so.entity");
+		test("org.onap.so.serviceinstancebeans");
+	}
+
+	private void test(String pojoPackage) {
+		Validator validator = ValidatorBuilder.create()
+				.with(new GetterMustExistRule())
+			    .with(new NoNestedClassRule())
+			    .with(new NoStaticExceptFinalRule())
+			    .with(new SerializableMustHaveSerialVersionUIDRule())								
+			    .with(new NoPublicFieldsExceptStaticFinalRule())			 
+				.with(new SetterTester())
+				.with(new GetterTester())
+				
+				
+			     
+				.build();
+		
+	
+		validator.validate(pojoPackage, new FilterPackageInfo(), filterTestClasses,enumFilter,new FilterNonConcrete());
+	}
+	private static class FilterTestClasses implements PojoClassFilter {
+		public boolean include(PojoClass pojoClass) {
+			return !pojoClass.getSourcePath().contains("/test-classes/");
+		}
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java b/common/src/test/java/org/onap/so/adapter_utils/tests/CryptoTest.java
similarity index 91%
rename from common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java
rename to common/src/test/java/org/onap/so/adapter_utils/tests/CryptoTest.java
index 3415420..15368f9 100644
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java
+++ b/common/src/test/java/org/onap/so/adapter_utils/tests/CryptoTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.adapter_utils.tests;
+package org.onap.so.adapter_utils.tests;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -30,7 +30,7 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import org.openecomp.mso.utils.CryptoUtils;
+import org.onap.so.utils.CryptoUtils;
 
 /**
  * This class implements all test methods of the CryptoUtils features.
@@ -74,6 +74,10 @@
     	 assertEquals(encodeString,encode2String);
     	 
     	 assertEquals(CryptoUtils.decrypt(encodeString, testKey),CryptoUtils.decrypt(encode2String, testKey));
+    	 
+    	 encodeString = CryptoUtils.encryptCloudConfigPassword(testData);
+    	 
+    	 assertEquals(testData, CryptoUtils.decryptCloudConfigPassword(encodeString));
     }
 
 }
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java b/common/src/test/java/org/onap/so/adapter_utils/tests/MsoAlarmLoggerTest.java
similarity index 77%
rename from common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java
rename to common/src/test/java/org/onap/so/adapter_utils/tests/MsoAlarmLoggerTest.java
index f7d27ac..6756bc9 100644
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java
+++ b/common/src/test/java/org/onap/so/adapter_utils/tests/MsoAlarmLoggerTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.adapter_utils.tests;
+package org.onap.so.adapter_utils.tests;
 
 
 import static org.junit.Assert.assertNull;
@@ -31,40 +31,43 @@
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.onap.so.logger.MsoAlarmLogger;
 
-import org.openecomp.mso.logger.MsoAlarmLogger;
-import org.openecomp.mso.properties.MsoJavaProperties;
-import org.openecomp.mso.properties.MsoPropertiesException;
-import org.openecomp.mso.properties.MsoPropertiesFactory;
 
 /**
  * This junit test very roughly the alarm logger
  *
  */
 public class MsoAlarmLoggerTest {
-
-	public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+	
 	public static MsoAlarmLogger msoAlarmLogger;
 
 	@BeforeClass
-	public static final void createObjects() throws MsoPropertiesException
+	public static final void createObjects() throws IOException
 	{
 	
-		File outputFile = new File ("target/alarm-test.log");
+		File outputFile = new File ("./target/alarm-test.log");
 		if (outputFile.exists()) {
 			outputFile.delete();
+		} else {
+			outputFile.createNewFile();
 		}
-		msoAlarmLogger = new MsoAlarmLogger("target/alarm-test.log");
+		msoAlarmLogger = new MsoAlarmLogger("./target/alarm-test.log");
 	}
 
+	@AfterClass
+	public static void tearDown() {
+		msoAlarmLogger.resetAppender();
+	}
 	@Test
-	public void testAlarmConfig() throws MsoPropertiesException, IOException {
+	public void testAlarmConfig() throws IOException {
 
 		msoAlarmLogger.sendAlarm("test", 0, "detail message");
 
-		FileInputStream inputStream = new FileInputStream("target/alarm-test.log");
+		FileInputStream inputStream = new FileInputStream("./target/alarm-test.log");
 		BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
 
 		String line = reader.readLine();
@@ -80,7 +83,7 @@
 		inputStream.close();
 
 		// Reset the file for others tests
-		PrintWriter writer = new PrintWriter(new File("target/alarm-test.log"));
+		PrintWriter writer = new PrintWriter(new File("./target/alarm-test.log"));
 		writer.print("");
 		writer.close();
 
@@ -93,7 +96,7 @@
 		msoAlarmLogger.sendAlarm("test2", 1, "detail message2");
 		msoAlarmLogger.sendAlarm("test3", 2, "detail message3");
 
-		FileInputStream inputStream = new FileInputStream("target/alarm-test.log");
+		FileInputStream inputStream = new FileInputStream("./target/alarm-test.log");
 		BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
 
 		String line = reader.readLine();
@@ -123,7 +126,7 @@
 		inputStream.close();
 
 		// Reset the file for others tests
-		PrintWriter writer = new PrintWriter(new File("target/alarm-test.log"));
+		PrintWriter writer = new PrintWriter(new File("./target/alarm-test.log"));
 		writer.print("");
 		writer.close();
 
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java b/common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java
similarity index 97%
rename from common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java
rename to common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java
index 6ac7002..29ac91c 100644
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java
+++ b/common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java
@@ -18,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.adapter_utils.tests;
+package org.onap.so.adapter_utils.tests;
 
-import org.openecomp.mso.entity.MsoRequest;
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-import org.openecomp.mso.logger.MsoLogger.ErrorCode;
+import org.onap.so.entity.MsoRequest;
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+import org.onap.so.logger.MsoLogger.ErrorCode;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -50,7 +50,7 @@
  */
 public class MsoLoggerTest {
 
-	static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+	static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, MsoLoggerTest.class);
 
 	/**
 	 * This method is called before any test occurs. It creates a fake tree from
diff --git a/common/src/test/java/org/onap/so/client/RestClientTest.java b/common/src/test/java/org/onap/so/client/RestClientTest.java
new file mode 100644
index 0000000..1443f04
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/RestClientTest.java
@@ -0,0 +1,87 @@
+/*-
+ * ============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.client;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.UriBuilder;
+import javax.ws.rs.core.UriBuilderException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.so.utils.TargetEntity;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RestClientTest {
+
+	
+	@Mock
+	private RestProperties props;
+	
+	
+	@Test
+	public void retries() throws Exception {
+		RestClient spy = buildSpy();
+		RestRequest mockCallable = mock(RestRequest.class);
+		when(mockCallable.call()).thenThrow(new WebApplicationException(new SocketTimeoutException()));
+		doReturn(mockCallable).when(spy).buildRequest(any(String.class), any(Object.class));
+		try {
+			spy.get();
+		} catch (Exception e) {
+			//we expect an exception, ignore it
+		}
+		verify(mockCallable, times(3)).call();
+		
+	}
+	
+	@Test
+	public void exceptionDoNotRetry() throws Exception {
+		RestClient spy = buildSpy();
+		RestRequest mockCallable = mock(RestRequest.class);
+		when(mockCallable.call()).thenThrow(new WebApplicationException(new NotFoundException()));
+		doReturn(mockCallable).when(spy).buildRequest(any(String.class), any(Object.class));
+		try {
+			spy.get();
+		} catch (Exception e) {
+			//we expect an exception, ignore it
+		}
+		verify(mockCallable, times(1)).call();
+		
+	}
+	private RestClient buildSpy() throws MalformedURLException, IllegalArgumentException, UriBuilderException {
+		RestClient client = new HttpClient(UriBuilder.fromUri("http://localhost/test").build().toURL(), "application/json", TargetEntity.BPMN);
+		
+		return spy(client);
+	}
+}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIClientResponseExceptionMapperTest.java b/common/src/test/java/org/onap/so/client/aai/AAIClientResponseExceptionMapperTest.java
new file mode 100644
index 0000000..981a4dd
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIClientResponseExceptionMapperTest.java
@@ -0,0 +1,70 @@
+/*-
+ * ============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.client.aai;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.so.client.aai.entities.AAIError;
+import org.onap.so.client.aai.entities.RequestError;
+import org.onap.so.client.aai.entities.ServiceException;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class AAIClientResponseExceptionMapperTest {
+
+	AAIClientResponseExceptionMapper mapper;
+	String errorMsg;
+	
+	@Before
+	public void before() {
+		mapper = new AAIClientResponseExceptionMapper();
+		errorMsg = "Error calling A&AI. Request-Id=" + mapper.getRequestId() + " ";
+	}
+	
+	@Test
+	public void testExtractMessageWithEntity() throws JsonProcessingException {	
+		ServiceException svcException = new ServiceException();
+		svcException.setText("test %1 message - %2");
+		svcException.setVariables(Arrays.asList("error", "service exception %1 test"));
+		
+		RequestError requestError = new RequestError();
+		requestError.setServiceException(svcException);
+		
+		AAIError error = new AAIError();
+		error.setRequestError(requestError);
+		
+		ObjectMapper objMapper = new ObjectMapper();
+		String strRequestError = objMapper.writeValueAsString(error);
+
+		assertEquals(errorMsg + "test error message - service exception error test", mapper.extractMessage(strRequestError).get());
+	}
+	
+	@Test
+	public void testExtractMessageWithoutEntity() {
+		assertEquals(errorMsg, mapper.extractMessage("").get());
+	}
+}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIConfigurationClientTest.java b/common/src/test/java/org/onap/so/client/aai/AAIConfigurationClientTest.java
new file mode 100644
index 0000000..4041001
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIConfigurationClientTest.java
@@ -0,0 +1,181 @@
+/*-
+ * ============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.client.aai;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.isA;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.util.Optional;
+import java.util.UUID;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.so.client.aai.entities.Configuration;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.serviceinstancebeans.ModelInfo;
+import org.onap.so.serviceinstancebeans.RequestDetails;
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
+@RunWith(MockitoJUnitRunner.class) 
+public class AAIConfigurationClientTest {
+
+	@Rule
+	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
+	
+	@Mock
+	AAIResourcesClient aaiClient;
+	
+	@InjectMocks
+	AAIConfigurationClient aaiConfigurationClient = new AAIConfigurationClient();
+
+	@Test
+	public void verifyCreate() {		
+		ModelInfo modelInfo = new ModelInfo();
+		modelInfo.setModelInvariantId("testInvariantID");
+		modelInfo.setModelVersionId("testVersionID");
+		modelInfo.setModelCustomizationId("testCustomizationID");
+		
+		RequestDetails requestDetails = new RequestDetails();
+		requestDetails.setModelInfo(modelInfo);
+		
+		String configurationId = UUID.randomUUID().toString();
+		String configurationType = "test";
+		String configurationSubType = "test";
+
+		// Test Create Configuration
+		doNothing().when(aaiClient).create(isA(AAIResourceUri.class), isA(Object.class));
+		aaiConfigurationClient.createConfiguration(requestDetails, configurationId, configurationType, configurationSubType);	
+		verify(aaiClient, times(1)).create(isA(AAIResourceUri.class), isA(Object.class));
+	}
+	
+	@Test
+	public void verifyConfigurePayload() {		
+		ModelInfo modelInfo = new ModelInfo();
+		modelInfo.setModelInvariantId("testInvariantID");
+		modelInfo.setModelVersionId("testVersionID");
+		modelInfo.setModelCustomizationId("testCustomizationID");
+		
+		RequestDetails requestDetails = new RequestDetails();
+		requestDetails.setModelInfo(modelInfo);
+		
+		String configurationId = UUID.randomUUID().toString();
+		String configurationType = "test";
+		String configurationSubType = "test";
+		AAIResourceUri uri = aaiConfigurationClient.getConfigurationURI(configurationId);
+		
+		Configuration payload = aaiConfigurationClient.configurePayload(requestDetails, configurationId, configurationType, configurationSubType);	
+		
+		assertEquals(configurationId, payload.getConfigurationId());
+		assertEquals(configurationType, payload.getConfigurationType());
+		assertEquals(configurationSubType, payload.getConfigurationSubType());
+		assertEquals(uri.build().getPath(), payload.getConfigurationSelflink());
+		assertEquals("PreCreated", payload.getOrchestrationStatus());
+		assertEquals("", payload.getOperationalStatus());		
+		assertEquals(modelInfo.getModelVersionId(), payload.getModelVersionId());
+		assertEquals(modelInfo.getModelInvariantId(), payload.getModelInvariantId());
+		assertEquals(modelInfo.getModelCustomizationId(), payload.getModelCustomizationId());
+	}
+	
+	@Test
+	public void testDeleteConfiguration() {
+		String uuid = UUID.randomUUID().toString();
+		doNothing().when(aaiClient).delete(isA(AAIResourceUri.class));
+		aaiConfigurationClient.deleteConfiguration(uuid);
+		verify(aaiClient, times(1)).delete(aaiConfigurationClient.getConfigurationURI(uuid));		
+	}
+
+	@Test
+	public void testUpdateOrchestrationStatus() {
+		String uuid = UUID.randomUUID().toString();
+		doNothing().when(aaiClient).update(isA(AAIResourceUri.class), isA(Object.class));
+		aaiConfigurationClient.updateOrchestrationStatus(uuid, "testPayload");
+		verify(aaiClient, times(1)).update(aaiConfigurationClient.getConfigurationURI(uuid), "testPayload");
+	}
+	
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testGetConfiguration() {
+		String uuid = UUID.randomUUID().toString();
+		Optional<Configuration> expectedConfiguration = Optional.of(new Configuration());
+		expectedConfiguration.get().setConfigurationId(uuid);
+		
+		doReturn(expectedConfiguration).when(aaiClient).get(isA(Class.class), isA(AAIResourceUri.class));
+		Configuration actualConfiguration = aaiConfigurationClient.getConfiguration(uuid);
+		verify(aaiClient, times(1)).get(Configuration.class, aaiConfigurationClient.getConfigurationURI(uuid));
+		assertEquals(expectedConfiguration.get(), actualConfiguration);
+	}
+
+	@Test
+	public void testConfigurationExists() {
+		String uuid = UUID.randomUUID().toString();
+		AAIResourceUri uri = aaiConfigurationClient.getConfigurationURI(uuid);
+		boolean expectedResult;
+		boolean actualResult;
+		
+		expectedResult = true;
+		doReturn(expectedResult).when(aaiClient).exists(isA(AAIResourceUri.class));
+		actualResult = aaiConfigurationClient.configurationExists(uuid);
+		assertEquals(expectedResult, actualResult);
+		
+		expectedResult = false;
+		doReturn(expectedResult).when(aaiClient).exists(isA(AAIResourceUri.class));
+		actualResult = aaiConfigurationClient.configurationExists(uuid);
+		assertEquals(expectedResult, actualResult);
+		
+		verify(aaiClient, times(2)).exists(uri);
+	}
+
+	@Test
+	public void testGetConfigurationURI() {
+		String uuid = UUID.randomUUID().toString();
+		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, uuid);
+		assertEquals(uri, aaiConfigurationClient.getConfigurationURI(uuid));
+	}
+	
+	@Test
+	public void verifyNotExists() {
+		AAIUri path = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "test2");
+		wireMockRule.stubFor(get(
+				urlMatching("/aai/v[0-9]+" + path.build() + ".*"))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "text/plain")
+					.withBody("hello")
+					.withStatus(404)));
+		boolean result = aaiConfigurationClient.configurationExists("test2");
+		assertEquals("path not found", false, result);
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIExceptionMapperTest.java b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
similarity index 60%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIExceptionMapperTest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
index 625e281..bea927a 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIExceptionMapperTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIErrorFormatterTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,9 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -30,9 +31,11 @@
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.openecomp.mso.client.aai.entities.AAIError;
+import org.onap.so.client.aai.entities.AAIError;
+import org.onap.so.client.aai.entities.RequestError;
+import org.onap.so.client.aai.entities.ServiceException;
 
-public class AAIExceptionMapperTest {
+public class AAIErrorFormatterTest {
 
 	@Mock private AAIError errorObj;
 	
@@ -41,7 +44,7 @@
 		MockitoAnnotations.initMocks(this);
 	}
 	@Test
-	public void nestedReplace() {
+	public void testFillInTemplateWithReplace() {
 		String error = "Error %1 on %2";
 		List<String> list = Arrays.asList("PUT", "hello %1");
 		AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
@@ -51,13 +54,35 @@
 	}
 	
 	@Test
-	public void noReplace() {
+	public void testFillInTemplateWithoutReplace() {
 		String error = "Error";
 		List<String> list = new ArrayList<>();
 		AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
 		String result = formatter.fillInTemplate(error, list);
 		assertEquals("equal", "Error", result);
-		
 	}
 	
+	@Test
+	public void testGetMessage() {
+		ServiceException svcException = new ServiceException();
+		svcException.setText("test %1 message - %2");
+		svcException.setVariables(Arrays.asList("error", "service exception %1 test"));
+		
+		RequestError requestError = new RequestError();
+		requestError.setServiceException(svcException);
+		
+		doReturn(requestError).when(errorObj).getRequestError();
+		
+		AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
+		String result = formatter.getMessage();
+		assertEquals("equal", "test error message - service exception error test", result);
+	}
+	
+	@Test
+	public void testGetMessageNoParsable() {
+		errorObj.setRequestError(null);
+		AAIErrorFormatter formatter = new AAIErrorFormatter(errorObj);
+		String result = formatter.getMessage();
+		assertEquals("equal", "no parsable error message found", result);
+	}
 }
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIObjectTypeTest.java b/common/src/test/java/org/onap/so/client/aai/AAIObjectTypeTest.java
similarity index 69%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIObjectTypeTest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIObjectTypeTest.java
index c8f6299..ce90ccd 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIObjectTypeTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIObjectTypeTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
 
 import org.junit.Test;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 
 public class AAIObjectTypeTest {
 
@@ -36,4 +38,18 @@
 	public void verifyRegularCase() {
 		assertEquals("default removed for tenant", "allotted-resource", AAIObjectType.ALLOTTED_RESOURCE.typeName());
 	}
+	
+	@Test
+	public void instanceGroupObjectTypeTest() {
+		final String id = "test1";
+		AAIUri aaiUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, id);
+		assertEquals("/network/instance-groups/instance-group/test1", aaiUri.build().toString());
+	}
+	
+	@Test
+	public void collectionObjectTypeTest() {
+		final String id = "test1";
+		AAIUri aaiUri = AAIUriFactory.createResourceUri(AAIObjectType.COLLECTION, id);
+		assertEquals("/network/collections/collection/test1", aaiUri.build().toString());
+	}
 }
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIPServerTest.java b/common/src/test/java/org/onap/so/client/aai/AAIPServerTest.java
similarity index 97%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIPServerTest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIPServerTest.java
index b6b01b3..1e2e747 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIPServerTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIPServerTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIQueryClientTest.java b/common/src/test/java/org/onap/so/client/aai/AAIQueryClientTest.java
new file mode 100644
index 0000000..6e9c385
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIQueryClientTest.java
@@ -0,0 +1,93 @@
+/*-
+ * ============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.client.aai;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isA;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.ws.rs.core.Response;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.so.client.RestClient;
+import org.onap.so.client.aai.entities.CustomQuery;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.Format;
+
+
+@RunWith(MockitoJUnitRunner.class) 
+public class AAIQueryClientTest {
+	
+	@Mock
+	Response response;
+	
+	@Mock
+	RestClient restClient;
+	
+	@Spy
+	AAIQueryClient aaiQueryClient = new AAIQueryClient();
+	
+	@Test
+	public void testQuery() {
+		List<AAIResourceUri> uris = Arrays.asList(AAIUriFactory.createResourceUri(AAIObjectType.CUSTOM_QUERY));
+		
+		Format format = Format.SIMPLE;
+		CustomQuery query = new CustomQuery(uris);
+		
+		doReturn(restClient).when(aaiQueryClient).createClient(isA(AAIUri.class));
+		aaiQueryClient.query(format, query);
+		verify(aaiQueryClient, times(1)).createClient(AAIUriFactory.createResourceUri(AAIObjectType.CUSTOM_QUERY).queryParam("format", format.toString()));
+		verify(restClient, times(1)).put(query, String.class);
+	}
+	
+	@Test
+	public void testCreateClient() {
+		String depth = "testDepth";
+		AAISubgraphType subgraph = AAISubgraphType.STAR;
+		
+		aaiQueryClient.depth(depth);
+		aaiQueryClient.nodesOnly();
+		aaiQueryClient.subgraph(subgraph);
+		
+		AAIUri aaiUri = spy(AAIUriFactory.createResourceUri(AAIObjectType.CUSTOM_QUERY));
+		doReturn(aaiUri).when(aaiUri).clone();
+		aaiQueryClient.setupQueryParams(aaiUri);
+		
+		verify(aaiUri, times(1)).queryParam("depth", depth);
+		verify(aaiUri, times(1)).queryParam("nodesOnly", "");
+		verify(aaiUri, times(1)).queryParam("subgraph", subgraph.toString());
+	}
+}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIResourcesClientTest.java b/common/src/test/java/org/onap/so/client/aai/AAIResourcesClientTest.java
new file mode 100644
index 0000000..63f8f65
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIResourcesClientTest.java
@@ -0,0 +1,191 @@
+/*-
+ * ============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.client.aai;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onap.so.client.aai.entities.AAIResultWrapper;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.defaultproperties.DefaultAAIPropertiesImpl;
+
+import com.github.tomakehurst.wiremock.admin.NotFoundException;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
+public class AAIResourcesClientTest {
+
+
+	@Rule
+	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
+	
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+	
+	@Test
+	public void verifyNotExists() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
+		wireMockRule.stubFor(get(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "text/plain")
+					.withBody("hello")
+					.withStatus(404)));
+		AAIResourcesClient client= createClient();
+		boolean result = client.exists(path);
+		assertEquals("path not found", false, result);
+	}
+	
+	@Test
+	public void verifyDelete() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
+		wireMockRule.stubFor(get(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "application/json")
+					.withBodyFile("aai/resources/mockObject.json")
+					.withStatus(200)));
+		wireMockRule.stubFor(delete(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.withQueryParam("resource-version", equalTo("1234"))
+				.willReturn(
+					aResponse()
+					.withStatus(204)));
+		AAIResourcesClient client= createClient();
+		client.delete(path);
+	}
+	
+	@Test
+	public void verifyBasicAuth() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
+		wireMockRule.stubFor(get(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString()))
+				.withHeader("Authorization", equalTo("Basic TVNPOk1TTw=="))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "application/json")
+					.withBodyFile("aai/resources/mockObject.json")
+					.withStatus(200)));
+		AAIResourcesClient client= createClient();
+		client.get(path);
+	}
+	
+	@Test
+	public void verifyConnect() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
+		AAIResourceUri path2 = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
+		wireMockRule.stubFor(put(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build() + "/relationship-list/relationship"))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "application/json")
+					.withStatus(200)));
+		
+		AAIResourceUri pathClone = path.clone();
+		AAIResourcesClient client= createClient();
+		client.connect(path, path2);
+		assertEquals("uri not modified", pathClone.build().toString(), path.build().toString());
+	}
+	
+	@Test
+	public void verifyDisconnect() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
+		AAIResourceUri path2 = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
+		
+		wireMockRule.stubFor(post(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build() + "/relationship-list/relationship"))
+				.willReturn(
+					aResponse()
+					.withStatus(204)));
+		
+		AAIResourceUri pathClone = path.clone();
+		AAIResourcesClient client= createClient();
+		client.disconnect(path, path2);
+		assertEquals("uri not modified", pathClone.build().toString(), path.build().toString());
+	}
+	
+	@Test
+	public void verifyPatch() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
+		
+		wireMockRule.stubFor(post(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.willReturn(
+					aResponse()
+					.withStatus(200)));
+		
+		AAIResourcesClient client= createClient();
+
+		client.update(path, "{}");
+	}
+	
+	@Test
+	public void verifyNotExistsGet() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
+		wireMockRule.stubFor(get(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "text/plain")
+					.withBody("hello")
+					.withStatus(404)));
+		AAIResourcesClient client= createClient();
+		AAIResultWrapper result = client.get(path);
+		assertEquals("is empty", true, result.isEmpty());
+	}
+	
+	@Test
+	public void verifyNotExistsGetException() {
+		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
+		wireMockRule.stubFor(get(
+				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+				.willReturn(
+					aResponse()
+					.withHeader("Content-Type", "text/plain")
+					.withBody("hello")
+					.withStatus(404)));
+		AAIResourcesClient client= createClient();
+		thrown.expect(NotFoundException.class);
+		thrown.expectMessage(containsString(path.build() + " not found in A&AI"));
+		AAIResultWrapper result = client.get(path, NotFoundException.class);
+	}
+	
+	private AAIResourcesClient createClient() {
+		AAIResourcesClient client = spy(new AAIResourcesClient());
+		doReturn(new DefaultAAIPropertiesImpl()).when(client).getRestProperties();
+		return client;
+	}
+}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIRestClientTest.java b/common/src/test/java/org/onap/so/client/aai/AAIRestClientTest.java
new file mode 100644
index 0000000..f2e371c
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIRestClientTest.java
@@ -0,0 +1,124 @@
+/*-
+ * ============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.client.aai;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+
+import javax.ws.rs.core.Response;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryPatchDepthExceededException;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AAIRestClientTest {
+
+	@Mock
+	private AAIProperties props;
+	
+	private ObjectMapper mapper = new AAICommonObjectMapperProvider().getMapper();
+	
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+	
+	@Test
+	public void convertObjectToPatchFormatTest() throws URISyntaxException, JsonParseException, JsonMappingException, IOException {
+		AAIRestClient client = new AAIRestClient(props, new URI(""));
+		GenericVnf vnf = new GenericVnf();
+		vnf.setIpv4Loopback0Address("");
+		String result = client.convertObjectToPatchFormat(vnf);
+		GenericVnf resultObj = mapper.readValue(result.toString(), GenericVnf.class);
+		assertTrue("expect object to become a String to prevent double marshalling", result instanceof String);
+		assertNull("expect null because of custom mapper", resultObj.getIpv4Loopback0Address());
+		
+	}
+	
+	@Test
+	public void convertStringToPatchFormatTest() throws URISyntaxException, JsonParseException, JsonMappingException, IOException {
+		AAIRestClient client = new AAIRestClient(props, new URI(""));
+		String payload = "{\"ipv4-loopback0-address\":\"\"}";
+		String result = client.convertObjectToPatchFormat(payload);
+		
+		assertEquals("expect no change", payload, result);
+	}
+	
+	@Test
+	public void convertMapToPatchFormatTest() throws URISyntaxException, JsonParseException, JsonMappingException, IOException {
+		AAIRestClient client = new AAIRestClient(props, new URI(""));
+		HashMap<String, String> map = new HashMap<>();
+		map.put("ipv4-loopback0-address", "");
+		String result = client.convertObjectToPatchFormat(map);
+		
+		assertEquals("expect string", "{\"ipv4-loopback0-address\":\"\"}", result);
+	}
+	
+	@Test
+	public void failPatchOnComplexObject() throws URISyntaxException {
+		AAIRestClient client = new AAIRestClient(props, new URI(""));
+		this.thrown.expect(GraphInventoryPatchDepthExceededException.class); 
+		this.thrown.expectMessage(containsString("Object exceeds allowed depth for update action"));
+		client.patch("{ \"hello\" : \"world\", \"nestedSimple\" : [\"value1\" , \"value2\"], \"relationship-list\" : [{\"key\" : \"value\"}], \"nested\" : { \"key\" : \"value\" }}");
+
+	}
+	
+	@Test
+	public void hasComplexObjectTest() throws URISyntaxException {
+		AAIRestClient client = new AAIRestClient(props, new URI(""));
+		String hasNesting = "{ \"hello\" : \"world\", \"nested\" : { \"key\" : \"value\" } }";
+		String noNesting = "{ \"hello\" : \"world\" }";
+		String arrayCase = "{ \"hello\" : \"world\", \"nestedSimple\" : [\"value1\" , \"value2\"], \"nestedComplex\" : [{\"key\" : \"value\"}]}";
+		String empty = "{}";
+		String arrayCaseSimpleOnly = "{ \"hello\" : \"world\", \"nestedSimple\" : [\"value1\" , \"value2\"]}";
+		String relationshipListCaseNesting = "{ \"hello\" : \"world\", \"nestedSimple\" : [\"value1\" , \"value2\"], \"relationship-list\" : [{\"key\" : \"value\"}], \"nested\" : { \"key\" : \"value\" }}";
+		String relationshipListCase = "{ \"hello\" : \"world\", \"nestedSimple\" : [\"value1\" , \"value2\"], \"relationship-list\" : [{\"key\" : \"value\"}]}";
+		String nothing = "";
+		
+		assertTrue("expect has nesting", client.hasComplexObject(hasNesting));
+		assertFalse("expect no nesting", client.hasComplexObject(noNesting));
+		assertTrue("expect has nesting", client.hasComplexObject(arrayCase));
+		assertFalse("expect no nesting", client.hasComplexObject(empty));
+		assertFalse("expect no nesting", client.hasComplexObject(arrayCaseSimpleOnly));
+		assertFalse("expect no nesting", client.hasComplexObject(relationshipListCase));
+		assertTrue("expect has nesting", client.hasComplexObject(relationshipListCaseNesting));
+		assertFalse("expect no nesting", client.hasComplexObject(nothing));
+	}
+}
diff --git a/common/src/test/java/org/onap/so/client/aai/AAITransactionalClientTest.java b/common/src/test/java/org/onap/so/client/aai/AAITransactionalClientTest.java
new file mode 100644
index 0000000..f6ee826
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAITransactionalClientTest.java
@@ -0,0 +1,148 @@
+/*-
+ * ============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.client.aai;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.onap.aai.domain.yang.Relationship;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.defaultproperties.DefaultAAIPropertiesImpl;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
+public class AAITransactionalClientTest {
+
+	private final static String AAI_JSON_FILE_LOCATION = "src/test/resources/__files/aai/bulkprocess/";
+	AAIResourceUri uriA = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test1");
+	AAIResourceUri uriB = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test2");
+	AAIResourceUri uriC = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
+	AAIResourceUri uriD = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test4");
+	AAIResourceUri uriE = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test5");
+	AAIResourceUri uriF = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test6");
+	
+	ObjectMapper mapper;
+	
+	@Before
+	public void before() throws JsonParseException, JsonMappingException, IOException {
+		mapper = new AAICommonObjectMapperProvider().getMapper();
+		mapper.enable(SerializationFeature.INDENT_OUTPUT);
+	}
+	
+	@Test
+	public void testCreate() throws IOException {
+		final Relationship body = new Relationship();
+		body.setRelatedLink(uriB.build().toString());
+		
+		AAITransactionalClient transactions = createClient().beginTransaction()
+				.create(uriA.clone().relationshipAPI(), body);
+		
+		String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
+		Map<String, Object> actual = mapper.readValue(serializedTransactions, new TypeReference<Map<String, Object>>(){});
+		Map<String, Object> expected = mapper.readValue(getJson("test-request-small.json"), new TypeReference<Map<String, Object>>(){});
+
+		assertEquals(actual, expected);
+	}
+	
+	@Test
+	public void testConnect() throws IOException {
+		List<AAIResourceUri> uris = new ArrayList<AAIResourceUri>();
+		uris.add(uriB);
+		
+		AAIResourceUri uriAClone = uriA.clone();
+		AAITransactionalClient transactions = createClient()
+				.beginTransaction().connect(uriA, uris).connect(uriC, uriD)
+				.beginNewTransaction().connect(uriE, uriF);
+		
+		String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
+		Map<String, Object> actual = mapper.readValue(serializedTransactions, new TypeReference<Map<String, Object>>(){});
+		Map<String, Object> expected = mapper.readValue(getJson("test-request.json"), new TypeReference<Map<String, Object>>(){});
+
+		assertEquals(actual, expected);
+		assertEquals("uri not manipulated", uriAClone.build().toString(), uriA.build().toString());
+	}
+	
+	@Test
+	public void testDisconnect() throws IOException {
+		List<AAIResourceUri> uris = new ArrayList<AAIResourceUri>();
+		uris.add(uriB);
+		
+		AAITransactionalClient transactions = createClient().beginTransaction()
+				.disconnect(uriA, uris);
+		
+		String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
+		Map<String, Object> actual = mapper.readValue(serializedTransactions, new TypeReference<Map<String, Object>>(){});
+		Map<String, Object> expected = mapper.readValue(getJson("test-request-small.json").replace("put", "delete"), new TypeReference<Map<String, Object>>(){});
+
+		assertEquals(actual, expected);
+	}
+	
+	@Test
+	public void testUpdate() throws IOException {
+		final Relationship body = new Relationship();
+		body.setRelatedLink(uriB.build().toString());
+		
+		AAIResourceUri uriAClone = uriA.clone().relationshipAPI();
+		AAITransactionalClient transactions = createClient().beginTransaction().update(uriAClone, body);
+		
+		String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
+		Map<String, Object> actual = mapper.readValue(serializedTransactions, new TypeReference<Map<String, Object>>(){});
+		Map<String, Object> expected = mapper.readValue(getJson("test-request-small.json").replace("put", "patch"), new TypeReference<Map<String, Object>>(){});
+
+		assertEquals(actual, expected);
+	}
+	
+	@Test
+	public void verifyResponse() throws IOException {
+		AAITransactionalClient transactions = createClient()
+				.beginTransaction();
+	
+		assertEquals("success status", Optional.empty(), transactions.locateErrorMessages(getJson("response-success.json")));
+		assertEquals(transactions.locateErrorMessages(getJson("response-failure.json")).get(), "another error message\nmy great error");
+	}
+	
+	private String getJson(String filename) throws IOException {
+		 return new String(Files.readAllBytes(Paths.get(AAI_JSON_FILE_LOCATION + filename)));
+	}
+	
+	private AAIResourcesClient createClient() {
+		AAIResourcesClient client = spy(new AAIResourcesClient());
+		doReturn(new DefaultAAIPropertiesImpl()).when(client).getRestProperties();
+		return client;
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIURITest.java b/common/src/test/java/org/onap/so/client/aai/AAIURITest.java
similarity index 89%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIURITest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIURITest.java
index 366c587..cb426c5 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIURITest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIURITest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
 
 import javax.ws.rs.core.UriBuilder;
 
 import org.junit.Test;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.aai.entities.uri.AAIUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 
 public class AAIURITest {
 
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIUpdatorImplTest.java b/common/src/test/java/org/onap/so/client/aai/AAIUpdatorImplTest.java
similarity index 97%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIUpdatorImplTest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIUpdatorImplTest.java
index 86adb5f..7ba92a1 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIUpdatorImplTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIUpdatorImplTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import org.junit.Test;
 
diff --git a/common/src/test/java/org/onap/so/client/aai/AAIUpdatorTest.java b/common/src/test/java/org/onap/so/client/aai/AAIUpdatorTest.java
new file mode 100644
index 0000000..fddd1e6
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/AAIUpdatorTest.java
@@ -0,0 +1,61 @@
+/*-
+ * ============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.client.aai;
+
+import static org.mockito.Matchers.isA;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class) 
+public class AAIUpdatorTest {
+	
+	@Mock
+	protected AAIRestClientI client;
+	String vnfName = "testVnf";
+	String uuid = "UUID";
+	AAIUpdatorImpl updator;
+	
+	@Before
+	public void init(){
+		updator = new AAIUpdatorImpl();
+		updator.setClient(client);
+	}
+
+	@Test
+	public void testUpdateVnfToLocked() throws Exception{		
+		doNothing().when(client).updateMaintenceFlagVnfId(isA(String.class), isA(Boolean.class), isA(String.class));	
+		updator.updateVnfToLocked(vnfName, uuid);
+		verify(client, times(1)).updateMaintenceFlagVnfId(vnfName, true, uuid);
+	}
+	
+	@Test
+	public void testUpdateVnfToUnLocked() throws Exception {
+		doNothing().when(client).updateMaintenceFlagVnfId(isA(String.class), isA(Boolean.class), isA(String.class));	
+		updator.updateVnfToUnLocked(vnfName, uuid);
+		verify(client, times(1)).updateMaintenceFlagVnfId(vnfName, false, uuid);
+	}
+}
\ No newline at end of file
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIValidatorTest.java b/common/src/test/java/org/onap/so/client/aai/AAIValidatorTest.java
similarity index 98%
rename from common/src/test/java/org/openecomp/mso/client/aai/AAIValidatorTest.java
rename to common/src/test/java/org/onap/so/client/aai/AAIValidatorTest.java
index 12034e0..04c8b15 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIValidatorTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/AAIValidatorTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai;
+package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.when;
diff --git a/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java b/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java
new file mode 100644
index 0000000..ff940a0
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java
@@ -0,0 +1,94 @@
+/*-
+ * ============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.client.aai.entities;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@RunWith(MockitoJUnitRunner.class) 
+public class AAIResultWrapperTest {
+	String json;
+
+	AAIResultWrapper aaiResultWrapper;
+	AAIResultWrapper aaiResultWrapperEmpty;
+	
+	@Before
+	public void init() throws IOException {
+		final String RESOURCE_PATH = "src/test/resources/__files/aai/resources/";
+		json = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "e2e-complex.json")));
+		
+		aaiResultWrapper = new AAIResultWrapper(json);
+		aaiResultWrapperEmpty = new AAIResultWrapper("{}");
+	}
+	
+	@Test
+	public void testGetRelationshipsEmpty() {
+		Optional<Relationships> relationships = aaiResultWrapperEmpty.getRelationships();
+		assertEquals("Compare relationships", Optional.empty(), relationships);
+	}
+
+	@Test
+	public void testAsMap() throws JsonParseException, JsonMappingException, IOException {
+		ObjectMapper mapper = new AAICommonObjectMapperProvider().getMapper();
+		Map<String, Object> expected = mapper.readValue(json, new TypeReference<Map<String, Object>>(){});
+		
+		Map<String, Object> actual = aaiResultWrapper.asMap();
+		assertEquals(expected, actual);
+	}
+	
+	@Test
+	public void testAsMapEmpty() {
+		Map<String, Object> actual = aaiResultWrapperEmpty.asMap();
+		assertEquals(new HashMap<>(), actual);
+	}
+	
+	@Test
+	public void nullCases() {
+		
+		AAIResultWrapper wrapper = new AAIResultWrapper(null);
+		
+		assertEquals(Optional.empty(), wrapper.getRelationships());
+		assertEquals("{}", wrapper.getJson());
+		assertEquals(Optional.empty(), wrapper.asBean(GenericVnf.class));
+		assertEquals(true, wrapper.asMap().isEmpty());
+		assertEquals("{}", wrapper.toString());
+
+
+		
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/RelationshipsTest.java b/common/src/test/java/org/onap/so/client/aai/entities/RelationshipsTest.java
similarity index 89%
rename from common/src/test/java/org/openecomp/mso/client/aai/entities/RelationshipsTest.java
rename to common/src/test/java/org/onap/so/client/aai/entities/RelationshipsTest.java
index b2c1f9e..1ce6e43 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/RelationshipsTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/entities/RelationshipsTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities;
+package org.onap.so.client.aai.entities;
 
 import static org.junit.Assert.assertTrue;
 
@@ -29,9 +29,9 @@
 import java.util.List;
 
 import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 
 public class RelationshipsTest {
 
@@ -40,22 +40,22 @@
 	@Test
 	public void run() throws IOException {
 		final String content = new String(Files.readAllBytes(Paths.get(AAI_JSON_FILE_LOCATION + "e2e-complex.json")));
-
+		
 		AAIResultWrapper wrapper = new AAIResultWrapper(content);
 		Relationships relationships = wrapper.getRelationships().get();
-
+		
 		List<AAIResourceUri> test = relationships.getRelatedAAIUris(AAIObjectType.VCE);
-
+		
 		System.out.println(test.get(0).build());
 		List<AAIResourceUri> uris = Arrays.asList(
 				AAIUriFactory.createResourceUri(AAIObjectType.VCE, "a9fec18e-1ea3-40e4-a6c0-a89b3de07053"),
 				AAIUriFactory.createResourceUri(AAIObjectType.VCE, "8ae1e5f8-61f1-4c71-913a-b40cc4593cb9"),
 				AAIUriFactory.createResourceUri(AAIObjectType.VCE, "a2935fa9-b743-49f4-9813-a127f13c4e93"),
 				AAIUriFactory.createResourceUri(AAIObjectType.VCE, "c7fe7698-8063-4e26-8bd3-ca3edde0b0d4"));
-
-
+		
+		
 		assertTrue(uris.containsAll(test) && test.containsAll(uris));
+		
+	}	
 
-	}
-
-}
\ No newline at end of file
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriFromUriTest.java b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriFromUriTest.java
similarity index 70%
rename from common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriFromUriTest.java
rename to common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriFromUriTest.java
index 6e3ab64..5a69a42 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriFromUriTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriFromUriTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,23 +18,24 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
 import static org.junit.Assert.assertEquals;
 
 import javax.ws.rs.core.UriBuilder;
 
 import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
 
-public class SimpleUriFromUriTest {
+public class AAISimpleUriFromUriTest {
 
 	
 	
 	@Test
 	public void removeHost() {
 		
-		AAIUri uri = new SimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053").build());
+		AAIUri uri = new AAISimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("https://localhost:8443/aai/v9/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053").build());
 		
 		assertEquals("root and version removed", "/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053", uri.build().toString());
 		
@@ -42,7 +43,7 @@
 	@Test
 	public void noChange() {
 		
-		AAIUri uri = new SimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053").build());
+		AAIUri uri = new AAISimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053").build());
 		
 		assertEquals("no change", "/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053", uri.build().toString());
 		
@@ -51,7 +52,7 @@
 	@Test
 	public void encodingPreserved() {
 		
-		AAIUri uri = new SimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("/network/vces/vce/a9f%20%20ec18e-1ea3-40e4-a6c0-a89b3de07053").build());
+		AAIUri uri = new AAISimpleUri(AAIObjectType.UNKNOWN, UriBuilder.fromUri("/network/vces/vce/a9f%20%20ec18e-1ea3-40e4-a6c0-a89b3de07053").build());
 		
 		assertEquals("encoding preserved", "/network/vces/vce/a9f%20%20ec18e-1ea3-40e4-a6c0-a89b3de07053", uri.build().toString());
 		
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriTest.java b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriTest.java
similarity index 81%
rename from common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriTest.java
rename to common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriTest.java
index f4fe216..1b6cc7b 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/SimpleUriTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAISimpleUriTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,19 +18,20 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
+import static org.hamcrest.collection.IsEmptyCollection.empty;
 import static org.junit.Assert.assertEquals;
 
 import java.util.Map;
 
 import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectPlurals;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectPlurals;
+import org.onap.so.client.aai.AAIObjectType;
 
-public class SimpleUriTest {
+public class AAISimpleUriTest {
 
 	
 	
@@ -51,7 +52,7 @@
 	}
 	
 	@Test
-	public void cloneTest() {
+	public void cloneTestSingular() {
 		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test1");
 		AAIResourceUri cloned = uri.clone();
 		Map<String,String> keys = cloned.getURIKeys();
@@ -59,6 +60,14 @@
 	}
 	
 	@Test
+	public void cloneTestPlural() {
+		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF);
+		AAIResourceUri cloned = uri.clone();
+		Map<String,String> keys = cloned.getURIKeys();
+		assertThat(keys.values(), empty());
+	}
+	
+	@Test
 	public void getKeysTest() {
 		AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, "cloud1", "cloud2", "tenant1", "vserver1");
 		Map<String,String> keys = uri.getURIKeys();
diff --git a/common/src/test/java/org/onap/so/client/aai/entities/uri/AAIUriFactoryTest.java b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAIUriFactoryTest.java
new file mode 100644
index 0000000..0ddf5c7
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/entities/uri/AAIUriFactoryTest.java
@@ -0,0 +1,68 @@
+/*-
+ * ============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.client.aai.entities.uri;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.onap.so.client.aai.AAIObjectPlurals;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
+
+public class AAIUriFactoryTest {
+
+	@Test
+	public void testCreateResourceUri() {
+		
+		AAIUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "VIP(VelocitytoIP)");
+		
+		String expected = "/network/generic-vnfs/generic-vnf/VIP%28VelocitytoIP%29";
+		assertEquals(expected, uri.build().toString());
+	}
+	
+	@Test
+	public void testCreateNodesUri() {
+		
+		AAIUri uri = AAIUriFactory.createNodesUri(AAIObjectType.GENERIC_VNF, "VIP(VelocitytoIP)");
+		
+		String expected = "/nodes/generic-vnfs/generic-vnf/VIP%28VelocitytoIP%29";
+		assertEquals(expected, uri.build().toString());
+	}
+	
+	@Test
+	public void testCreateResourceFromExistingURI() {
+		
+		AAIUri uri = new AAISimpleUri(AAIObjectType.GENERIC_VNF, "VIP(VelocitytoIP)");
+		AAIUri uri2 = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.GENERIC_VNF, uri.build());
+		
+		String expected = "/network/generic-vnfs/generic-vnf/VIP%28VelocitytoIP%29";
+		assertEquals(expected, uri2.build().toString());
+	}
+	
+	@Test
+	public void testCreateResourceURIForPluralsWithValues() {
+		
+		AAIUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, "customerId", "serviceType");
+		
+		String expected = "/business/customers/customer/customerId/service-subscriptions/service-subscription/serviceType/service-instances";
+		assertEquals(expected, uri.build().toString());
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUriTest.java b/common/src/test/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUriTest.java
similarity index 82%
rename from common/src/test/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUriTest.java
rename to common/src/test/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUriTest.java
index 12ca0a2..73720f5 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUriTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUriTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,10 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri;
+package org.onap.so.client.aai.entities.uri;
 
-import static org.hamcrest.CoreMatchers.containsString;
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.any;
@@ -30,14 +36,6 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.put;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
-import static com.github.tomakehurst.wiremock.client.WireMock.containing;
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-
-
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -45,20 +43,17 @@
 import java.nio.file.Paths;
 import java.util.Optional;
 
-import javax.ws.rs.BadRequestException;
 import javax.ws.rs.core.UriBuilder;
 
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.mockito.Matchers;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.AAIQueryClient;
-import org.openecomp.mso.client.aai.Format;
-import org.openecomp.mso.client.aai.entities.CustomQuery;
-import org.openecomp.mso.client.aai.exceptions.AAIPayloadException;
-import org.openecomp.mso.client.aai.exceptions.AAIUriComputationException;
-import org.openecomp.mso.client.aai.exceptions.AAIUriNotFoundException;
+import org.onap.so.client.aai.AAIQueryClient;
+import org.onap.so.client.graphinventory.Format;
+import org.onap.so.client.aai.entities.CustomQuery;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryPayloadException;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriComputationException;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriNotFoundException;
 
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
@@ -69,8 +64,8 @@
 	@Rule
 	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
 	
-	 @Rule
-	 public final ExpectedException exception = ExpectedException.none();
+	@Rule
+	public final ExpectedException exception = ExpectedException.none();
 	 
 	@Test
 	public void found() throws IOException {
@@ -84,7 +79,7 @@
 	}
 	
 	@Test
-	public void oneKey() throws IOException, URISyntaxException, AAIUriNotFoundException, AAIPayloadException {
+	public void oneKey() throws IOException, URISyntaxException, GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		 
 		ServiceInstanceUri instance = new ServiceInstanceUri("key1");
 		ServiceInstanceUri spy = spy(instance);
@@ -97,7 +92,7 @@
 	}
 	
 	@Test
-	public void oneKeyQueryParams() throws IOException, URISyntaxException, AAIUriNotFoundException, AAIPayloadException {
+	public void oneKeyQueryParams() throws IOException, URISyntaxException, GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		 
 		ServiceInstanceUri instance = new ServiceInstanceUri("key1");
 		ServiceInstanceUri spy = spy(instance);
@@ -110,7 +105,7 @@
 	}
 	
 	@Test
-	public void oneKeyEncoded() throws IOException, URISyntaxException, AAIUriNotFoundException, AAIPayloadException {
+	public void oneKeyEncoded() throws IOException, URISyntaxException, GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		 
 		ServiceInstanceUri instance = new ServiceInstanceUri("key1");
 		ServiceInstanceUri spy = spy(instance);
@@ -123,7 +118,7 @@
 	}
 	
 	@Test
-	public void oneKeyGetKeys() throws IOException, URISyntaxException, AAIUriNotFoundException, AAIPayloadException {
+	public void oneKeyGetKeys() throws IOException, URISyntaxException, GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		 
 		ServiceInstanceUri instance = new ServiceInstanceUri("key1");
 		ServiceInstanceUri spy = spy(instance);
@@ -133,7 +128,7 @@
 		
 	}
 	@Test
-	public void oneKeyClone() throws AAIUriNotFoundException, AAIPayloadException {
+	public void oneKeyClone() throws GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		ServiceInstanceUri instance = new ServiceInstanceUri("key1");
 		ServiceInstanceUri spy = spy(instance);
 		String uri = "/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3";
@@ -155,7 +150,7 @@
 	}
 	
 	@Test
-	public void notfound() throws IOException, AAIUriNotFoundException, AAIPayloadException {
+	public void notfound() throws IOException, GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		final String content = new String(Files.readAllBytes(Paths.get(AAI_JSON_FILE_LOCATION + "empty-query-result.json")));
 		 
 		ServiceInstanceUri instance = new ServiceInstanceUri("key3");
@@ -163,7 +158,7 @@
 		AAIQueryClient mockQueryClient = mock(AAIQueryClient.class);
 		when(mockQueryClient.query(any(Format.class), any(CustomQuery.class))).thenReturn(content);
 		when(spy.getQueryClient()).thenReturn(mockQueryClient);
-		exception.expect(AAIUriComputationException.class);
+		exception.expect(GraphInventoryUriComputationException.class);
 		spy.build();
 		
 	}
@@ -178,16 +173,19 @@
 	}
 	
 	@Test
-	public void noVertexFound() throws AAIUriNotFoundException, AAIPayloadException {
+	public void noVertexFound() throws GraphInventoryUriNotFoundException, GraphInventoryPayloadException {
 		ServiceInstanceUri instance = new ServiceInstanceUri("key3");
 		ServiceInstanceUri spy = spy(instance);
+		AAIQueryClient client = mock(AAIQueryClient.class);
+		when(client.query(any(Format.class), any(CustomQuery.class))).thenReturn("{\"results\":[]}");
+		doReturn(client).when(spy).getQueryClient();
 		stubFor(put(urlMatching("/aai/v[0-9]+/query.*")) 
 				.withRequestBody(containing("key3")) 
 				.willReturn(aResponse() 
 					.withStatus(400) 
 					.withHeader("Content-Type", "application/json") 
 					.withBodyFile("")));
-		exception.expect(AAIUriComputationException.class);
+		exception.expect(GraphInventoryUriComputationException.class);
 		exception.expectMessage(containsString("NotFoundException"));
 		spy.build();	
 	}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironmentTest.java b/common/src/test/java/org/onap/so/client/aai/objects/AAIOperationalEnvironmentTest.java
similarity index 64%
rename from common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironmentTest.java
rename to common/src/test/java/org/onap/so/client/aai/objects/AAIOperationalEnvironmentTest.java
index f512de8..e2a3cbd 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironmentTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/objects/AAIOperationalEnvironmentTest.java
@@ -1,23 +1,23 @@
 /*
 * ============LICENSE_START=======================================================
-* ONAP : SO
-* ================================================================================
-* Copyright 2018 TechMahindra
-*=================================================================================
-* 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=========================================================
+ * ONAP : SO
+ * ================================================================================
+ * Copyright (C) 2018 TechMahindra
+ * ================================================================================
+ * 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.openecomp.mso.client.aai.objects;
+package org.onap.so.client.aai.objects;
 
 import static org.junit.Assert.*;
 
diff --git a/common/src/test/java/org/onap/so/client/aai/objects/AAIServiceInstanceTest.java b/common/src/test/java/org/onap/so/client/aai/objects/AAIServiceInstanceTest.java
new file mode 100644
index 0000000..4b08025
--- /dev/null
+++ b/common/src/test/java/org/onap/so/client/aai/objects/AAIServiceInstanceTest.java
@@ -0,0 +1,53 @@
+/*
+* ============LICENSE_START=======================================================
+ * ONAP : SO
+ * ================================================================================
+ * Copyright (C) 2018 TechMahindra
+ * ================================================================================
+ * 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.client.aai.objects;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class AAIServiceInstanceTest {
+
+	@Test
+	public void test() {
+		AAIServiceInstance aaiSI= new AAIServiceInstance();
+		aaiSI.setEnvironmentContext("environmentContext");
+		aaiSI.setModelInvariantUuid("modelInvariantUuid");
+		aaiSI.setModelUuid("modelUuid");
+		aaiSI.setoStatus("oStatus");
+		aaiSI.setServiceInstanceId("serviceInstanceId");
+		aaiSI.setServiceInstanceName("serviceInstanceName");
+		aaiSI.setServiceRole("serviceRole");
+		aaiSI.setServiceType("serviceType");
+		aaiSI.setWorkloadContext("workloadContext");
+		assertEquals(aaiSI.getEnvironmentContext(), "environmentContext");
+		assertEquals(aaiSI.getModelInvariantUuid(), "modelInvariantUuid");
+		assertEquals(aaiSI.getModelUuid(), "modelUuid");
+		assertEquals(aaiSI.getoStatus(), "oStatus");
+		assertEquals(aaiSI.getServiceInstanceId(), "serviceInstanceId");
+		assertEquals(aaiSI.getServiceInstanceName(), "serviceInstanceName");
+		assertEquals(aaiSI.getServiceRole(), "serviceRole");
+		assertEquals(aaiSI.getServiceType(), "serviceType");
+		assertEquals(aaiSI.getWorkloadContext(), "workloadContext");
+		aaiSI.withServiceInstance("serviceInstanceId");
+		assert(aaiSI.getUri()!=null);
+	}
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java b/common/src/test/java/org/onap/so/client/defaultproperties/DefaultAAIPropertiesImpl.java
similarity index 90%
rename from common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java
rename to common/src/test/java/org/onap/so/client/defaultproperties/DefaultAAIPropertiesImpl.java
index ce08759..77e1dfe 100644
--- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java
+++ b/common/src/test/java/org/onap/so/client/defaultproperties/DefaultAAIPropertiesImpl.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.defaultproperties;
+package org.onap.so.client.defaultproperties;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -30,8 +30,8 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.mso.client.aai.AAIProperties;
-import org.openecomp.mso.client.aai.AAIVersion;
+import org.onap.so.client.aai.AAIProperties;
+import org.onap.so.client.aai.AAIVersion;
 
 public class DefaultAAIPropertiesImpl implements AAIProperties {
 
@@ -40,7 +40,7 @@
 	public DefaultAAIPropertiesImpl() {
 		File initialFile = new File("src/test/resources/aai.properties");
 		Map<Object, Object> temp;
-		try(InputStream targetStream = new FileInputStream(initialFile)) {
+		try (InputStream targetStream = new FileInputStream(initialFile)) {
 			Properties properties = new Properties();
 			properties.load(targetStream);
 			temp = properties;
diff --git a/common/src/test/java/org/openecomp/mso/client/dmaap/DmaapClientTest.java b/common/src/test/java/org/onap/so/client/dmaap/DmaapClientTest.java
similarity index 92%
rename from common/src/test/java/org/openecomp/mso/client/dmaap/DmaapClientTest.java
rename to common/src/test/java/org/onap/so/client/dmaap/DmaapClientTest.java
index dda7754..4b90cfe 100644
--- a/common/src/test/java/org/openecomp/mso/client/dmaap/DmaapClientTest.java
+++ b/common/src/test/java/org/onap/so/client/dmaap/DmaapClientTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import static org.junit.Assert.assertEquals;
 
@@ -26,7 +26,7 @@
 import java.io.IOException;
 
 import org.junit.Test;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
 
 public class DmaapClientTest {
 
diff --git a/common/src/test/java/org/openecomp/mso/client/dmaap/DmaapPublisherTest.java b/common/src/test/java/org/onap/so/client/dmaap/DmaapPublisherTest.java
similarity index 97%
rename from common/src/test/java/org/openecomp/mso/client/dmaap/DmaapPublisherTest.java
rename to common/src/test/java/org/onap/so/client/dmaap/DmaapPublisherTest.java
index a9bf81d..e1afa82 100644
--- a/common/src/test/java/org/openecomp/mso/client/dmaap/DmaapPublisherTest.java
+++ b/common/src/test/java/org/onap/so/client/dmaap/DmaapPublisherTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.openecomp.mso.client.dmaap;
+package org.onap.so.client.dmaap;
 
 import org.junit.Test;
 
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImplTest.java b/common/src/test/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImplTest.java
similarity index 85%
rename from common/src/test/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImplTest.java
rename to common/src/test/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImplTest.java
index e8d9871..be93f47 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImplTest.java
+++ b/common/src/test/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImplTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,14 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.entities.uri.parsers;
+package org.onap.so.client.graphinventory.entities.uri.parsers;
 
 import static org.junit.Assert.assertEquals;
 
 import java.util.Map;
 
 import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.entities.uri.parsers.UriParser;
+import org.onap.so.client.graphinventory.entities.uri.parsers.UriParserSpringImpl;
 
 public class UriParserSpringImplTest {
 
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadExceptionTest.java b/common/src/test/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadExceptionTest.java
similarity index 70%
rename from common/src/test/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadExceptionTest.java
rename to common/src/test/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadExceptionTest.java
index 3895230..6b23cbb 100644
--- a/common/src/test/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadExceptionTest.java
+++ b/common/src/test/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadExceptionTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,22 +18,23 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.aai.exceptions;
+package org.onap.so.client.graphinventory.exceptions;
 
 import org.junit.Test;
+import org.onap.so.client.graphinventory.exceptions.GraphInventoryPayloadException;
 
-public class AAIPayloadExceptionTest {
+public class GraphInventoryPayloadExceptionTest {
 
     Throwable t = new Throwable();
 
     @Test
     public void callConstructorTest() throws Exception {
 
-        AAIPayloadException test1 = new AAIPayloadException("testing");
+        GraphInventoryPayloadException test1 = new GraphInventoryPayloadException("testing");
 
-        AAIPayloadException test2 = new AAIPayloadException("testing", t);
+        GraphInventoryPayloadException test2 = new GraphInventoryPayloadException("testing", t);
 
-        AAIPayloadException test3 = new AAIPayloadException(t);
+        GraphInventoryPayloadException test3 = new GraphInventoryPayloadException(t);
     }
 
 }
diff --git a/common/src/test/java/org/openecomp/mso/client/grm/GRMBeansTest.java b/common/src/test/java/org/onap/so/client/grm/GRMBeansTest.java
similarity index 94%
rename from common/src/test/java/org/openecomp/mso/client/grm/GRMBeansTest.java
rename to common/src/test/java/org/onap/so/client/grm/GRMBeansTest.java
index e22dc7b..76b7369 100644
--- a/common/src/test/java/org/openecomp/mso/client/grm/GRMBeansTest.java
+++ b/common/src/test/java/org/onap/so/client/grm/GRMBeansTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import java.util.List;
 
@@ -38,9 +38,9 @@
 import com.openpojo.validation.test.impl.SetterTester;
 
 public class GRMBeansTest {
-	private static final String POJO_PACKAGE = "org.openecomp.mso.client.grm.beans";
+	private static final String POJO_PACKAGE = "org.onap.so.client.grm.beans";
 	private PojoClassFilter filterTestClasses = new FilterTestClasses();
-	
+
 	@Test
 	public void testPojoStructureAndBehavior() {
 		Validator validator = ValidatorBuilder.create()
diff --git a/common/src/test/java/org/openecomp/mso/client/grm/GRMClientTest.java b/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
similarity index 74%
rename from common/src/test/java/org/openecomp/mso/client/grm/GRMClientTest.java
rename to common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
index 6865bbd..3cce6a6 100644
--- a/common/src/test/java/org/openecomp/mso/client/grm/GRMClientTest.java
+++ b/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,61 +18,91 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
 import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
 import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.ws.rs.core.MediaType;
 
+import ch.qos.logback.classic.spi.ILoggingEvent;
+
+import org.apache.log4j.MDC;
+import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
-import org.openecomp.mso.client.grm.exceptions.GRMClientCallFailed;
-import org.openecomp.mso.client.grm.GRMClient;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointRequest;
-import org.openecomp.mso.client.grm.beans.OperationalInfo;
-import org.openecomp.mso.client.grm.beans.Property;
-import org.openecomp.mso.client.grm.beans.ServiceEndPoint;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointList;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointLookupRequest;
-import org.openecomp.mso.client.grm.beans.Version;
+import org.junit.rules.ExpectedException;
+import org.onap.so.client.grm.beans.OperationalInfo;
+import org.onap.so.client.grm.beans.Property;
+import org.onap.so.client.grm.beans.ServiceEndPoint;
+import org.onap.so.client.grm.beans.ServiceEndPointList;
+import org.onap.so.client.grm.beans.ServiceEndPointLookupRequest;
+import org.onap.so.client.grm.beans.ServiceEndPointRequest;
+import org.onap.so.client.grm.beans.Version;
+import org.onap.so.client.grm.exceptions.GRMClientCallFailed;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import org.onap.so.logger.MsoLogger;
+import org.onap.so.logger.MsoLogger.Catalog;
+import org.onap.so.utils.TestAppender;
 
 public class GRMClientTest {
 	
 	@Rule
-	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(28090));
+	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(47389));
+	
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+	
+	@BeforeClass
+	public static void setUp() throws Exception {
+		System.setProperty("mso.config.path", "src/test/resources");
+	}
 	
 	private ObjectMapper mapper = new ObjectMapper();
 	
 	@Test
 	public void testFind() throws Exception {
+        TestAppender.events.clear();
 		String endpoints = getFileContentsAsString("__files/grm/endpoints.json");
 		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/findRunning"))
 			.willReturn(aResponse()
 				.withStatus(200)
 				.withHeader("Content-Type", MediaType.APPLICATION_JSON)
+				.withHeader("X-FromAppId", "GRM")
 				.withBody(endpoints)));
 
-		
+		MDC.put(MsoLogger.SERVICE_NAME, "my-value");
 		GRMClient client = new GRMClient();
 		ServiceEndPointList sel = client.findRunningServices("TEST.ECOMP_PSL.*", 1, "TEST");
 		List<ServiceEndPoint> list = sel.getServiceEndPointList();
 		assertEquals(3, list.size());
+        ILoggingEvent logEvent = TestAppender.events.get(0);
+        Map<String,String> mdc = logEvent.getMDCPropertyMap();
+        assertNotNull(mdc.get(MsoLogger.METRIC_BEGIN_TIME));
+         assertNotNull(mdc.get(MsoLogger.METRIC_END_TIME));
+        assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
+        assertNotNull(mdc.get(MsoLogger.METRIC_TIMER));
+        assertEquals("200",mdc.get(MsoLogger.RESPONSECODE));
+        assertEquals("GRM",mdc.get(MsoLogger.PARTNERNAME));
+        assertEquals("expect value to not be overwritten by jax rs client interceptor", "my-value",mdc.get(MsoLogger.SERVICE_NAME));
+        assertEquals("COMPLETE",mdc.get(MsoLogger.STATUSCODE));
+        assertNotNull(mdc.get(MsoLogger.RESPONSEDESC));
 	}
 	
-	@Test(expected = GRMClientCallFailed.class) 
+	@Test 
 	public void testFindFail() throws Exception {
 		
 		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/findRunning"))
@@ -82,13 +112,14 @@
 				.withBody("")));
 		
 		GRMClient client = new GRMClient();
+		thrown.expect(GRMClientCallFailed.class);
 		client.findRunningServices("TEST.ECOMP_PSL.*", 1, "TEST");
 	}
 	
 	@Ignore
 	@Test
 	public void testAdd() throws Exception {
-		
+
 		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/add"))
 			.willReturn(aResponse()
 				.withStatus(202)
@@ -147,7 +178,7 @@
 		client.addServiceEndPoint(request);
 	}
 	
-	@Test(expected = GRMClientCallFailed.class)
+	@Test
 	public void testAddFail() throws Exception {
 		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/add"))
 				.willReturn(aResponse()
@@ -156,6 +187,7 @@
 					.withBody("test")));
 		ServiceEndPointRequest request = new ServiceEndPointRequest();
 		GRMClient client = new GRMClient();
+		thrown.expect(GRMClientCallFailed.class);
 		client.addServiceEndPoint(request);
 	}
 
diff --git a/common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointListTest.java b/common/src/test/java/org/onap/so/client/grm/ServiceEndPointListTest.java
similarity index 92%
rename from common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointListTest.java
rename to common/src/test/java/org/onap/so/client/grm/ServiceEndPointListTest.java
index 111fec4..a1fb43e 100644
--- a/common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointListTest.java
+++ b/common/src/test/java/org/onap/so/client/grm/ServiceEndPointListTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import java.io.File;
 import java.nio.file.Files;
 import java.util.List;
 import static org.junit.Assert.*;
 import org.junit.Test;
-import org.openecomp.mso.client.grm.beans.ServiceEndPoint;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointList;
+import org.onap.so.client.grm.beans.ServiceEndPoint;
+import org.onap.so.client.grm.beans.ServiceEndPointList;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -47,7 +47,7 @@
 		assertEquals(Integer.valueOf(1), Integer.valueOf(se.getVersion().getMajor()));
 		assertEquals(Integer.valueOf(0), Integer.valueOf(se.getVersion().getMinor()));
 		assertEquals(Integer.valueOf(0), Integer.valueOf(se.getVersion().getPatch()));
-		assertEquals("135.144.120.218", se.getHostAddress());
+		assertEquals("192.168.120.218", se.getHostAddress());
 		assertEquals("32004", se.getListenPort());
 		assertEquals("37.7022", se.getLatitude());
 		assertEquals("121.9358", se.getLongitude());
diff --git a/common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointRequestTest.java b/common/src/test/java/org/onap/so/client/grm/ServiceEndPointRequestTest.java
similarity index 89%
rename from common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointRequestTest.java
rename to common/src/test/java/org/onap/so/client/grm/ServiceEndPointRequestTest.java
index 230b58b..4fe6bca 100644
--- a/common/src/test/java/org/openecomp/mso/client/grm/ServiceEndPointRequestTest.java
+++ b/common/src/test/java/org/onap/so/client/grm/ServiceEndPointRequestTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,17 +18,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.grm;
+package org.onap.so.client.grm;
 
 import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.Test;
-import org.openecomp.mso.client.grm.beans.OperationalInfo;
-import org.openecomp.mso.client.grm.beans.Property;
-import org.openecomp.mso.client.grm.beans.ServiceEndPoint;
-import org.openecomp.mso.client.grm.beans.ServiceEndPointRequest;
-import org.openecomp.mso.client.grm.beans.Version;
+import org.onap.so.client.grm.beans.OperationalInfo;
+import org.onap.so.client.grm.beans.Property;
+import org.onap.so.client.grm.beans.ServiceEndPoint;
+import org.onap.so.client.grm.beans.ServiceEndPointRequest;
+import org.onap.so.client.grm.beans.Version;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
diff --git a/common/src/test/java/org/openecomp/mso/client/policy/PolicyClientImplTest.java b/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
similarity index 70%
rename from common/src/test/java/org/openecomp/mso/client/policy/PolicyClientImplTest.java
rename to common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
index f406667..104d40f 100644
--- a/common/src/test/java/org/openecomp/mso/client/policy/PolicyClientImplTest.java
+++ b/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
@@ -1,104 +1,111 @@
-/*-

- * ============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.openecomp.mso.client.policy;

-

-import static org.junit.Assert.assertEquals;

-import static org.mockito.Mockito.doReturn;

-import static com.shazam.shazamcrest.MatcherAssert.assertThat;

-import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;

-

-import org.junit.Ignore;

-import org.junit.Test;

-import org.mockito.Mockito;

-import org.openecomp.mso.client.defaultproperties.PolicyRestPropertiesImpl;

-import org.openecomp.mso.client.policy.entities.DecisionAttributes;

-import org.openecomp.mso.client.policy.entities.DictionaryData;

-import org.openecomp.mso.client.policy.entities.PolicyDecision;

-import org.openecomp.mso.client.policy.entities.PolicyServiceType;

-

-public class PolicyClientImplTest {

-

-	@Test

-	public void successReadProperties() {

-		PolicyRestClient client = new PolicyRestClient(new PolicyRestPropertiesImpl(), PolicyServiceType.GET_DECISION);

-		client.initializeHeaderMap(client.headerMap);

-

-		assertEquals("Found expected Client Auth", client.headerMap.get("ClientAuth"),

-				"Basic bTAzNzQzOnBvbGljeVIwY2sk");

-		assertEquals("Found expected Authorization", client.headerMap.get("Authorization"),

-				"Basic dGVzdHBkcDphbHBoYTEyMw==");

-		assertEquals("Found expected Environment", client.headerMap.get("Environment"), "TEST");

-		assertEquals("Has X-ECOMP-RequestID", client.headerMap.containsKey("X-ECOMP-RequestID"), true);

-	}

-

-	@Test

-	public void getDecisionMockTest() {

-		String serviceType = "S";

-		String vnfType = "V";

-		String bbID = "BB1";

-		String workStep = "1";

-		String errorCode = "123";

-		

-		PolicyDecision expected = new PolicyDecision();

-		expected.setDecision("PERMIT");

-		expected.setDetails("Retry");

-		

-		DecisionAttributes decisionAttributes = new DecisionAttributes();

-		decisionAttributes.setServiceType(serviceType);

-		decisionAttributes.setVNFType(vnfType);

-		decisionAttributes.setBBID(bbID);

-		decisionAttributes.setWorkStep(workStep);

-		decisionAttributes.setErrorCode(errorCode);

-		PolicyClient client = Mockito.spy(PolicyClientImpl.class);

-		

-		doReturn(expected).when(client).getDecision(serviceType, vnfType, bbID, workStep, errorCode);

-

-		PolicyDecision actual = client.getDecision(serviceType, vnfType, bbID, workStep, errorCode);

-		assertThat(actual, sameBeanAs(expected));

-	}

-

-	@Test

-	@Ignore

-	public void getDecisionTest() {

-		PolicyClient client = new PolicyClientImpl();

-		PolicyDecision decision = client.getDecision("S", "V", "BB1", "1", "123");

-		assertEquals("Decision is correct", decision.getDecision(), "PERMIT");

-		assertEquals("Decision details is correct", decision.getDetails(), "Retry");

-	}

-

-	@Test

-	@Ignore

-	public void getAllowedTreatmentsTest() {

-		PolicyClient client = new PolicyClientImpl();

-		DictionaryData dictClient = client.getAllowedTreatments("BB1", "1");

-		final String dictBbidString = dictClient.getBbid().getString();

-		final String dictWorkStepString = dictClient.getWorkstep().getString();

-		assertEquals("DictionaryData matches a response Bbid", dictBbidString, "BB1");

-		assertEquals("DicitonaryData matches a response WorkStep", dictWorkStepString, "1");

-	}

-	/*

-	 * @Test public void getAllowedTreatmentsTest() { PolicyClient client = new

-	 * PolicyClientImpl(); AllowedTreatments allowedTreatments =

-	 * client.getAllowedTreatments("BB1", "1"); int expectedSizeOfList = 4; int

-	 * sizeOfList = allowedTreatments.getAllowedTreatments().size();

-	 * assertEquals("Decision is correct", sizeOfList, expectedSizeOfList); }

-	 */

-}

+/*-
+ * ============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.client.policy;
+
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.doReturn;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.so.client.defaultproperties.PolicyRestPropertiesImpl;
+import org.onap.so.client.policy.entities.DictionaryData;
+import org.onap.so.client.policy.entities.PolicyDecision;
+import org.onap.so.client.policy.entities.PolicyServiceType;
+
+public class PolicyClientImplTest {
+	
+	@BeforeClass
+	public static void setUp() {
+		System.setProperty("mso.config.path", "src/test/resources");
+	}
+	@Test
+	public void successReadProperties() {
+		PolicyRestClient client = new PolicyRestClient(new PolicyRestPropertiesImpl(), PolicyServiceType.GET_DECISION);
+		Map<String, String> map = new HashMap<>();
+		client.initializeHeaderMap(map);
+		assertEquals("Found expected Client Auth", "Basic bTAzNzQzOnBvbGljeVIwY2sk", map.get("ClientAuth"));
+		assertEquals("Found expected Authorization", "Basic dGVzdHBkcDphbHBoYTEyMw==", map.get("Authorization"));
+		assertEquals("Found expected Environment", "TEST", map.get("Environment"));
+	}
+	
+	@Test
+	@Ignore
+	public void getDecisionTest() {
+		PolicyClient client = new PolicyClientImpl();
+		PolicyDecision decision = client.getDecision("S", "V", "BB1", "1", "123");
+		assertEquals("Decision is correct", decision.getDecision(), "PERMIT");
+		assertEquals("Decision details is correct", decision.getDetails(), "Retry");
+	}
+	
+	@Test
+	@Ignore
+	public void getAllowedTreatmentsTest(){
+		PolicyClient client = new PolicyClientImpl();
+		DictionaryData dictClient = client.getAllowedTreatments("BB1", "1");
+		final String dictBbidString = dictClient.getBbid().getString();
+		final String dictWorkStepString = dictClient.getWorkstep().getString();
+		assertEquals("DictionaryData matches a response Bbid", dictBbidString, "BB1");
+		assertEquals("DicitonaryData matches a response WorkStep", dictWorkStepString, "1");
+	}
+	
+	@Test
+	public void getDecisionMockTest() {
+		String serviceType = "S";
+		String vnfType = "V";
+		String bbID = "BB1";
+		String workStep = "1";
+		String errorCode = "123";
+		
+		PolicyDecision expected = new PolicyDecision();
+		expected.setDecision("PERMIT");
+		expected.setDetails("Retry");
+		
+		DecisionAttributes decisionAttributes = new DecisionAttributes();
+		decisionAttributes.setServiceType(serviceType);
+		decisionAttributes.setVNFType(vnfType);
+		decisionAttributes.setBBID(bbID);
+		decisionAttributes.setWorkStep(workStep);
+		decisionAttributes.setErrorCode(errorCode);
+		PolicyClient client = Mockito.spy(PolicyClientImpl.class);
+		
+		doReturn(expected).when(client).getDecision(serviceType, vnfType, bbID, workStep, errorCode);
+
+		PolicyDecision actual = client.getDecision(serviceType, vnfType, bbID, workStep, errorCode);
+		assertThat(actual, sameBeanAs(expected));
+	}
+	
+	/*
+	@Test
+	public void getAllowedTreatmentsTest() {
+		PolicyClient client = new PolicyClientImpl();
+		AllowedTreatments allowedTreatments = client.getAllowedTreatments("BB1", "1");
+		int expectedSizeOfList = 4;
+		int sizeOfList = allowedTreatments.getAllowedTreatments().size();
+		assertEquals("Decision is correct", sizeOfList, expectedSizeOfList);
+	}*/
+}
diff --git a/common/src/test/java/org/openecomp/mso/client/policy/entities/PolicyEntitiesTest.java b/common/src/test/java/org/onap/so/client/policy/entities/PolicyEntitiesTest.java
similarity index 95%
rename from common/src/test/java/org/openecomp/mso/client/policy/entities/PolicyEntitiesTest.java
rename to common/src/test/java/org/onap/so/client/policy/entities/PolicyEntitiesTest.java
index f526e10..2796aff 100644
--- a/common/src/test/java/org/openecomp/mso/client/policy/entities/PolicyEntitiesTest.java
+++ b/common/src/test/java/org/onap/so/client/policy/entities/PolicyEntitiesTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.policy.entities;
+package org.onap.so.client.policy.entities;
 
 import org.junit.Test;
 
@@ -39,7 +39,7 @@
 
 	@Test
 	public void pojoStructure() {
-		test("org.openecomp.mso.client.policy.entities");
+		test("org.onap.so.client.policy.entities");
 	}
 
 	private void test(String pojoPackage) {
diff --git a/common/src/test/java/org/openecomp/mso/client/ruby/RubyCheckClientTest.java b/common/src/test/java/org/onap/so/client/ruby/RubyCheckClientTest.java
similarity index 94%
rename from common/src/test/java/org/openecomp/mso/client/ruby/RubyCheckClientTest.java
rename to common/src/test/java/org/onap/so/client/ruby/RubyCheckClientTest.java
index 053f1f2..ba8772b 100644
--- a/common/src/test/java/org/openecomp/mso/client/ruby/RubyCheckClientTest.java
+++ b/common/src/test/java/org/onap/so/client/ruby/RubyCheckClientTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby;
+package org.onap.so.client.ruby;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
@@ -32,13 +32,13 @@
 import java.time.format.DateTimeFormatter;
 
 import org.junit.Test;
-import org.openecomp.mso.client.ruby.beans.Ruby;
+import org.onap.so.client.ruby.beans.Ruby;
 
 import static org.apache.commons.lang3.StringUtils.*;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class RubyCheckClientTest {
-	private final String fileLocation = "src/test/resources/org/openecomp/mso/client/ruby/create-ticket/";
+	private final String fileLocation = "src/test/resources/org/onap/so/client/ruby/create-ticket/";
 	private static final String REQUEST_ID = "abc123";
 	private static final String SOURCE_NAME = "source-name";
 	private static final String TIME = "test-time";
diff --git a/common/src/test/java/org/openecomp/mso/client/ruby/beans/RubyBeansTest.java b/common/src/test/java/org/onap/so/client/ruby/beans/RubyBeansTest.java
similarity index 95%
rename from common/src/test/java/org/openecomp/mso/client/ruby/beans/RubyBeansTest.java
rename to common/src/test/java/org/onap/so/client/ruby/beans/RubyBeansTest.java
index 90e1861..eb142be 100644
--- a/common/src/test/java/org/openecomp/mso/client/ruby/beans/RubyBeansTest.java
+++ b/common/src/test/java/org/onap/so/client/ruby/beans/RubyBeansTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.ruby.beans;
+package org.onap.so.client.ruby.beans;
 
 import org.junit.Test;
 
@@ -39,7 +39,7 @@
 
 	@Test
 	public void pojoStructure() {
-		test("org.openecomp.mso.client.ruby.beans");
+		test("org.onap.so.client.ruby.beans");
 	}
 
 	private void test(String pojoPackage) {
diff --git a/common/src/test/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClientTest.java b/common/src/test/java/org/onap/so/client/sdno/SDNOHealthCheckClientTest.java
similarity index 94%
rename from common/src/test/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClientTest.java
rename to common/src/test/java/org/onap/so/client/sdno/SDNOHealthCheckClientTest.java
index 6c64d90..4887aed 100644
--- a/common/src/test/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClientTest.java
+++ b/common/src/test/java/org/onap/so/client/sdno/SDNOHealthCheckClientTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno;
+package org.onap.so.client.sdno;
 
 import static org.junit.Assert.assertEquals;
 
@@ -28,7 +28,7 @@
 import java.util.Optional;
 
 import org.junit.Test;
-import org.openecomp.mso.client.sdno.beans.SDNO;
+import org.onap.so.client.sdno.beans.SDNO;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -36,7 +36,7 @@
 
 	
 	
-	private final String fileLocation = "src/test/resources/org/openecomp/mso/client/sdno/health-check/";
+	private final String fileLocation = "src/test/resources/org/onap/so/client/sdno/health-check/";
 	private static final String userId = "test-user";
 	private static final Optional<String> clliCode = Optional.of("test-clli");
 	private static final String requestId = "test-request-id";
diff --git a/common/src/test/java/org/openecomp/mso/client/sdno/SDNOValidatorTest.java b/common/src/test/java/org/onap/so/client/sdno/SDNOValidatorTest.java
similarity index 89%
rename from common/src/test/java/org/openecomp/mso/client/sdno/SDNOValidatorTest.java
rename to common/src/test/java/org/onap/so/client/sdno/SDNOValidatorTest.java
index cd84e78..89dd2f5 100644
--- a/common/src/test/java/org/openecomp/mso/client/sdno/SDNOValidatorTest.java
+++ b/common/src/test/java/org/onap/so/client/sdno/SDNOValidatorTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno;
+package org.onap.so.client.sdno;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.any;
@@ -42,11 +42,11 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
 import org.onap.aai.domain.yang.GenericVnf;
-import org.openecomp.mso.client.dmaap.Consumer;
-import org.openecomp.mso.client.dmaap.exceptions.DMaaPConsumerFailure;
-import org.openecomp.mso.client.exceptions.SDNOException;
-import org.openecomp.mso.client.sdno.beans.SDNO;
-import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
+import org.onap.so.client.dmaap.Consumer;
+import org.onap.so.client.dmaap.exceptions.DMaaPConsumerFailure;
+import org.onap.so.client.exceptions.SDNOException;
+import org.onap.so.client.sdno.beans.SDNO;
+import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -56,7 +56,7 @@
 	
 	@Mock private Consumer mrConsumer;
 	@Spy private SDNOHealthCheckDmaapConsumer dmaapConsumer;
-	private final String fileLocation = "src/test/resources/org/openecomp/mso/client/sdno/";
+	private final String fileLocation = "src/test/resources/org/onap/so/client/sdno/";
 	private final String uuid = "xyz123";
 	@Rule public ExpectedException thrown = ExpectedException.none();
 	
diff --git a/common/src/test/java/org/openecomp/mso/client/sdno/beans/SdnoBeansTest.java b/common/src/test/java/org/onap/so/client/sdno/beans/SdnoBeansTest.java
similarity index 95%
rename from common/src/test/java/org/openecomp/mso/client/sdno/beans/SdnoBeansTest.java
rename to common/src/test/java/org/onap/so/client/sdno/beans/SdnoBeansTest.java
index 4a2580f..bdfefd0 100644
--- a/common/src/test/java/org/openecomp/mso/client/sdno/beans/SdnoBeansTest.java
+++ b/common/src/test/java/org/onap/so/client/sdno/beans/SdnoBeansTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.sdno.beans;
+package org.onap.so.client.sdno.beans;
 
 import org.junit.Test;
 
@@ -39,7 +39,7 @@
 
 	@Test
 	public void pojoStructure() {
-		test("org.openecomp.mso.client.sdno.beans");
+		test("org.onap.so.client.sdno.beans");
 	}
 
 	private void test(String pojoPackage) {
diff --git a/common/src/test/java/org/openecomp/mso/entity/MsoRequestTest.java b/common/src/test/java/org/onap/so/entity/MsoRequestTest.java
similarity index 92%
rename from common/src/test/java/org/openecomp/mso/entity/MsoRequestTest.java
rename to common/src/test/java/org/onap/so/entity/MsoRequestTest.java
index a7fc7e2..73b5c7e 100644
--- a/common/src/test/java/org/openecomp/mso/entity/MsoRequestTest.java
+++ b/common/src/test/java/org/onap/so/entity/MsoRequestTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.entity;
+package org.onap.so.entity;
 
 import org.junit.Test;
-import org.openecomp.mso.openpojo.rules.HasToStringRule;
-import org.openecomp.mso.openpojo.rules.ToStringTester;
+import org.onap.so.openpojo.rules.HasToStringRule;
+import org.onap.so.openpojo.rules.ToStringTester;
 
 import com.openpojo.reflection.PojoClass;
 import com.openpojo.reflection.PojoClassFilter;
@@ -42,7 +42,7 @@
 
     @Test
     public void pojoStructure() {
-        test("org.openecomp.mso.entity");
+        test("org.onap.so.entity");
     }
 
     private void test(String pojoPackage) {
diff --git a/common/src/test/java/org/onap/so/exceptions/ValidationExceptionTest.java b/common/src/test/java/org/onap/so/exceptions/ValidationExceptionTest.java
new file mode 100644
index 0000000..b3ae7ba
--- /dev/null
+++ b/common/src/test/java/org/onap/so/exceptions/ValidationExceptionTest.java
@@ -0,0 +1,53 @@
+/*-
+ * ============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.exceptions;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Created by ANANDSAN on 4/12/2018.
+ */
+public class ValidationExceptionTest {
+    @Test
+    public void validationExceptionOverrideMessageFalse(){
+        ValidationException e = new ValidationException("testMessage", false);
+        Assert.assertEquals("testMessage", e.getMessage());
+    }
+
+    @Test
+    public void validationExceptionOverrideMessageTrue(){
+        ValidationException e = new ValidationException("testMessage", true);
+        Assert.assertEquals("No valid testMessage is specified", e.getMessage());
+    }
+
+    @Test
+    public void validationException(){
+        ValidationException e = new ValidationException("testMessage");
+        Assert.assertEquals("No valid testMessage is specified", e.getMessage());
+    }
+
+    @Test
+    public void validationExceptionVersion(){
+        ValidationException e = new ValidationException("testMessage", "1.0");
+        Assert.assertEquals("testMessage is not valid in the 1.0 version", e.getMessage());
+    }
+}
diff --git a/common/src/test/java/org/openecomp/mso/jsonpath/JsonPathUtilTest.java b/common/src/test/java/org/onap/so/jsonpath/JsonPathUtilTest.java
similarity index 89%
rename from common/src/test/java/org/openecomp/mso/jsonpath/JsonPathUtilTest.java
rename to common/src/test/java/org/onap/so/jsonpath/JsonPathUtilTest.java
index 85bb8b6..06e25da 100644
--- a/common/src/test/java/org/openecomp/mso/jsonpath/JsonPathUtilTest.java
+++ b/common/src/test/java/org/onap/so/jsonpath/JsonPathUtilTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,10 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.jsonpath;
+package org.onap.so.jsonpath;
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.Collections;
 import java.util.Optional;
 
 import org.junit.Test;
@@ -46,4 +47,9 @@
 		assertEquals("json doc found",  Optional.of("{\"nested\":\"value\"}"), JsonPathUtil.getInstance().locateResult(json, "$.test2"));
 		assertEquals("value found",  Optional.of("value"), JsonPathUtil.getInstance().locateResult(json, "$.test2.nested"));
 	}
-}
\ No newline at end of file
+	
+	@Test
+	public void pathListTest() {
+		assertEquals(Collections.singletonList("$['test2']['nested']"), JsonPathUtil.getInstance().getPathList(json, "$.*.*"));
+	}
+}
diff --git a/common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstanceBeansTest.java b/common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstanceBeansTest.java
similarity index 91%
rename from common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstanceBeansTest.java
rename to common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstanceBeansTest.java
index f085330..7a4af78 100644
--- a/common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstanceBeansTest.java
+++ b/common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstanceBeansTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import org.junit.Test;
-import org.openecomp.mso.openpojo.rules.HasToStringRule;
-import org.openecomp.mso.openpojo.rules.ToStringTester;
+import org.onap.so.openpojo.rules.HasToStringRule;
+import org.onap.so.openpojo.rules.ToStringTester;
 
 import com.openpojo.reflection.PojoClass;
 import com.openpojo.reflection.PojoClassFilter;
@@ -41,7 +41,7 @@
 
 	@Test
 	public void pojoStructure() {
-		test("org.openecomp.mso.serviceinstancebeans");
+		test("org.onap.so.serviceinstancebeans");
 	}
 
 	private void test(String pojoPackage) {
diff --git a/common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequestTest.java b/common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequestTest.java
similarity index 98%
rename from common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequestTest.java
rename to common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequestTest.java
index 28cbe79..2e67ff4 100644
--- a/common/src/test/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequestTest.java
+++ b/common/src/test/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequestTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.serviceinstancebeans;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java b/common/src/test/java/org/onap/so/utils/CheckResultsTest.java
similarity index 68%
rename from common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java
rename to common/src/test/java/org/onap/so/utils/CheckResultsTest.java
index eeb7342..0e1da16 100644
--- a/common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java
+++ b/common/src/test/java/org/onap/so/utils/CheckResultsTest.java
@@ -18,18 +18,20 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.utils;
+package org.onap.so.utils;
+
+import static org.junit.Assert.*;
 
 import java.util.List;
 
 import org.junit.Test;
 
-import org.openecomp.mso.utils.CheckResults.CheckResult;
+import org.onap.so.utils.CheckResults.CheckResult;
 
 public class CheckResultsTest {
 
     /**
-     * Test method for {@link org.openecomp.mso.utils.CheckResults#getResults()}.
+     * Test method for {@link org.onap.so.utils.CheckResults#getResults()}.
      */
     @Test
     public final void testGetResults () {
@@ -41,16 +43,16 @@
         cr.addServiceCheckResult ("host2", "service1", 0, "output2Serv");
         cr.addServiceCheckResult ("host2", "service2", 2, "output2Serv2");
         List <CheckResult> res = cr.getResults ();
-        assert(res.size () == 6);
-        assert(res.get (0).getHostname ().equals ("host1"));
-        assert(res.get (1).getHostname ().equals ("host2"));
-        assert(res.get (2).getHostname ().equals ("host1"));
-        assert(res.get (3).getHostname ().equals ("host1"));
-        assert(res.get (4).getHostname ().equals ("host2"));
-        assert(res.get (5).getHostname ().equals ("host2"));
-        assert(res.get (0).getServicename () == null);
-        assert(res.get (3).getServicename ().equals ("service2"));
-        assert(res.get (5).getState () == 2);
+        assertEquals(res.size (), 6);
+        assertEquals(res.get (0).getHostname (), "host1");
+        assertEquals(res.get (1).getHostname (), "host2");
+        assertEquals(res.get (2).getHostname (), "host1");
+        assertEquals(res.get (3).getHostname (), "host1");
+        assertEquals(res.get (4).getHostname (), "host2");
+        assertEquals(res.get (5).getHostname (), "host2");
+        assertEquals(res.get (0).getServicename (), null);
+        assertEquals(res.get (3).getServicename (), "service2");
+        assertEquals(res.get (5).getState (), 2);
     }
 
 }
diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/test/java/org/onap/so/utils/TestAppender.java
similarity index 68%
copy from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
copy to common/src/test/java/org/onap/so/utils/TestAppender.java
index 799e2f8..fba9c71 100644
--- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java
+++ b/common/src/test/java/org/onap/so/utils/TestAppender.java
@@ -18,27 +18,24 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.serviceinstancebeans;
+package org.onap.so.utils;
 
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.AppenderBase;
+
+import java.util.ArrayList;
 import java.util.List;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
-public class RequestList {
-
-    protected Request request;
-
-	public Request getRequest() {
-		return request;
-	}
-
-	public void setRequest(Request request) {
-		this.request = request;
-	}
-
+public class TestAppender extends AppenderBase<ILoggingEvent> {
+    public static List<ILoggingEvent> events = new ArrayList<>();
+ 
 	@Override
-	public String toString() {
-		return new ToStringBuilder(this).append("request", request).toString();
+	protected void append(ILoggingEvent loggingEvent) {
+		if (loggingEvent.getLevel() == Level.INFO) {
+		    events.add(loggingEvent);
+        }
 	}
 
 }
diff --git a/common/src/test/java/org/onap/so/utils/UUIDCheckerTest.java b/common/src/test/java/org/onap/so/utils/UUIDCheckerTest.java
new file mode 100644
index 0000000..b4058a7
--- /dev/null
+++ b/common/src/test/java/org/onap/so/utils/UUIDCheckerTest.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.utils;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.onap.so.logger.MsoLogger;
+
+public class UUIDCheckerTest {
+	private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL, UUIDCheckerTest.class);
+	
+	@Test
+	public void isValidUUIDTest(){
+		String nullID = null;
+		String badID = "This is not a UUID";
+		String id = UUIDChecker.getUUID();
+		assertFalse(UUIDChecker.isValidUUID(nullID));
+		assertFalse(UUIDChecker.isValidUUID(badID));
+		assertTrue(UUIDChecker.isValidUUID(id));
+	}
+
+	@Test
+	public void verifyOldUUIDTest(){
+		String oldID = UUIDChecker.getUUID();
+		String invalidID = "This is not a UUID";
+		assertEquals(UUIDChecker.verifyOldUUID(oldID,LOGGER),oldID);
+		assertNotEquals(UUIDChecker.verifyOldUUID(invalidID,LOGGER),invalidID);
+	}
+	
+	@Test
+	public void generateTest(){
+		String id = UUIDChecker.generateUUID(LOGGER);
+		assertNotNull(id);
+		assertTrue(UUIDChecker.isValidUUID(id));
+		
+		id = UUIDChecker.generateServiceInstanceID(LOGGER);
+		assertNotNull(id);
+		assertTrue(UUIDChecker.isValidUUID(id));
+		
+	}
+}
diff --git a/common/src/test/java/org/onap/so/utils/XMLMarshallerTest.java b/common/src/test/java/org/onap/so/utils/XMLMarshallerTest.java
new file mode 100644
index 0000000..148e1b4
--- /dev/null
+++ b/common/src/test/java/org/onap/so/utils/XMLMarshallerTest.java
@@ -0,0 +1,101 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Tests the XMLMarshaller to ensure that it's able to marshal and unmarshall a POJO
+ */
+
+public class XMLMarshallerTest {
+
+    @Test
+    public void testMarshal() throws Exception {
+        Assert.assertEquals(getXML(), XmlMarshaller.marshal(getPOJO()));
+    }
+
+    @Test
+    public void testUnMarshal() throws Exception {
+        Assert.assertEquals(XmlMarshaller.unMarshal(getXML(), new TestPOJO()), getPOJO());
+    }
+
+    private TestPOJO getPOJO() {
+        TestPOJO testPOJO = new TestPOJO();
+        testPOJO.setFirstName("FN");
+        testPOJO.setLastName("LN");
+        return testPOJO;
+    }
+
+    private String getXML() {
+        return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><testPOJO><firstName>FN</firstName><lastName>LN</lastName></testPOJO>";
+    }
+
+    @XmlRootElement
+    static class TestPOJO {
+        String firstName;
+        String lastName;
+
+        public TestPOJO() {
+        }
+
+
+        public String getFirstName() {
+            return firstName;
+        }
+
+        public void setFirstName(String firstName) {
+            this.firstName = firstName;
+        }
+
+        public String getLastName() {
+            return lastName;
+        }
+
+        public void setLastName(String lastName) {
+            this.lastName = lastName;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (!(o instanceof TestPOJO)) return false;
+
+            TestPOJO testPOJO = (TestPOJO) o;
+
+            if (getFirstName() != null ? !getFirstName().equals(testPOJO.getFirstName()) : testPOJO.getFirstName() != null)
+                return false;
+            return getLastName() != null ? getLastName().equals(testPOJO.getLastName()) : testPOJO.getLastName() == null;
+        }
+
+        @Override
+        public int hashCode() {
+            int result = getFirstName() != null ? getFirstName().hashCode() : 0;
+            result = 31 * result + (getLastName() != null ? getLastName().hashCode() : 0);
+            return result;
+        }
+    }
+
+
+}
diff --git a/common/src/test/java/org/onap/so/web/exceptions/RuntimeExceptionMapperTest.java b/common/src/test/java/org/onap/so/web/exceptions/RuntimeExceptionMapperTest.java
new file mode 100644
index 0000000..8bcc735
--- /dev/null
+++ b/common/src/test/java/org/onap/so/web/exceptions/RuntimeExceptionMapperTest.java
@@ -0,0 +1,71 @@
+/*-
+ * ============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.web.exceptions;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.junit.AfterClass;
+import org.junit.Test;
+import org.onap.so.logger.MsoAlarmLogger;
+
+public class RuntimeExceptionMapperTest {
+
+	
+	@AfterClass
+	public static void tearDown() {
+		MsoAlarmLogger logger = new MsoAlarmLogger();
+		logger.resetAppender();
+	}
+	
+	@Test
+	public void testResponse() {
+		
+		RuntimeExceptionMapper mapper = new RuntimeExceptionMapper();
+		
+		Response r = mapper.toResponse(new RuntimeException("This is the run time exception message"));
+		
+		assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), r.getStatus());
+		assertThat(r.getEntity(), instanceOf(ExceptionResponse.class));
+		assertThat(((ExceptionResponse)r.getEntity()).getMessage(), equalTo("Unexpected Internal Exception"));
+
+	}
+	
+	@Test
+	public void preserve404ExceptionForForwarding() {
+		
+		RuntimeExceptionMapper mapper = new RuntimeExceptionMapper();
+		
+		Response r = mapper.toResponse(new NotFoundException("not found"));
+		
+		assertEquals(Status.NOT_FOUND.getStatusCode(), r.getStatus());
+		assertThat(r.getEntity(), is(nullValue()));
+	}
+	
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java
deleted file mode 100644
index a814c4e..0000000
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java
+++ /dev/null
@@ -1,174 +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.openecomp.mso.adapter_utils.tests;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import org.openecomp.mso.properties.AbstractMsoProperties;
-import org.openecomp.mso.properties.MsoJavaProperties;
-import org.openecomp.mso.properties.MsoPropertiesException;
-import org.openecomp.mso.properties.MsoPropertiesFactory;
-
-/**
- * This class implements test methods of the MsoPropertiesFactory features.
- *
- *
- */
-public class MsoPropertiesFactoryConcurrencyTest {
-
-	public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
-
-	public static final String MSO_PROP_ID = "TEST_PROP";
-	public static final String PATH_MSO_PROP1 = MsoJavaProperties.class.getClassLoader().getResource("mso.properties")
-			.toString().substring(5);
-	public static final String PATH_MSO_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.properties")
-			.toString().substring(5);
-
-	/**
-	 * This method is called before any test occurs. It creates a fake tree from
-	 * scratch
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@BeforeClass
-	public static final void prepare() throws MsoPropertiesException {
-		// it's possible to have it already initialized, as tests are executed in the same JVM
-	    msoPropertiesFactory.removeAllMsoProperties ();
-		msoPropertiesFactory.initializeMsoProperties(MSO_PROP_ID, PATH_MSO_PROP1);
-	}
-
-	private Callable<Integer> taskReload = new Callable<Integer>() {
-		@Override
-		public Integer call() {
-			try {
-				if (!msoPropertiesFactory.reloadMsoProperties()) {
-					return 1;
-				}
-			} catch (Exception e) {
-			    e.printStackTrace ();
-				return 1;
-			}
-			return 0;
-		}
-	};
-
-	private Callable<Integer> taskRead = new Callable<Integer>() {
-		@Override
-		public Integer call() {
-			try {
-				MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_PROP_ID);
-				String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-				String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-				String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-				String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-				String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
-				String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-				String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-				assertEquals(property1, "MT");
-				assertEquals(property2, "http://localhost:5000/v2.0");
-				assertEquals(property3, "John");
-				assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
-				assertEquals(property5, "defaultValue");
-				assertEquals(property6, "1234");
-				assertEquals(property7, "true");
-
-			} catch (MsoPropertiesException e) {
-                e.printStackTrace ();
-				return 1;
-			}
-			return 0;
-		}
-	};
-
-	private Callable<Integer> taskReadAll = new Callable<Integer>() {
-		@Override
-		public Integer call() {
-			try {
-				List<AbstractMsoProperties> msoPropertiesList =  msoPropertiesFactory.getAllMsoProperties();
-				String property1 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-				String property2 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-				String property3 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-				String property4 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-				String property5 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("does.not.exist", "defaultValue");
-				String property6 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-				String property7 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-				assertEquals(property1, "MT");
-				assertEquals(property2, "http://localhost:5000/v2.0");
-				assertEquals(property3, "John");
-				assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
-				assertEquals(property5, "defaultValue");
-				assertEquals(property6, "1234");
-				assertEquals(property7, "true");
-			} catch (Exception e) {
-                e.printStackTrace ();
-				return 1;
-			}
-			return 0;
-		}
-	};
-
-	@Test
-	public final void testGetMsoProperties()
-			throws MsoPropertiesException, InterruptedException, ExecutionException, FileNotFoundException {
-
-		List<Future<Integer>> list = new ArrayList<>();
-		ExecutorService executor = Executors.newFixedThreadPool(20);
-
-		for (int i = 0; i <= 100000; i++) {
-
-			Future<Integer> futureResult = executor.submit(taskRead);
-			list.add(futureResult);
-
-			futureResult = executor.submit(taskReload);
-			list.add(futureResult);
-
-			futureResult = executor.submit(taskReadAll);
-			list.add(futureResult);
-		}
-		executor.shutdown();
-		while (!executor.awaitTermination(5, TimeUnit.SECONDS)) {
-            ;
-        }
-
-		for (Future<Integer> result : list) {
-			assertTrue(result.get().equals(0));
-		}
-
-	}
-
-}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java
deleted file mode 100644
index db58c5a..0000000
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java
+++ /dev/null
@@ -1,611 +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.openecomp.mso.adapter_utils.tests;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.openecomp.mso.properties.MsoJavaProperties;
-import org.openecomp.mso.properties.MsoJsonProperties;
-import org.openecomp.mso.properties.MsoPropertiesException;
-import org.openecomp.mso.properties.MsoPropertiesFactory;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * This class implements test methods of the MsoPropertiesFactory features.
- *
- *
- */
-public class MsoPropertiesFactoryTest {
-
-	public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
-
-	public static final String MSO_JAVA_PROP_ID = "TEST_JAVA_PROP";
-	public static final String MSO_JSON_PROP_ID = "TEST_JSON_PROP";
-	public static final String PATH_MSO_JAVA_PROP1 = MsoJavaProperties.class.getClassLoader().getResource("mso.properties")
-			.toString().substring(5);
-	public static final String PATH_MSO_JAVA_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.properties")
-			.toString().substring(5);
-	public static final String PATH_MSO_JSON_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.json")
-			.toString().substring(5);
-	public static final String PATH_MSO_JSON_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.json")
-			.toString().substring(5);
-	public static final String PATH_MSO_JSON_PROP_BAD = MsoJavaProperties.class.getClassLoader().getResource("mso-bad.json")
-			.toString().substring(5);
-
-	@BeforeClass
-	public static final void prepareBeforeAllTests() {
-		msoPropertiesFactory.removeAllMsoProperties();
-	}
-	/**
-	 * This method is called before any test occurs. It creates a fake tree from
-	 * scratch
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Before
-	public final void prepareBeforeEachTest() throws MsoPropertiesException {
-	    
-		msoPropertiesFactory.initializeMsoProperties(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP1);
-		msoPropertiesFactory.initializeMsoProperties(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP);
-	}
-	
-	@After
-	public final void cleanAfterEachTest() throws MsoPropertiesException {
-		msoPropertiesFactory.removeAllMsoProperties ();
-	}
-
-	@Test 
-	public final void testNotRecognizedFile() {
-		try {
-			msoPropertiesFactory.initializeMsoProperties("BAD_FILE", "new_file.toto");
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Unable to load the MSO properties file because format is not recognized (only .json or .properties): new_file.toto").equals(ep.getMessage()));
-		}
-	}
-	
-	@Test
-	public final void testDoubleInit() {
-
-		try {
-			msoPropertiesFactory.initializeMsoProperties(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP1);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("The factory contains already an instance of this mso properties: "+PATH_MSO_JAVA_PROP1).equals(ep.getMessage()));
-		}
-
-
-	}
-
-	/**
-	 * This method implements a test for the getMsoJavaProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetMsoJavaProperties() throws MsoPropertiesException {
-		assertNotNull(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID));
-		assertTrue(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).size()==8);
-		
-		try {
-			msoPropertiesFactory.getMsoJavaProperties(MSO_JSON_PROP_ID);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties is not JAVA_PROP properties type:" + MSO_JSON_PROP_ID).equals(ep.getMessage()));
-		}
-		
-		try {
-			msoPropertiesFactory.getMsoJavaProperties("DUMB_PROP");
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
-		}
-
-	}
-
-	/**
-	 * This method test the MsoJavaProperties Set, equals and hascode
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testSetMsoJavaProperties() throws MsoPropertiesException  {
-		MsoJavaProperties msoPropChanged = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		msoPropChanged.setProperty("testos", "testos");
-		assertNotNull(msoPropChanged.getProperty("testos", null));
-						
-		// Check no modification occurred on cache one
-		MsoJavaProperties msoPropCache = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		assertNull(msoPropCache.getProperty("testos", null));
-		assertFalse(msoPropChanged.hashCode() != msoPropCache.hashCode());
-		
-		assertFalse(msoPropChanged.equals(null));
-		assertFalse(msoPropChanged.equals(msoPropCache));
-		assertFalse(msoPropChanged.equals(Boolean.TRUE));
-		
-		assertTrue(msoPropChanged.equals(msoPropChanged));
-	}
-	
-	
-	/**
-	 * This method implements a test for the testGetMsoJsonProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetMsoJsonProperties() throws MsoPropertiesException {
-		assertNotNull(msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID));
-
-		try {
-			msoPropertiesFactory.getMsoJsonProperties(MSO_JAVA_PROP_ID);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties is not JSON_PROP properties type:" + MSO_JAVA_PROP_ID).equals(ep.getMessage()));
-		}
-		
-		try {
-			msoPropertiesFactory.getMsoJsonProperties("DUMB_PROP");
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
-		}
-
-	}
-	
-	/**
-	 * This method implements a test for the testGetAllMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetAllMsoProperties() throws MsoPropertiesException {
-		assertNotNull(msoPropertiesFactory.getAllMsoProperties().size()==2);
-
-	}
-
-	/**
-	 * This method implements a test for the testGetAllMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testToString() throws MsoPropertiesException {
-		String dump = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID).toString();
-		assertTrue(dump != null && !dump.isEmpty());
-		
-		dump = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).toString();
-		assertTrue(dump != null && !dump.isEmpty());
-
-	}
-	
-	/**
-	 * This method implements a test for the getProperty of JAVA_PROP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetProperties() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-
-		String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-		String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-		String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-		String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-		String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
-		String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-		String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-		assertEquals(property1, "MT");
-		assertEquals(property2, "http://localhost:5000/v2.0");
-		assertEquals(property3, "John");
-		assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
-		assertEquals(property5, "defaultValue");
-		assertEquals(property6, "1234");
-		assertEquals(property7, "true");
-	}
-
-	/**
-	 * This method implements a test for the getIntProperty JAVA_RPOP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetIntProperties() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		int property1 = msoProperties.getIntProperty("ecomp.mso.cloud.1.test", 345);
-		int property2 = msoProperties.getIntProperty("ecomp.mso.cloud.1.publicNetId", 345);
-		int property3 = msoProperties.getIntProperty("does.not.exist", 345);
-		assertEquals(property1, 1234);
-		assertEquals(property2, 345);
-		assertEquals(property3, 345);
-	}
-
-	/**
-	 * This method implements a test for the getBooleanProperty JAVA_RPOP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetBooleanProperty() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		boolean property1 = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.boolean", false);
-		boolean property2 = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.publicNetId", false);
-		boolean property3NotThere = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.publicNetIdBad", true);
-		
-		assertEquals(property1, true);
-		assertEquals(property2, false);
-		assertEquals(property3NotThere, true);
-	}
-
-	/**
-	 * This method implements a test for the getEncryptedProperty JAVA_RPOP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetEncryptedProperty() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		String property1 = msoProperties.getEncryptedProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue",
-				"aa3871669d893c7fb8abbcda31b88b4f");
-		String property2 = msoProperties.getEncryptedProperty("test", "defaultValue",
-				"aa3871669d893c7fb8abbcda31b88b4f");
-
-		
-		String property3Wrong = msoProperties.getEncryptedProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue",
-				"aa3871669d893c7fb8abbcda31b88b4");
-
-		
-		assertEquals(property1, "changeme");
-		assertEquals(property2, "defaultValue");
-		assertEquals(property3Wrong, "defaultValue");
-	}
-	
-	/**
-	 * This method implements a test for the getEncryptedProperty JAVA_RPOP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testencryptProperty()  {
-
-		assertTrue("FD205490A48D48475607C36B9AD902BF"
-				.contains(msoPropertiesFactory.encryptProperty("changeme", "aa3871669d893c7fb8abbcda31b88b4f").getEntity().toString()));
-
-	
-		assertTrue("Invalid AES key length: 15 bytes".contains(msoPropertiesFactory.encryptProperty("changeme", "aa3871669d893c7fb8abbcda31b88b4").getEntity().toString()));
-
-	}
-	
-	/**
-	 * This method implements a test for the getJSON JSON_RPOP type method.
-	 *
-	 * @throws MsoPropertiesException
-	 */
-	@Test
-	public final void testGetJsonNode() throws MsoPropertiesException {
-		MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-		
-		JsonNode propNode = msoProperties.getJsonRootNode();
-		assertNotNull(propNode);
-		assertFalse(propNode.toString().isEmpty());
-		assertTrue(propNode.isContainerNode());
-		assertNotNull(propNode.path("asdc-connections").path("asdc-controller1"));
-		assertNotNull(propNode.path("asdc-connections").path("asdc-controller2"));
-		
-	}
-
-	/**
-	 * This method implements a test for the reloadMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 *
-	 */
-	@Test
-	public final void testReloadJavaMsoProperties() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-
-		// Do some additional test on propertiesHaveChanged method
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, null));
-		
-		// Change path with bad one
-		try {
-			msoPropertiesFactory.changeMsoPropertiesFilePath("DO_NOT_EXIST", PATH_MSO_JAVA_PROP2);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:DO_NOT_EXIST").equals(ep.getMessage()));
-		} 
-				
-		
-		// Change path with right one
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP2);
-		assertTrue(PATH_MSO_JAVA_PROP2.equals(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).getPropertiesFileName()));
-		
-		assertTrue(msoPropertiesFactory.reloadMsoProperties());
-		assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-		// Do a second time as timer value is set to 2
-		assertTrue(msoPropertiesFactory.reloadMsoProperties());
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-
-		// Get the new one
-		msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-		String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-		String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-		String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-		String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
-		String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-		String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-		assertEquals(property1, "MT2");
-		assertEquals(property2, "defaultValue");
-		assertEquals(property3, "defaultValue");
-		assertEquals(property4, "defaultValue");
-		assertEquals(property5, "defaultValue");
-		assertEquals(property6, "defaultValue");
-		assertEquals(property7, "defaultValue");
-		
-		// Additional test on propertiesHaveChanged
-		msoPropertiesFactory.removeAllMsoProperties();
-
-		// Do some additional test on propertiesHaveChanged method
-		try {
-			msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, null);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
-		} 
-		
-		try {
-			msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
-		} 
-
-	}
-
-	/**
-	 * This method implements a test for the reloadMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 *
-	 */
-	@Test
-	public final void testReloadMoreThanAMinuteMsoProperties() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP2);
-
-		// Simulate 2 minutes
-		msoPropertiesFactory.reloadMsoProperties();
-		assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-		msoPropertiesFactory.reloadMsoProperties();
-
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-
-		// Get the new one
-		msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-		String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-		String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-		String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-		String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
-		String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-		String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-		assertEquals(property1, "MT2");
-		assertEquals(property2, "defaultValue");
-		assertEquals(property3, "defaultValue");
-		assertEquals(property4, "defaultValue");
-		assertEquals(property5, "defaultValue");
-		assertEquals(property6, "defaultValue");
-		assertEquals(property7, "defaultValue");
-
-
-	}
-
-	/**
-	 * This method implements a test for the reloadMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 *
-	 */
-	@Test
-	public final void testReloadBadMsoProperties() throws MsoPropertiesException {
-		MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, "file-does-not-exist.properties");
-		msoPropertiesFactory.reloadMsoProperties();
-		assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-		// Reload it a second time as initial timer parameter was set to 2 
-		msoPropertiesFactory.reloadMsoProperties();
-
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
-
-		// Get the new one
-		msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-		String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
-		String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
-		String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
-		String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
-		String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
-		String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
-		String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
-
-		assertEquals(property1, "defaultValue");
-		assertEquals(property2, "defaultValue");
-		assertEquals(property3, "defaultValue");
-		assertEquals(property4, "defaultValue");
-		assertEquals(property5, "defaultValue");
-		assertEquals(property6, "defaultValue");
-		assertEquals(property7, "defaultValue");
-
-	}
-
-	/**
-	 * This method implements a test for the reloadMsoProperties method.
-	 *
-	 * @throws MsoPropertiesException
-	 *
-	 */
-	@Test
-	public final void testReloadBadMsoJsonProperties() throws MsoPropertiesException {
-		// Load a bad JSON file
-		MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP_BAD);
-
-		msoPropertiesFactory.reloadMsoProperties();
-		assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
-		// Reload it a second time as initial timer parameter was set to 2 
-		msoPropertiesFactory.reloadMsoProperties();
-
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
-
-		// Get the new one
-		msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-		assertNotNull(msoProperties);
-		assertNotNull(msoProperties.getJsonRootNode());
-		assertTrue(msoProperties.getJsonRootNode().size() == 0);
-		
-	}
-	
-	@Test
-	public final void testRemoveMsoProperties() throws MsoPropertiesException {
-		try {
-			msoPropertiesFactory.removeMsoProperties("DUMB_PROP");
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
-		}
-
-		msoPropertiesFactory.removeMsoProperties(MSO_JAVA_PROP_ID);
-
-		try {
-			msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
-
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
-		}
-
-	}
-	
-	@Test
-	public final void testInitializeWithNonExistingPropertiesFile () throws MsoPropertiesException  {
-		try {
-			msoPropertiesFactory.initializeMsoProperties("NEW_BAD_FILE", "no_file.properties");
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Unable to load the MSO properties file because it has not been found:no_file.properties").equals(ep.getMessage()));
-		}
-		
-		// empty object should be returned as no config has been loaded, anyway no exception should be raised because the config ID must be loaded in cache
-		// This is there for automatic reload attempt
-		assertTrue(msoPropertiesFactory.getMsoJavaProperties("NEW_BAD_FILE").size()==0);
-	}
-	
-	
-	@Test
-	public final void testInitializeWithNonExistingJsonFile () throws MsoPropertiesException  {
-		try {
-			msoPropertiesFactory.initializeMsoProperties("NEW_BAD_FILE", "no_file.json");
-			fail ("MsoPropertiesException should have been raised");
-		} catch (MsoPropertiesException ep) {
-			assertTrue(("Unable to load the MSO properties file because it has not been found:no_file.json").equals(ep.getMessage()));
-		}
-		
-		// empty object should be returned as no config has been loaded, anyway no exception should be raised because the config ID must be loaded in cache
-		// This is there for automatic reload attempt
-		assertTrue(msoPropertiesFactory.getMsoJsonProperties("NEW_BAD_FILE").getJsonRootNode()!=null);
-		assertTrue("{}".equals(msoPropertiesFactory.getMsoJsonProperties("NEW_BAD_FILE").getJsonRootNode().toString()));
-	}
-	
-	@Test
-	public final void testShowProperties() {
-		assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("/target/test-classes/mso.json(Timer:2mins)"));
-		assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("asdc-controller1"));
-		assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("/target/test-classes/mso.properties(Timer:2mins):"));
-		assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("ecomp.mso.cloud.1.keystoneUrl"));
-		
-	}
-
-	@Test 
-	public final void testGetEncryptedPropertyJson() throws MsoPropertiesException {
-		MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-		assertTrue("ThePassword".equals(msoProperties.getEncryptedProperty(msoProperties.getJsonRootNode().get("asdc-connections").get("asdc-controller1").get("asdcPassword"),"defautlvalue","566B754875657232314F5548556D3665")));
-		
-		assertTrue("defautlvalue".equals(msoProperties.getEncryptedProperty(msoProperties.getJsonRootNode().get("asdc-connections").get("asdc-controller1").get("asdcPassword"),"defautlvalue","566B754875657232314F5548556D366")));
-		
-		
-	}
-	
-	@Test
-	public final void testHashcodeAndEqualsMsoJsonProperties() throws MsoPropertiesException {
-	
-		MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP2);
-
-		msoPropertiesFactory.reloadMsoProperties();
-		assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
-		// Reload it a second time as initial timer parameter was set to 2 
-		msoPropertiesFactory.reloadMsoProperties();
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
-		
-		// Get the new one
-		MsoJsonProperties msoProperties2 = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
-		assertFalse(msoProperties.hashCode()==msoProperties2.hashCode());
-		
-		assertFalse(msoProperties.equals(msoProperties2));
-		assertTrue(msoProperties.equals(msoProperties));
-		assertFalse(msoProperties.equals(null));
-		assertFalse(msoProperties.toString().isEmpty());
-
-		// Test a reload with timer set to 1 in PATH_MSO_JSON_PROP2
-		msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP);
-
-		msoPropertiesFactory.reloadMsoProperties();
-		assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties2));
-	
-	}
-	
-}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java
deleted file mode 100644
index 419a82b..0000000
--- a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java
+++ /dev/null
@@ -1,88 +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.openecomp.mso.adapter_utils.tests;
-
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import org.openecomp.mso.properties.MsoJavaProperties;
-import org.openecomp.mso.properties.MsoPropertiesException;
-import org.openecomp.mso.properties.MsoPropertiesFactory;
-import org.openecomp.mso.properties.MsoPropertyInitializer;
-
-public class MsoPropertyInitializerTest {
-
-	public static final String ASDC_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.json").toString().substring(5);
-	public static ServletContextEvent servletContextEvent = Mockito.mock(ServletContextEvent.class);
-	public static ServletContext servletContext = Mockito.mock(ServletContext.class);
-    public MsoPropertyInitializer msoPropInitializer = new MsoPropertyInitializer();
-	    
-	@BeforeClass
-	public static final void prepareBeforeClass() throws MsoPropertiesException {
-
-		Mockito.when(servletContextEvent.getServletContext()).thenReturn(servletContext);
-	}
-	
-	@Before
-	public final void preparebeforeEachTest() throws MsoPropertiesException {
-		MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
-		msoPropertiesFactory.removeAllMsoProperties();
-	
-	}
-		
-	@Test
-	public void testContextInitialized() throws MsoPropertiesException {
-		Mockito.when(servletContext.getInitParameter("mso.configuration")).thenReturn("MSO_PROP_ASDC="+ASDC_PROP);
-		msoPropInitializer.contextInitialized(servletContextEvent);
-		
-		MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
-		assertNotNull(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC"));
-		assertFalse("{}".equals(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().toString()));
-		assertTrue(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().get("asdc-connections")!= null);
-	}
-	
-	@Test
-	public void testContextInitializedFailure() throws MsoPropertiesException {
-		Mockito.when(servletContext.getInitParameter("mso.configuration")).thenReturn("MSO_PROP_ASDC="+"Does_not_exist.json");
-		msoPropInitializer.contextInitialized(servletContextEvent);
-		
-		// No exception should be raised, log instead
-		MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
-				
-		assertTrue("{}".equals(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().toString()));
-		assertTrue(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().get("asdc-connections")== null);
-		
-		
-	
-	}
-	
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIConfigurationTest.java b/common/src/test/java/org/openecomp/mso/client/aai/AAIConfigurationTest.java
deleted file mode 100644
index da63b27..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIConfigurationTest.java
+++ /dev/null
@@ -1,75 +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.openecomp.mso.client.aai;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
-import static org.junit.Assert.assertEquals;
-
-import java.util.UUID;
-
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.openecomp.mso.client.aai.entities.uri.AAIUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-import org.openecomp.mso.serviceinstancebeans.ModelInfo;
-import org.openecomp.mso.serviceinstancebeans.RequestDetails;
-
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
-
-public class AAIConfigurationTest {
-
-	@Rule
-	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
-	
-	@Ignore
-	@Test
-	public void verifyCreate() {
-		AAIConfigurationClient aaiConfiguration = new AAIConfigurationClient();
-		ModelInfo modelInfo = new ModelInfo();
-		modelInfo.setModelInvariantId("testInvariantID");
-		modelInfo.setModelVersionId("testVersionID");
-		modelInfo.setModelCustomizationId("testCustomizationID");
-		RequestDetails requestDetails = new RequestDetails();
-		requestDetails.setModelInfo(modelInfo);
-		String configurationType = "test";
-		String configurationSubType = "test";
-		aaiConfiguration.createConfiguration(requestDetails, UUID.randomUUID().toString(), configurationType, configurationSubType);
-	}
-	
-	@Test
-	public void verifyNotExists() {
-		AAIUri path = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "test2");
-		wireMockRule.stubFor(get(
-				urlPathEqualTo("/aai/v11" + path.build()))
-				.willReturn(
-					aResponse()
-					.withHeader("Content-Type", "text/plain")
-					.withBody("hello")
-					.withStatus(404)));
-		AAIConfigurationClient aaiConfiguration = new AAIConfigurationClient();
-		boolean result = aaiConfiguration.configurationExists("test2");
-		assertEquals("path not found", false, result);
-	}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAIResourcesClientTest.java b/common/src/test/java/org/openecomp/mso/client/aai/AAIResourcesClientTest.java
deleted file mode 100644
index c7cc549..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAIResourcesClientTest.java
+++ /dev/null
@@ -1,111 +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.openecomp.mso.client.aai;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.delete;
-import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.put;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
-public class AAIResourcesClientTest {
-
-	
-	
-	@Rule
-	public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
-	
-	@Test
-	public void verifyNotExists() {
-		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
-		wireMockRule.stubFor(get(
-				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString()))
-				.willReturn(
-					aResponse()
-					.withHeader("Content-Type", "text/plain")
-					.withBody("hello")
-					.withStatus(404)));
-		AAIResourcesClient client = new AAIResourcesClient();
-		boolean result = client.exists(path);
-		assertEquals("path not found", false, result);
-	}
-	
-	@Test
-	public void verifyDelete() {
-		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
-		wireMockRule.stubFor(get(
-				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString()))
-				.willReturn(
-					aResponse()
-					.withHeader("Content-Type", "application/json")
-					.withBodyFile("aai/resources/mockObject.json")
-					.withStatus(200)));
-		wireMockRule.stubFor(delete(
-				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString()))
-				.withQueryParam("resource-version", equalTo("1234"))
-				.willReturn(
-					aResponse()
-					.withStatus(204)));
-		AAIResourcesClient client = new AAIResourcesClient();
-		client.delete(path);
-	}
-	
-	@Test
-	public void verifyBasicAuth() {
-		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
-		wireMockRule.stubFor(get(
-				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString()))
-				.withHeader("Authorization", equalTo("Basic TVNPOk1TTw=="))
-				.willReturn(
-					aResponse()
-					.withHeader("Content-Type", "application/json")
-					.withBodyFile("aai/resources/mockObject.json")
-					.withStatus(200)));
-		AAIResourcesClient client = new AAIResourcesClient();
-		client.get(path);
-	}
-	
-	@Test
-	public void verifyConnect() {
-		AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
-		AAIResourceUri path2 = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
-		wireMockRule.stubFor(put(
-				urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build().toString() + "/relationship-list/relationship"))
-				.willReturn(
-					aResponse()
-					.withHeader("Content-Type", "application/json")
-					.withStatus(200)));
-		
-		AAIResourceUri pathClone = path.clone();
-		AAIResourcesClient client = new AAIResourcesClient();
-		client.connect(path, path2);
-		assertEquals("uri not modified", pathClone.build().toString(), path.build().toString());
-	}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/AAITransactionalClientTest.java b/common/src/test/java/org/openecomp/mso/client/aai/AAITransactionalClientTest.java
deleted file mode 100644
index 1abb940..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/AAITransactionalClientTest.java
+++ /dev/null
@@ -1,83 +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.openecomp.mso.client.aai;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.Map;
-import java.util.Optional;
-
-import org.junit.Test;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-
-public class AAITransactionalClientTest {
-
-	
-	private final static String AAI_JSON_FILE_LOCATION = "src/test/resources/__files/aai/bulkprocess/";
-	
-	@Test
-	public void run() throws IOException {
-		
-		
-		AAIResourcesClient client = new AAIResourcesClient();
-		AAIResourceUri uriA = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test1");
-		AAIResourceUri uriB = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test2");
-		AAIResourceUri uriC = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
-		AAIResourceUri uriD = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test4");
-		AAIResourceUri uriE = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test5");
-		AAIResourceUri uriF = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test6");
-		
-		AAIResourceUri uriAClone = uriA.clone();
-		AAITransactionalClient transactions = client
-				.beginTransaction().connect(uriA, uriB).connect(uriC, uriD)
-				.beginNewTransaction().connect(uriE, uriF);
-		ObjectMapper mapper = new AAICommonObjectMapperProvider().getMapper();
-		mapper.enable(SerializationFeature.INDENT_OUTPUT);
-		String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
-		Map<String, Object> map1 = mapper.readValue(serializedTransactions, new TypeReference<Map<String, Object>>(){});
-		Map<String, Object> map2 = mapper.readValue(getJson("test-request.json"), new TypeReference<Map<String, Object>>(){});
-		assertEquals("payloads are equal", map2, map1);
-		assertEquals("uri not manipulated", uriAClone.build().toString(), uriA.build().toString());
-	}
-	
-	@Test
-	public void verifyResponse() throws IOException {
-		AAIResourcesClient client = new AAIResourcesClient();
-		AAITransactionalClient transactions = client
-				.beginTransaction();
-		assertEquals("success status", Optional.empty(), transactions.locateErrorMessages(getJson("response-success.json")));
-		assertEquals(transactions.locateErrorMessages(getJson("response-failure.json")).get(), "another error message\nmy great error");
-
-		
-	}
-	
-	private String getJson(String filename) throws IOException {
-		 return new String(Files.readAllBytes(Paths.get(AAI_JSON_FILE_LOCATION + filename)));
-	}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactoryTest.java b/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactoryTest.java
deleted file mode 100644
index a62d4b8..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactoryTest.java
+++ /dev/null
@@ -1,40 +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.openecomp.mso.client.aai.entities.uri;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
-
-public class AAIUriFactoryTest {
-
-	
-	
-	@Test
-	public void automaticallyEncodeUriTemplateValue() {
-		
-		AAIUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "VIP(VelocitytoIP)");
-		
-		String expected = "/network/generic-vnfs/generic-vnf/VIP%28VelocitytoIP%29";
-		assertEquals(expected, uri.build().toString());
-	}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOwningEntityTest.java b/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOwningEntityTest.java
deleted file mode 100644
index bc2ae41..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIOwningEntityTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : SO
-* ================================================================================
-* Copyright 2018 TechMahindra
-*=================================================================================
-* 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.openecomp.mso.client.aai.objects;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-public class AAIOwningEntityTest {
-	AAIOwningEntity aaiOE= new AAIOwningEntity();
-	@Test
-	public void test() {
-		aaiOE.setOwningEntityId("OwningEntityId");
-		aaiOE.setOwningEntityName("OwningEntityName");
-		assertEquals(aaiOE.getOwningEntityId(), "OwningEntityId");
-		assertEquals(aaiOE.getOwningEntityName(), "OwningEntityName");
-		aaiOE.withOwningEntity("OwningEntityId1", "OwningEntityName1");
-		assert(aaiOE.getUri()!=null);
-		}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIProjectTest.java b/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIProjectTest.java
deleted file mode 100644
index 872b17a..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIProjectTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : SO
-* ================================================================================
-* Copyright 2018 TechMahindra
-*=================================================================================
-* 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.openecomp.mso.client.aai.objects;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-public class AAIProjectTest {
-
-	
-	@Test
-	public void test() {
-		AAIProject aaiP =new AAIProject();
-		aaiP.setProjectName("projectName");
-		assertEquals(aaiP.getProjectName(),"projectName");
-		aaiP.withProjectName("projectName");
-		assert(aaiP.getUri()!=null);
-
-		}
-}
diff --git a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIServiceInstanceTest.java b/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIServiceInstanceTest.java
deleted file mode 100644
index 692e3bb..0000000
--- a/common/src/test/java/org/openecomp/mso/client/aai/objects/AAIServiceInstanceTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : SO
-* ================================================================================
-* Copyright 2018 TechMahindra
-*=================================================================================
-* 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.openecomp.mso.client.aai.objects;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-public class AAIServiceInstanceTest {
-
-	@Test
-	public void test() {
-		AAIServiceInstance aaiSI= new AAIServiceInstance();
-		aaiSI.setEnvironmentContext("environmentContext");
-		aaiSI.setModelInvariantUuid("modelInvariantUuid");
-		aaiSI.setModelUuid("modelUuid");
-		aaiSI.setoStatus("oStatus");
-		aaiSI.setServiceInstanceId("serviceInstanceId");
-		aaiSI.setServiceInstanceName("serviceInstanceName");
-		aaiSI.setServiceRole("serviceRole");
-		aaiSI.setServiceType("serviceType");
-		aaiSI.setWorkloadContext("workloadContext");
-		assertEquals(aaiSI.getEnvironmentContext(), "environmentContext");
-		assertEquals(aaiSI.getModelInvariantUuid(), "modelInvariantUuid");
-		assertEquals(aaiSI.getModelUuid(), "modelUuid");
-		assertEquals(aaiSI.getoStatus(), "oStatus");
-		assertEquals(aaiSI.getServiceInstanceId(), "serviceInstanceId");
-		assertEquals(aaiSI.getServiceInstanceName(), "serviceInstanceName");
-		assertEquals(aaiSI.getServiceRole(), "serviceRole");
-		assertEquals(aaiSI.getServiceType(), "serviceType");
-		assertEquals(aaiSI.getWorkloadContext(), "workloadContext");
-		aaiSI.withServiceInstance("serviceInstanceId");
-		assert(aaiSI.getUri()!=null);
-	}
-
-}
diff --git a/common/src/test/java/org/openecomp/mso/utils/RootIgnoringObjectMapperTest.java b/common/src/test/java/org/openecomp/mso/utils/RootIgnoringObjectMapperTest.java
deleted file mode 100644
index 1c7e845..0000000
--- a/common/src/test/java/org/openecomp/mso/utils/RootIgnoringObjectMapperTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *	  http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.utils;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonRootName;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class RootIgnoringObjectMapperTest {
-
-	@Test
-	public void someObjectWithoutRootTest() throws Exception {
-		ObjectMapper mapper = new RootIgnoringObjectMapper<SomeObject>(SomeObject.class);
-
-		String content = "{"
-			+ "\"attribute\":\"charm\""
-			+ "}";
-
-		SomeObject response = mapper.readValue(content, SomeObject.class);
-		assertEquals("SomeObject[attribute=charm]", response.toString());
-	}
-	
-	@Test
-	public void someObjectWithRootTest() throws Exception {
-		ObjectMapper mapper = new RootIgnoringObjectMapper<SomeObject>(SomeObject.class);
-
-		String content = "{\"SomeObject\":{"
-			+ "\"attribute\":\"charm\""
-			+ "}}";
-
-		SomeObject response = mapper.readValue(content, SomeObject.class);
-		assertEquals("SomeObject[attribute=charm]", response.toString());
-	}
-	
-	@Test
-	public void annotatedObjectWithoutRootTest() throws Exception {
-		ObjectMapper mapper = new RootIgnoringObjectMapper<AnnotatedObject>(AnnotatedObject.class);
-
-		String content = "{"
-			+ "\"attribute\":\"charm\""
-			+ "}";
-
-		AnnotatedObject response = mapper.readValue(content, AnnotatedObject.class);
-		assertEquals("AnnotatedObject[attribute=charm]", response.toString());
-	}
-	
-	@Test
-	public void annotatedObjectWithRootTest() throws Exception {
-		ObjectMapper mapper = new RootIgnoringObjectMapper<AnnotatedObject>(AnnotatedObject.class);
-
-		String content = "{\"annotated-object\":{"
-			+ "\"attribute\":\"charm\""
-			+ "}}";
-
-		AnnotatedObject response = mapper.readValue(content, AnnotatedObject.class);
-		assertEquals("AnnotatedObject[attribute=charm]", response.toString());
-	}
-
-	public static class SomeObject {
-
-		@JsonProperty("attribute")
-		private String attribute;
-
-		public String toString() {
-			return getClass().getSimpleName() + "[attribute=" + attribute + "]";
-		}
-	}
-
-   	@JsonRootName(value = "annotated-object")
-	public static class AnnotatedObject extends SomeObject {
-	}
-}
\ No newline at end of file
diff --git a/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerTest.java b/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerTest.java
deleted file mode 100644
index fa00246..0000000
--- a/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.utils;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.openecomp.mso.logger.MsoLogger;
-
-public class UUIDCheckerTest {
-
-	private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);	
-	
-    @Test
-    public void testUUIDChecker()  throws Exception {
-    	boolean isValidUUID = UUIDChecker.isValidUUID("invalid-uuid");
-    	assertEquals(false, isValidUUID);
-    	String validUUID = UUIDChecker.verifyOldUUID("invalid-uuid", LOGGER);
-    	assertEquals(true, UUIDChecker.isValidUUID(validUUID));
-    	String generatedUUID = UUIDChecker.generateUUID(LOGGER);
-    	assertEquals(true, UUIDChecker.isValidUUID(generatedUUID));
-    	String generatedServiceInstanceId = UUIDChecker.generateServiceInstanceID(LOGGER);
-    	assertEquals(true, UUIDChecker.isValidUUID(generatedServiceInstanceId));
-    }
-
-}
diff --git a/common/src/test/resources/__files/aai/bulkprocess/test-request-small.json b/common/src/test/resources/__files/aai/bulkprocess/test-request-small.json
new file mode 100644
index 0000000..9739281
--- /dev/null
+++ b/common/src/test/resources/__files/aai/bulkprocess/test-request-small.json
@@ -0,0 +1,10 @@
+{
+  "transactions" : [ {
+    "put" : [ {
+      "uri" : "/network/generic-vnfs/generic-vnf/test1/relationship-list/relationship",
+      "body" : {
+        "related-link" : "/cloud-infrastructure/pservers/pserver/test2"
+      }
+    } ] 
+  } ] 
+}
\ No newline at end of file
diff --git a/common/src/test/resources/__files/aai/resources/e2e-complex.json b/common/src/test/resources/__files/aai/resources/e2e-complex.json
index 6fc9cb3..21bacbd 100644
--- a/common/src/test/resources/__files/aai/resources/e2e-complex.json
+++ b/common/src/test/resources/__files/aai/resources/e2e-complex.json
@@ -24,7 +24,7 @@
                                 "relationship": [
                                     {
                                         "related-to": "vpls-pe",
-                                        "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vpls-pes/vpls-pe/sfcca301vr1",
+                                        "related-link": "https://localhost:8443/aai/v9/network/vpls-pes/vpls-pe/sfcca301vr1",
                                         "relationship-data": [
                                             {
                                                 "relationship-key": "vpls-pe.equipment-name",
@@ -48,7 +48,7 @@
                     "relationship": [
                         {
                             "related-to": "vce",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053",
+                            "related-link": "https://localhost:8443/aai/v9/network/vces/vce/a9fec18e-1ea3-40e4-a6c0-a89b3de07053",
                             "relationship-data": [
                                 {
                                     "relationship-key": "vce.vnf-id",
@@ -64,7 +64,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj104snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj104snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -79,7 +79,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj105snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj105snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -94,7 +94,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/compute_host",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/compute_host",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -109,7 +109,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj106snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj106snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -124,7 +124,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj126sd9",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj126sd9",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -139,7 +139,7 @@
                         },
                         {
                             "related-to": "vce",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vces/vce/8ae1e5f8-61f1-4c71-913a-b40cc4593cb9",
+                            "related-link": "https://localhost:8443/aai/v9/network/vces/vce/8ae1e5f8-61f1-4c71-913a-b40cc4593cb9",
                             "relationship-data": [
                                 {
                                     "relationship-key": "vce.vnf-id",
@@ -155,7 +155,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj102sta",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj102sta",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -170,7 +170,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnjtax102",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnjtax102",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -185,7 +185,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj107snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj107snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -200,7 +200,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj118snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj118snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -215,7 +215,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj110snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj110snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -230,7 +230,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj109snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj109snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -245,7 +245,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj114snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj114snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -260,7 +260,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj119snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj119snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -275,7 +275,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj116snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj116snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -290,7 +290,7 @@
                         },
                         {
                             "related-to": "vce",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vces/vce/a2935fa9-b743-49f4-9813-a127f13c4e93",
+                            "related-link": "https://localhost:8443/aai/v9/network/vces/vce/a2935fa9-b743-49f4-9813-a127f13c4e93",
                             "relationship-data": [
                                 {
                                     "relationship-key": "vce.vnf-id",
@@ -306,7 +306,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj108snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj108snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -321,7 +321,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj123sd9",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj123sd9",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -336,7 +336,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj101snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj101snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -351,7 +351,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj102snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj102snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -366,7 +366,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnjtax101",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnjtax101",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -381,7 +381,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj113snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj113snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -396,7 +396,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj111snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj111snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -411,7 +411,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj103snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj103snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -426,7 +426,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj117snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj117snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -441,7 +441,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj101sta",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj101sta",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -456,7 +456,7 @@
                         },
                         {
                             "related-to": "vce",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/network/vces/vce/c7fe7698-8063-4e26-8bd3-ca3edde0b0d4",
+                            "related-link": "https://localhost:8443/aai/v9/network/vces/vce/c7fe7698-8063-4e26-8bd3-ca3edde0b0d4",
                             "relationship-data": [
                                 {
                                     "relationship-key": "vce.vnf-id",
@@ -472,7 +472,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj120snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj120snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -487,7 +487,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj124sd9",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj124sd9",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -502,7 +502,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj125sd9",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj125sd9",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -517,7 +517,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj112snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj112snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -532,7 +532,7 @@
                         },
                         {
                             "related-to": "pserver",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj115snd",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/pservers/pserver/mtcnj115snd",
                             "relationship-data": [
                                 {
                                     "relationship-key": "pserver.hostname",
@@ -547,7 +547,7 @@
                         },
                         {
                             "related-to": "cloud-region",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtcnj2",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtcnj2",
                             "relationship-data": [
                                 {
                                     "relationship-key": "cloud-region.cloud-owner",
@@ -567,7 +567,7 @@
                         },
                         {
                             "related-to": "oam-network",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/f9263cat-4eaa-43a0-bea4-adcf6e123456",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/f9263cat-4eaa-43a0-bea4-adcf6e123456",
                             "relationship-data": [
                                 {
                                     "relationship-key": "cloud-region.cloud-owner",
@@ -591,7 +591,7 @@
                         },
                         {
                             "related-to": "oam-network",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/b9263fab-4eaa-43a0-bea4-adcf6e999999",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/b9263fab-4eaa-43a0-bea4-adcf6e999999",
                             "relationship-data": [
                                 {
                                     "relationship-key": "cloud-region.cloud-owner",
@@ -615,7 +615,7 @@
                         },
                         {
                             "related-to": "oam-network",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/cf33dc95-c5d2-48fd-8078-fd949363f63b",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/oam-networks/oam-network/cf33dc95-c5d2-48fd-8078-fd949363f63b",
                             "relationship-data": [
                                 {
                                     "relationship-key": "cloud-region.cloud-owner",
@@ -639,7 +639,7 @@
                         },
                         {
                             "related-to": "availability-zone",
-                            "related-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/availability-zones/availability-zone/mtcnj-esx-az01",
+                            "related-link": "https://localhost:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/availability-zones/availability-zone/mtcnj-esx-az01",
                             "relationship-data": [
                                 {
                                     "relationship-key": "cloud-region.cloud-owner",
diff --git a/common/src/test/resources/__files/aai/resources/service-instance-pathed-query.json b/common/src/test/resources/__files/aai/resources/service-instance-pathed-query.json
index 6ec513e..0fa9515 100644
--- a/common/src/test/resources/__files/aai/resources/service-instance-pathed-query.json
+++ b/common/src/test/resources/__files/aai/resources/service-instance-pathed-query.json
@@ -2,7 +2,7 @@
   "results": [
     {
       "resource-type": "service-instance",
-      "resource-link": "https://aai-conexus-e2e.test.att.com:8443/aai/v9/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3"
+      "resource-link": "https://localhost:8443/aai/v9/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3"
     }
   ]
 }
\ No newline at end of file
diff --git a/common/src/test/resources/__files/grm/endpoints.json b/common/src/test/resources/__files/grm/endpoints.json
index 2094754..7e92c21 100644
--- a/common/src/test/resources/__files/grm/endpoints.json
+++ b/common/src/test/resources/__files/grm/endpoints.json
@@ -7,7 +7,7 @@
             "minor": 0,
             "patch": "0"
          },
-         "hostAddress": "135.144.120.218",
+         "hostAddress": "192.168.120.218",
          "listenPort": "32004",
          "latitude": "37.7022",
          "longitude": "121.9358",
@@ -54,7 +54,7 @@
             "minor": 0,
             "patch": "0"
          },
-         "hostAddress": "135.144.120.22",
+         "hostAddress": "192.168.120.22",
          "listenPort": "32004",
          "latitude": "1.0",
          "longitude": "1.0",
@@ -101,7 +101,7 @@
             "minor": 0,
             "patch": "0"
          },
-         "hostAddress": "135.144.120.218",
+         "hostAddress": "192.168.120.218",
          "listenPort": "32002",
          "latitude": "1.0",
          "longitude": "1.0",
diff --git a/common/src/test/resources/dmaap.properties b/common/src/test/resources/dmaap.properties
index 8adb8e4..7ce1019 100644
--- a/common/src/test/resources/dmaap.properties
+++ b/common/src/test/resources/dmaap.properties
@@ -1,7 +1,7 @@
-sdno.health-check.dmaap.username=m04768@mso.ecomp.att.com
+sdno.health-check.dmaap.username=testuser
 sdno.health-check.dmaap.password=eHQ1cUJrOUc
 sdno.health-check.dmaap.subscriber.topic=com.att.sdno.test-health-diagnostic-v02
 sdno.health-check.dmaap.publisher.topic=com.att.sdno.test-health-diagnostic-v02
-ruby.create-ticket-request.dmaap.username=m04768@mso.ecomp.att.com
+ruby.create-ticket-request.dmaap.username=testuser
 ruby.create-ticket-request.dmaap.password=eHQ1cUJrOUc
 ruby.create-ticket-request.publisher.topic=com.att.pdas.st1.msoCMFallout-v1
\ No newline at end of file
diff --git a/common/src/test/resources/logback-test.xml b/common/src/test/resources/logback-test.xml
index b1888ac..c4248bf 100644
--- a/common/src/test/resources/logback-test.xml
+++ b/common/src/test/resources/logback-test.xml
@@ -21,6 +21,7 @@
 <configuration scan="false" debug="true">
   <!--<jmxConfigurator /> -->
   <!-- directory path for all other type logs -->
+
   <property name="logDir" value="./target" />
   
   <!-- directory path for debugging type logs -->
@@ -44,15 +45,8 @@
 
   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
   <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
-  
 
-  <!-- Example evaluator filter applied against console appender -->
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>${defaultPattern}</pattern>
-    </encoder>
-  </appender>
-
+  <appender name="test" class="org.onap.so.utils.TestAppender"/>
   <!-- ============================================================================ -->
   <!-- EELF Appenders -->
   <!-- ============================================================================ -->
@@ -148,24 +142,35 @@
     <includeCallerData>true</includeCallerData>
   </appender>
  
-  
+  	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>%d{HH:mm:ss.SSS} [%thread] |%X{RequestId}| %-5level
+				%logger{1024} - %msg%n
+			</pattern>
+		</encoder>
+	</appender>
+	
   <!-- ============================================================================ -->
   <!--  EELF loggers -->
   <!-- ============================================================================ -->
 
-  <logger name="com.att.eelf.audit" level="info" additivity="false">
-    <appender-ref ref="asyncEELFAudit" />
+  <logger name="com.att.eelf.audit" level="${so.log.level:-DEBUG}" additivity="false">
+    <appender-ref ref="asyncEELFAudit" /> 
   </logger>
   
-  <logger name="com.att.eelf.metrics" level="info" additivity="false">
-        <appender-ref ref="asyncEELFMetrics" />
+  <logger name="METRIC" level="${so.log.level:-DEBUG}" additivity="true">
+    <appender-ref ref="asyncEELFMetrics" />
+    <appender-ref ref="test" />
   </logger>
 
-  <logger name="com.att.eelf.error" level="debug" additivity="false">
+  <logger name="com.att.eelf.error" level="${so.log.level:-DEBUG}" additivity="false">
     <appender-ref ref="asyncEELFError" />
-  </logger> 
-  <root level="INFO">
+  </logger>
+  
+  <root level="${so.log.level:-DEBUG}">
     <appender-ref ref="asyncEELFDebug" />
+    <appender-ref ref="STDOUT" />
   </root>
 
-</configuration>
+
+</configuration>
\ No newline at end of file
diff --git a/common/src/test/resources/mso-bad.json b/common/src/test/resources/mso-bad.json
index 57b2714..1aaea50 100644
--- a/common/src/test/resources/mso-bad.json
+++ b/common/src/test/resources/mso-bad.json
@@ -1,20 +1,20 @@
 {
-  "asdc-connections":{,
-    "asdc-controller1":{
-        "asdcUser": "user1",
-        "asdcConsumerGroup": "consumer1",
-        "asdcConsumerId": "consumer1",
-        "asdcEnvironmentName": "PROD",
-        "asdcAddress": "localhost:8443",
-        "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-    },
-    "asdc-controller2":{
-        "asdcUser": "user2",
-        "asdcConsumerGroup": "consumer2",
-        "asdcConsumerId": "consumer2",
-        "asdcEnvironmentName": "E2E",
-        "asdcAddress": "localhost:8443",
-        "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-    }
-  }
-}
+	"asdc-connections": {
+		"asdc-controller1": {
+			"asdcUser": "user1",
+			"asdcConsumerGroup": "consumer1",
+			"asdcConsumerId": "consumer1",
+			"asdcEnvironmentName": "PROD",
+			"asdcAddress": "localhost:8443",
+			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+		},
+		"asdc-controller2": {
+			"asdcUser": "user2",
+			"asdcConsumerGroup": "consumer2",
+			"asdcConsumerId": "consumer2",
+			"asdcEnvironmentName": "E2E",
+			"asdcAddress": "localhost:8443",
+			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+		}
+	}
+}
\ No newline at end of file
diff --git a/common/src/test/resources/org/openecomp/mso/client/ruby/create-ticket/create-ticket-request.json b/common/src/test/resources/org/onap/so/client/ruby/create-ticket/create-ticket-request.json
similarity index 100%
rename from common/src/test/resources/org/openecomp/mso/client/ruby/create-ticket/create-ticket-request.json
rename to common/src/test/resources/org/onap/so/client/ruby/create-ticket/create-ticket-request.json
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-post-check-request.json b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-post-check-request.json
similarity index 92%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-post-check-request.json
rename to common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-post-check-request.json
index 8c3ca19..2c46b5a 100644
--- a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-post-check-request.json
+++ b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-post-check-request.json
@@ -7,6 +7,7 @@
 				"request-id": "test-request-id",
 				"health-diagnostic-code": "VROUTER000004",
 				"operation-type": "lport_mirroring_check",
+				"send-detailed-cmd-response": "false",
 				"aai-param-list": [
 					{
 						"key": "configuration-id",
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-pre-check-request.json b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-pre-check-request.json
similarity index 92%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-pre-check-request.json
rename to common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-pre-check-request.json
index 08220ab..bf168b0 100644
--- a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-lport-mirror-pre-check-request.json
+++ b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-lport-mirror-pre-check-request.json
@@ -7,6 +7,7 @@
 				"request-id": "test-request-id",
 				"health-diagnostic-code": "VROUTER000003",
 				"operation-type": "lport_mirroring_check",
+				"send-detailed-cmd-response": "false",
 				"aai-param-list": [
 					{
 						"key": "configuration-id",
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-post-check-request.json b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-post-check-request.json
similarity index 91%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-post-check-request.json
rename to common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-post-check-request.json
index 834fcc8..89e505e 100644
--- a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-post-check-request.json
+++ b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-post-check-request.json
@@ -7,6 +7,7 @@
 				"request-id": "test-request-id",
 				"health-diagnostic-code": "VROUTER000004",
 				"operation-type": "mirroring_check",
+				"send-detailed-cmd-response": "false",
 				"aai-param-list": [
 					{
 						"key": "configuration-id",
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-pre-check-request.json b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-pre-check-request.json
similarity index 91%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-pre-check-request.json
rename to common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-pre-check-request.json
index 19d934d..86897c8 100644
--- a/common/src/test/resources/org/openecomp/mso/client/sdno/health-check/custom-port-mirror-pre-check-request.json
+++ b/common/src/test/resources/org/onap/so/client/sdno/health-check/custom-port-mirror-pre-check-request.json
@@ -7,6 +7,7 @@
 				"request-id": "test-request-id",
 				"health-diagnostic-code": "VROUTER000003",
 				"operation-type": "mirroring_check",
+				"send-detailed-cmd-response": "false",
 				"aai-param-list": [
 					{
 						"key": "configuration-id",
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/output-failure.json b/common/src/test/resources/org/onap/so/client/sdno/output-failure.json
similarity index 96%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/output-failure.json
rename to common/src/test/resources/org/onap/so/client/sdno/output-failure.json
index 15160b9..8cf0a82 100644
--- a/common/src/test/resources/org/openecomp/mso/client/sdno/output-failure.json
+++ b/common/src/test/resources/org/onap/so/client/sdno/output-failure.json
@@ -8,7 +8,7 @@
 				"response-id": "191bf423-8473-4f7c-9fbb-e5dcbb40a12b",
 				"remote_end_time": "2017-10-13T14:51:53.490+0000",
 				"response-client-name": "MSO",
-				"user_id": "md5621",
+				"user_id": "xxxxxx",
 				"remote_start_time": "2017-10-13T14:51:53.173+0000",
 				"error-message": "my error message",
 				"connection-failure-msg": "SDNO was unable to connect to an Ansible REST API server; Please ensure Ansible REST server is running"
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/output-success.json b/common/src/test/resources/org/onap/so/client/sdno/output-success.json
similarity index 100%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/output-success.json
rename to common/src/test/resources/org/onap/so/client/sdno/output-success.json
diff --git a/common/src/test/resources/org/openecomp/mso/client/sdno/response.json b/common/src/test/resources/org/onap/so/client/sdno/response.json
similarity index 100%
rename from common/src/test/resources/org/openecomp/mso/client/sdno/response.json
rename to common/src/test/resources/org/onap/so/client/sdno/response.json