Reduce the number of problems in aai-common by removing unused imports
[aai/aai-common.git] / aai-rest / src / main / java / org / onap / aai / restclient / TwoWaySSLRestClient.java
index 2fe9500..5ea4fc3 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright Â© 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.aai.restclient;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.security.KeyStore;
+
+import javax.annotation.PostConstruct;
+import javax.net.ssl.SSLContext;
+
 import org.apache.http.client.HttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.ssl.SSLContextBuilder;
-import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.onap.aai.aailog.filter.RestClientLoggingInterceptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.util.ResourceUtils;
 import org.springframework.web.client.RestTemplate;
 
-import javax.annotation.PostConstruct;
-import javax.net.ssl.SSLContext;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.security.KeyStore;
-
 public abstract class TwoWaySSLRestClient extends RestClient {
 
+    private static Logger logger = LoggerFactory.getLogger(TwoWaySSLRestClient.class);
+
     private RestTemplate restTemplate;
 
     @PostConstruct
     public void init() throws Exception {
+        restTemplate = new RestTemplate();
+        restTemplate.setRequestFactory(this.getHttpRequestFactory());
+        restTemplate.setErrorHandler(new RestClientResponseErrorHandler());
+        RestClientLoggingInterceptor loggingInterceptor = new RestClientLoggingInterceptor();
+        restTemplate.getInterceptors().add(loggingInterceptor);
+
+    }
+
+    protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception {
+        return new HttpComponentsClientHttpRequestFactory(this.getClient());
+    }
+
+    protected HttpClient getClient() throws Exception {
 
         char[] keyStorePassword = getKeystorePassword();
         char[] trustStorePassword = getTruststorePassword();
@@ -47,23 +66,14 @@ public abstract class TwoWaySSLRestClient extends RestClient {
         String keyStore = getKeystorePath();
         String trustStore = getTruststorePath();
 
-        SSLContext sslContext = SSLContextBuilder
-            .create()
-            .loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword)
-            .loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword)
-            .build();
-
-        HttpClient client = HttpClients.custom()
-            .setSSLContext(sslContext)
-            .setSSLHostnameVerifier((s, sslSession) -> true)
-            .build();
-
-        restTemplate = new RestTemplateBuilder()
-            .requestFactory(new HttpComponentsClientHttpRequestFactory(client))
-            .build();
+        SSLContext sslContext =
+                SSLContextBuilder.create().loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword)
+                        .loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword).build();
 
-        restTemplate.setErrorHandler(new RestClientResponseErrorHandler(getLogger()));
+        HttpClient client =
+                HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier((s, sslSession) -> true).build();
 
+        return client;
     }
 
     private KeyStore loadPfx(String file, char[] password) throws Exception {