private String auth;
     private String key;
     private Long readTimeout;
+    private Long connectionTimeout;
     private boolean enableCaching;
     private Long cacheMaxAge;
     private static final String SYSTEM_NAME = "MSO";
         aaiEndpoint = context.getEnvironment().getProperty("aai.endpoint");
         this.auth = context.getEnvironment().getProperty("aai.auth");
         this.key = context.getEnvironment().getProperty("mso.msoKey");
-        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, new Long(60000));
+        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, 60000L);
+        this.connectionTimeout = context.getEnvironment().getProperty("aai.connectionTimeout", Long.class, 60000L);
         this.enableCaching = context.getEnvironment().getProperty("aai.caching.enabled", Boolean.class, false);
         this.cacheMaxAge = context.getEnvironment().getProperty("aai.caching.maxAge", Long.class, 60000L);
     }
         return this.readTimeout;
     }
 
+    @Override
+    public Long getConnectionTimeout() {
+        return this.connectionTimeout;
+    }
+
     @Override
     public boolean isCachingEnabled() {
         return this.enableCaching;
 
     private String auth;
     private String key;
     private Long readTimeout;
+    private Long connectionTimeout;
     private boolean enableCaching;
     private Long cacheMaxAge;
     private static final String SYSTEM_NAME = "MSO";
         aaiEndpoint = context.getEnvironment().getProperty("mso.aai.endpoint");
         this.auth = context.getEnvironment().getProperty("aai.auth");
         this.key = context.getEnvironment().getProperty("mso.msoKey");
-        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, new Long(60000));
+        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, 60000L);
+        this.connectionTimeout = context.getEnvironment().getProperty("aai.connectionTimeout", Long.class, 60000L);
         this.enableCaching = context.getEnvironment().getProperty("aai.caching.enabled", Boolean.class, false);
         this.cacheMaxAge = context.getEnvironment().getProperty("aai.caching.maxAge", Long.class, 60000L);
     }
         return this.readTimeout;
     }
 
+    @Override
+    public Long getConnectionTimeout() {
+        return this.connectionTimeout;
+    }
+
     @Override
     public boolean isCachingEnabled() {
         return this.enableCaching;
 
     public static final String AAI_AUTH = "aai.auth";
     public static final String AAI_ENDPOINT = "aai.endpoint";
     public static final String AAI_READ_TIMEOUT = "aai.readTimeout";
+    public static final String AAI_CONNECTION_TIMEOUT = "aai.connectionTimeout";
     public static final String AAI_ENABLE_CACHING = "aai.caching.enable";
     public static final String AAI_CACHE_MAX_AGE = "aai.caching.maxAge";
 
         return Long.valueOf(reader.getVariable(AAI_READ_TIMEOUT, "60000"));
     }
 
+    @Override
+    public Long getConnectionTimeout() {
+        return Long.valueOf(reader.getVariable(AAI_CONNECTION_TIMEOUT, "60000"));
+    }
+
     @Override
     public boolean isCachingEnabled() {
         return Boolean.parseBoolean(reader.getVariable(AAI_ENABLE_CACHING, "false"));
 
         if (props.isCachingEnabled()) {
             enableCaching(builder);
         }
-        return builder.readTimeout(props.getReadTimeout(), TimeUnit.MILLISECONDS);
+        return builder.connectTimeout(props.getConnectionTimeout(), TimeUnit.MILLISECONDS)
+                .readTimeout(props.getReadTimeout(), TimeUnit.MILLISECONDS);
     }
 
     protected ClientBuilder enableCaching(ClientBuilder builder) {
 
         return Long.valueOf(60000);
     }
 
+    /**
+     * Time in milliseconds
+     * 
+     * @return
+     */
+    public default Long getConnectionTimeout() {
+        return Long.valueOf(60000);
+    }
+
     public default boolean isCachingEnabled() {
         return false;
     }
 
 
         RestProperties props = new RestProperties() {
 
+
+            @Override
+            public Integer getRetries() {
+                return Integer.valueOf(0);
+            }
+
             @Override
             public URL getEndpoint() throws MalformedURLException {
                 return new URL(String.format("http://localhost:%s", wireMockRule.port()));
 
     private String auth;
     private String key;
     private Long readTimeout;
+    private Long connectionTimeout;
     private boolean enableCaching;
     private Long cacheMaxAge;
 
         aaiEndpoint = context.getEnvironment().getProperty("mso.aai.endpoint");
         this.auth = context.getEnvironment().getProperty("aai.auth");
         this.key = context.getEnvironment().getProperty("mso.msoKey");
-        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, new Long(60000));
+        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, 60000L);
+        this.connectionTimeout = context.getEnvironment().getProperty("aai.connectionTimeout", Long.class, 60000L);
         this.enableCaching = context.getEnvironment().getProperty("aai.caching.enabled", Boolean.class, false);
         this.cacheMaxAge = context.getEnvironment().getProperty("aai.caching.maxAge", Long.class, 60000L);
     }
         return this.readTimeout;
     }
 
+    @Override
+    public Long getConnectionTimeout() {
+        return this.connectionTimeout;
+    }
+
     @Override
     public boolean isCachingEnabled() {
         return this.enableCaching;
 
           </exclusion>
         </exclusions>
       </dependency>
+      <dependency>
+        <groupId>org.apache.cxf</groupId>
+        <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
+        <version>${cxf.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.jboss.spec.javax.rmi</groupId>
+            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>org.onap.aaf.authz</groupId>
         <artifactId>aaf-cadi-client</artifactId>
 
     private final String encryptionKey;
     private final String aaiVersion;
     private final Long readTimeout;
+    private final Long connectionTimeout;
     private final boolean enableCaching;
     private final Long cacheMaxAge;
 
         this.encryptedBasicAuth = context.getEnvironment().getProperty("aai.auth");
         this.encryptionKey = context.getEnvironment().getProperty("mso.key");
         this.aaiVersion = context.getEnvironment().getProperty("aai.version");
-        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, new Long(60000));
+        this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, 60000L);
+        this.connectionTimeout = context.getEnvironment().getProperty("aai.connectionTimeout", Long.class, 60000L);
         this.enableCaching = context.getEnvironment().getProperty("aai.caching.enabled", Boolean.class, false);
         this.cacheMaxAge = context.getEnvironment().getProperty("aai.caching.maxAge", Long.class, 60000L);
     }
         return this.readTimeout;
     }
 
+    @Override
+    public Long getConnectionTimeout() {
+        return this.connectionTimeout;
+    }
+
     @Override
     public boolean isCachingEnabled() {
         return this.enableCaching;