Constructor inject the jakarte ee ClientBuilder 43/137643/1 master
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Thu, 4 Apr 2024 08:37:43 +0000 (10:37 +0200)
committerFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Thu, 4 Apr 2024 08:37:43 +0000 (10:37 +0200)
- do not create the ClientBuilder inside the classes but rather constructor inject it
- this way instrumentation of the client could be possible when tracing is enabled

Issue-ID: AAI-3817
Change-Id: I4c6d1faf8da98283e8bbae66bd0b3207786a4ce5
Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
pom.xml
src/main/java/org/onap/aai/restclient/client/RestClient.java
src/main/java/org/onap/aai/restclient/rest/RestClientBuilder.java
src/test/java/org/onap/aai/restclient/client/RestfulClientTest.java
src/test/java/org/onap/aai/restclient/rest/RestClientBuilderTest.java
version.properties

diff --git a/pom.xml b/pom.xml
index 7688640..fde2b09 100644 (file)
--- a/pom.xml
+++ b/pom.xml
     <parent>
         <groupId>org.onap.aai.aai-common</groupId>
         <artifactId>aai-parent</artifactId>
-        <version>1.9.4</version>
+        <version>1.11.0</version>
     </parent>
 
     <groupId>org.onap.aai</groupId>
     <artifactId>rest-client</artifactId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.11.0-SNAPSHOT</version>
     <name>aai-rest-client</name>
 
     <properties>
-        <aai.common.version>1.9.3</aai.common.version>
         <checkstyle.config.location>google_checks.xml</checkstyle.config.location>
         <jacoco.report.directory>${project.build.directory}/code-coverage</jacoco.report.directory>
         <jacoco.line.coverage.limit>0.80</jacoco.line.coverage.limit>
index 9639c9d..0bdb177 100644 (file)
@@ -33,6 +33,7 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.stream.Collectors;
 
 import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.Invocation.Builder;
 import javax.ws.rs.client.WebTarget;
@@ -98,8 +99,8 @@ public class RestClient {
     /**
      * Creates a new instance of the {@link RestClient}.
      */
-    public RestClient() {
-        clientBuilder = new RestClientBuilder();
+    public RestClient(ClientBuilder builder) {
+        clientBuilder = new RestClientBuilder(builder);
     }
 
     /**
index 38a8558..bfd44c6 100644 (file)
@@ -56,6 +56,8 @@ public class RestClientBuilder {
     private static final String KEYSTORE_TYPE = "PKCS12";\r
     private static final String TRUST_STORE_PROPERTY = "javax.net.ssl.trustStore";\r
 \r
+    private final ClientBuilder builder;\r
+\r
     private boolean validateServerHostname;\r
     private boolean validateServerCertChain;\r
     private String clientCertFileName;\r
@@ -71,7 +73,8 @@ public class RestClientBuilder {
     /**\r
      * Rest Client Builder.\r
      */\r
-    public RestClientBuilder() {\r
+    public RestClientBuilder(ClientBuilder builder) {\r
+        this.builder = builder;\r
         validateServerHostname = DEFAULT_VALIDATE_SERVER_HOST;\r
         validateServerCertChain = DEFAULT_VALIDATE_CERT_CHAIN;\r
         clientCertFileName = DEFAULT_CLIENT_CERT_FILENAME;\r
@@ -239,7 +242,7 @@ public class RestClientBuilder {
     protected Client getClient(boolean useSsl) throws Exception {\r
 \r
         // Finally, create and initialize our client...\r
-        ClientBuilder builder = ClientBuilder.newBuilder();\r
+        \r
         if (useSsl) {\r
             setupSecureSocketLayerClientConfig(builder);\r
         }\r
index 9fe09a1..30cee4e 100644 (file)
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
 
 import javax.ws.rs.ProcessingException;
 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.MediaType;
@@ -45,6 +46,7 @@ public class RestfulClientTest {
     private static final String TEST_URL = "http://localhost:9000/aai/v7";
 
     private final MultivaluedMap<String, String> emptyMap = new MultivaluedHashMap<>();
+    private final ClientBuilder clientBuilder = ClientBuilder.newBuilder();
 
     private RestClientBuilder mockClientBuilder;
     private Client mockedClient;
@@ -84,7 +86,7 @@ public class RestfulClientTest {
 
     @Test
     public void validateConstructors() {
-        RestClient restClient = new RestClient();
+        RestClient restClient = new RestClient(clientBuilder);
         assertNotNull(restClient);
         restClient = new RestClient(mockClientBuilder);
         assertNotNull(restClient);
@@ -333,7 +335,7 @@ public class RestfulClientTest {
 
     @Test
     public void testGetClient() throws Exception {
-        RestClientBuilder restClientBuilder = new RestClientBuilder();
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_BASIC);
         restClientBuilder.setTruststoreFilename("truststore");
         assertTrue(restClientBuilder.getClient() instanceof Client);
index 3878813..490e84a 100644 (file)
@@ -28,6 +28,8 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;\r
 \r
 import javax.ws.rs.client.Client;\r
+import javax.ws.rs.client.ClientBuilder;\r
+\r
 import org.junit.Before;\r
 import org.junit.Test;\r
 import org.onap.aai.restclient.enums.RestAuthenticationMode;\r
@@ -37,6 +39,8 @@ import org.onap.aai.restclient.enums.RestAuthenticationMode;
  */\r
 public class RestClientBuilderTest {\r
 \r
+    private final ClientBuilder clientBuilder = ClientBuilder.newBuilder();\r
+\r
     /**\r
      * Test case initialization\r
      *\r
@@ -53,7 +57,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateAccesors() {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         // test defaults\r
         assertEquals(restClientBuilder.isValidateServerHostname(), RestClientBuilder.DEFAULT_VALIDATE_SERVER_HOST);\r
@@ -99,7 +103,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateNoAuthClientCreation() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.HTTP_NOAUTH);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -113,7 +117,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateUnknownModeCreateNoAuthClient() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.UNKNOWN_MODE);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -126,7 +130,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateBasicAuthSslClient() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_BASIC);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -143,7 +147,7 @@ public class RestClientBuilderTest {
     @Test(expected = IllegalArgumentException.class)\r
     public void validateSslCertClient_noHostOrCertChainValidation() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_CERT);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -157,7 +161,7 @@ public class RestClientBuilderTest {
     @Test(expected = IllegalArgumentException.class)\r
     public void validateSslCertClient_hostOnlyValidation() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_CERT);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -172,7 +176,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateSslCertClient_certChainOnlyValidation() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_CERT);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -191,7 +195,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateSslCertClient_withHostAndCertChainValidation() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_CERT);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -210,7 +214,7 @@ public class RestClientBuilderTest {
     @Test(expected = IllegalArgumentException.class)\r
     public void validateSslCertClient_illegalArgumentExceptionWhenTruststoreIsNull() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
 \r
         restClientBuilder.setAuthenticationMode(RestAuthenticationMode.SSL_CERT);\r
         restClientBuilder.setConnectTimeoutInMs(12345);\r
@@ -230,7 +234,7 @@ public class RestClientBuilderTest {
     @Test\r
     public void validateSslProtocolConfiguration() throws Exception {\r
 \r
-        RestClientBuilder restClientBuilder = new RestClientBuilder();\r
+        RestClientBuilder restClientBuilder = new RestClientBuilder(clientBuilder);\r
         assertEquals(RestClientBuilder.DEFAULT_SSL_PROTOCOL, restClientBuilder.getSslProtocol());\r
 \r
         restClientBuilder.setSslProtocol("TLSv1.2");\r
index 0986d1f..f6bcc5a 100644 (file)
@@ -3,7 +3,7 @@
 # because they are used in Jenkins, whose plug-in doesn't support
 
 major=1
-minor=9
+minor=11
 patch=0
 
 base_version=${major}.${minor}.${patch}