From: Fiete Ostkamp Date: Thu, 8 Jan 2026 20:43:23 +0000 (+0100) Subject: Spring-boot 3.2 update X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=5153aa070a4875adab710657267b88bdab4b4eb2;p=aai%2Faai-common.git Spring-boot 3.2 update - update spring boot (3.1.12 -> 3.2.12) - this requires using apache http client 5 in ValidationService Issue-ID: AAI-4208 Change-Id: Ia027ace5ffc748332c372e7c3faf15d400837656 Signed-off-by: Fiete Ostkamp --- diff --git a/aai-core/src/main/java/org/onap/aai/config/GraphConfig.java b/aai-core/src/main/java/org/onap/aai/config/GraphConfig.java index 85feabb5..3c74c927 100644 --- a/aai-core/src/main/java/org/onap/aai/config/GraphConfig.java +++ b/aai-core/src/main/java/org/onap/aai/config/GraphConfig.java @@ -32,6 +32,7 @@ import org.onap.aai.dbgen.SchemaGenerator; import org.onap.aai.dbgen.SchemaGenerator4Hist; import org.onap.aai.dbmap.AAIGraphConfig; import org.onap.aai.exceptions.AAIException; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -85,7 +86,7 @@ public class GraphConfig { } @Bean - public GraphTraversalSource graphTraversalSource(Graph graph) { + public GraphTraversalSource graphTraversalSource(@Qualifier("graph") Graph graph) { return graph.traversal(); } diff --git a/aai-core/src/main/java/org/onap/aai/config/IntrospectionConfig.java b/aai-core/src/main/java/org/onap/aai/config/IntrospectionConfig.java index a3411076..0d7e3bef 100644 --- a/aai-core/src/main/java/org/onap/aai/config/IntrospectionConfig.java +++ b/aai-core/src/main/java/org/onap/aai/config/IntrospectionConfig.java @@ -29,6 +29,7 @@ import org.onap.aai.introspection.MoxyLoader; import org.onap.aai.setup.SchemaVersion; import org.onap.aai.setup.SchemaVersions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -44,7 +45,7 @@ public class IntrospectionConfig { NodesConfiguration nodesConfiguration; @Bean - public Map moxyLoaderInstance(SchemaVersions schemaVersions) { + public Map moxyLoaderInstance(@Qualifier("schemaVersions") SchemaVersions schemaVersions) { for (SchemaVersion version : schemaVersions.getVersions()) { if (!moxyInstanceMap.containsKey(version)) { moxyInstanceMap.put(version, new MoxyLoader(version, nodesConfiguration.nodeIngestor())); diff --git a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceNoAuthClient.java b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceNoAuthClient.java index 2c5f42d8..4320a2d2 100644 --- a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceNoAuthClient.java +++ b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceNoAuthClient.java @@ -23,19 +23,22 @@ package org.onap.aai.prevalidation; import java.util.Collections; import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.config.RequestConfig; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.core5.http.io.SocketConfig; +import org.apache.hc.core5.util.Timeout; import org.onap.aai.restclient.NoAuthRestClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.util.MultiValueMap; public class ValidationServiceNoAuthClient extends NoAuthRestClient { - private static Logger logger = LoggerFactory.getLogger(ValidationServiceNoAuthClient.class); @Value("${validation.service.base.url}") private String baseUrl; @@ -44,13 +47,23 @@ public class ValidationServiceNoAuthClient extends NoAuthRestClient { private Integer timeout; @Override - protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception { - HttpComponentsClientHttpRequestFactory requestFactory = super.getHttpRequestFactory(); - requestFactory.setConnectionRequestTimeout(timeout); - // Manual migration to `SocketConfig.Builder.setSoTimeout(Timeout)` necessary; see: https://docs.spring.io/spring-framework/docs/6.0.0/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html#setReadTimeout(int) - requestFactory.setReadTimeout(timeout); - requestFactory.setConnectTimeout(timeout); - return requestFactory; + protected HttpClient getClient() throws Exception { + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); + connectionManager.setDefaultSocketConfig( + SocketConfig.custom() + .setSoTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build() + ); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectionRequestTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .setResponseTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build(); + + return HttpClients.custom() + .setConnectionManager(connectionManager) + .setDefaultRequestConfig(requestConfig) + .build(); } @Override diff --git a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceOneWayClient.java b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceOneWayClient.java index 77e464d9..993d2dd8 100644 --- a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceOneWayClient.java +++ b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceOneWayClient.java @@ -23,12 +23,19 @@ package org.onap.aai.prevalidation; import java.util.Collections; import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.config.RequestConfig; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.core5.http.io.SocketConfig; +import org.apache.hc.core5.util.Timeout; import org.onap.aai.restclient.OneWaySSLRestClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.util.MultiValueMap; public class ValidationServiceOneWayClient extends OneWaySSLRestClient { @@ -45,13 +52,24 @@ public class ValidationServiceOneWayClient extends OneWaySSLRestClient { } @Override - protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception { - HttpComponentsClientHttpRequestFactory requestFactory = super.getHttpRequestFactory(); - requestFactory.setConnectionRequestTimeout(timeout); - // Manual migration to `SocketConfig.Builder.setSoTimeout(Timeout)` necessary; see: https://docs.spring.io/spring-framework/docs/6.0.0/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html#setReadTimeout(int) - requestFactory.setReadTimeout(timeout); - requestFactory.setConnectTimeout(timeout); - return requestFactory; + protected HttpClient getClient() throws Exception { + + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); + connectionManager.setDefaultSocketConfig( + SocketConfig.custom() + .setSoTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build() + ); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectionRequestTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .setResponseTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build(); + + return HttpClients.custom() + .setConnectionManager(connectionManager) + .setDefaultRequestConfig(requestConfig) + .build(); } @Override diff --git a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceRestClient.java b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceRestClient.java index 61cc57f5..b6dfba7e 100644 --- a/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceRestClient.java +++ b/aai-core/src/main/java/org/onap/aai/prevalidation/ValidationServiceRestClient.java @@ -25,12 +25,19 @@ package org.onap.aai.prevalidation; import java.util.Collections; import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.config.RequestConfig; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.core5.http.io.SocketConfig; +import org.apache.hc.core5.util.Timeout; import org.onap.aai.restclient.TwoWaySSLRestClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.util.MultiValueMap; public class ValidationServiceRestClient extends TwoWaySSLRestClient { @@ -46,13 +53,24 @@ public class ValidationServiceRestClient extends TwoWaySSLRestClient { return baseUrl; } - protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception { - HttpComponentsClientHttpRequestFactory requestFactory = super.getHttpRequestFactory(); - requestFactory.setConnectionRequestTimeout(timeout); - // Manual migration to `SocketConfig.Builder.setSoTimeout(Timeout)` necessary; see: https://docs.spring.io/spring-framework/docs/6.0.0/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html#setReadTimeout(int) - requestFactory.setReadTimeout(timeout); - requestFactory.setConnectTimeout(timeout); - return requestFactory; + @Override + protected HttpClient getClient() throws Exception { + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); + connectionManager.setDefaultSocketConfig( + SocketConfig.custom() + .setSoTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build() + ); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectionRequestTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .setResponseTimeout(Timeout.of(timeout, TimeUnit.MILLISECONDS)) + .build(); + + return HttpClients.custom() + .setConnectionManager(connectionManager) + .setDefaultRequestConfig(requestConfig) + .build(); } @Override diff --git a/aai-parent/pom.xml b/aai-parent/pom.xml index 2da5c11f..2edfcdc1 100644 --- a/aai-parent/pom.xml +++ b/aai-parent/pom.xml @@ -53,7 +53,7 @@ limitations under the License. 3.8.0 1.13.0 0.40.2 - 4.0.6 + 4.0.9 33.4.0-jre 3.7.3 1.1.0 @@ -78,7 +78,7 @@ limitations under the License. Please don't upgrade to 2.3.0 or above for nexus iq or security scans as it could potentially break our code --> - 3.1.12 + 3.2.12 2.2.0 20240303 4.12 @@ -89,7 +89,7 @@ limitations under the License. 3.1 3.1.1 0.9.10 - 1.18.38 + 1.18.42 1.20.4 3.1.0 @@ -102,7 +102,7 @@ limitations under the License. 0.00 - 0.8.13 + 0.8.14 3.2 jacoco ${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml @@ -332,12 +332,12 @@ limitations under the License. jakarta.xml.bind jakarta.xml.bind-api - 4.0.2 + 4.0.4 org.glassfish.jaxb jaxb-runtime - 3.0.1 + 3.0.2 @@ -413,7 +413,7 @@ limitations under the License. io.swagger.core.v3 - swagger-core + swagger-core-jakarta 2.2.29 @@ -425,7 +425,7 @@ limitations under the License. io.swagger.core.v3 - swagger-annotations + swagger-annotations-jakarta 2.2.25