import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLSession;
 import javax.net.ssl.SSLSocketFactory;
-import javax.ws.rs.HttpMethod;
 
 import org.apache.commons.codec.binary.Base64;
 import org.onap.ccsdk.sli.adaptors.aai.AAIService.TransactionIdTracker;
 
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.client.urlconnection.HTTPSProperties;
 import org.apache.http.impl.EnglishReasonPhraseCatalog;
 
 /**
 
         if(keystorePath != null && keystorePassword != null && (new File(keystorePath)).exists())
         {
-            DefaultClientConfig config = new DefaultClientConfig();
             //both jersey and HttpURLConnection can use this
             SSLContext ctx = null;
             try {
                 }
 
                 ctx.init(kmf.getKeyManagers(), null, null);
-                config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() {
-                        @Override
-                        public boolean verify( String s, SSLSession sslSession ) {
-                            return ignoreCertificateHostError;
-                        }
-                }, ctx));
 
                 CTX = ctx;
                 LOG.debug("SSLContext created");
                responseMessage = con.getResponseMessage();
             } catch(Exception exc) {
                responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+            } finally {
                if(responseMessage == null)
                        responseMessage = NOT_PROVIDED;
             }
                responseMessage = con.getResponseMessage();
             } catch(Exception exc) {
                responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+            } finally {
                if(responseMessage == null)
                        responseMessage = NOT_PROVIDED;
             }
                responseMessage = conn.getResponseMessage();
             } catch(Exception exc) {
                responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+            } finally {
                if(responseMessage == null)
                        responseMessage = NOT_PROVIDED;
             }
                responseMessage = con.getResponseMessage();
             } catch(Exception exc) {
                responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+            } finally {
                if(responseMessage == null)
                        responseMessage = NOT_PROVIDED;
             }
                responseMessage = con.getResponseMessage();
             } catch(Exception exc) {
                responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+            } finally {
                if(responseMessage == null)
                        responseMessage = NOT_PROVIDED;
             }
 
 
     public static final String TARGET_URI         = "org.onap.ccsdk.sli.adaptors.aai.uri";
 
+    public static final String AAI_VERSION          = "org.onap.ccsdk.sli.adaptors.aai.version";
+
     // Availability zones query
     public static final String QUERY_PATH         = "org.onap.ccsdk.sli.adaptors.aai.path.query";
 
     // node query (1602)
     public static final String QUERY_NODES_PATH          = "org.onap.ccsdk.sli.adaptors.aai.query.nodes";
 
+    private static final String VERSION_PATTERN = "/v$/";
+
 
     protected abstract Logger getLogger();
     public abstract AAIExecutorInterface getExecutor();
                     getLogger().debug("About to process related link of {}", relatedLink);
                     if(relatedLink != null) {
                         if(relatedLink.contains("v$"))
-                            relatedLink = relatedLink.replace("v$", "v14");
+                            relatedLink = relatedLink.replace(VERSION_PATTERN, "/v14/");
                         relationship.setRelatedLink(relatedLink);
                     } else {
                         Map<String, String> relParams = new HashMap<>();
 
                 if (relatedLink != null) {
                     if(relatedLink.contains("v$"))
-                        relatedLink = relatedLink.replace("v$", "v14");
+                        relatedLink = relatedLink.replace(VERSION_PATTERN,  AAIRequest.getSupportedAAIVersion());
                     relationship.setRelatedLink(relatedLink);
                 } else {
                     Map<String, String> relParams = new HashMap<>();
 
     private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap<String, String> nameValues) {
         try {
-            AAIRequest request = AAIRequest.createRequest(resource, nameValues);
+            AAIRequest request = AAIRequest.createRequest(resource.split(":")[0], nameValues);
             if(request == null) {
                 return QueryStatus.FAILURE;
             }
 
 import java.net.URL;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.BitSet;
             }
 
             InputStream in = url.openStream();
-            Reader reader = new InputStreamReader(in, "UTF-8");
+            Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8);
 
             Properties properties = new Properties();
             properties.load(reader);
     public String getTargetUri() {
         return targetUri;
     }
+ 
+    public static final String getSupportedAAIVersion() {
+        return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v14/");
+    }
 }
 
 
 public class AAIServiceUtils {
 
+    private static final String VERSION_PATTERN = "/v$/";
+
     private static final Logger LOG = LoggerFactory.getLogger(AAIService.class);
 
     private AAIServiceUtils() {
         if (term.startsWith("$") && (ctx != null)) {
             // Resolve any index variables.
 
-            return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'");
+            term = ("'" + resolveCtxVariable(term.substring(1), ctx) + "'");
+            if (term.contains(VERSION_PATTERN) && (ctx != null)) {
+                return term.replace(VERSION_PATTERN, AAIRequest.getSupportedAAIVersion());
+            }
+            return term;
+        } else if (term.contains(VERSION_PATTERN) && (ctx != null)) {
+            return term.replace(VERSION_PATTERN, AAIRequest.getSupportedAAIVersion());
         } else if (term.startsWith("'") || term.startsWith("\"")) {
             return (term);
         } else {
 
--- /dev/null
+package org.onap.ccsdk.sli.adaptors.aai;
+
+public interface HttpMethod {
+    public static final String GET = "GET";
+    public static final String HEAD = "HEAD";
+    public static final String PATCH = "PATCH";
+    public static final String POST = "POST";
+    public static final String PUT = "PUT";
+    public static final String DELETE = "DELETE";
+}
 
 connection.timeout=60000
 read.timeout=60000
 
+# aai version
+org.onap.ccsdk.sli.adaptors.aai.version=/v14/
+
 # query
 org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query
 org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
 
 connection.timeout=60000
 read.timeout=60000
 
+# aai version
+org.onap.ccsdk.sli.adaptors.aai.version=/v14/
+
 # query
 org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query
 org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}