diff options
Diffstat (limited to 'cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java')
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java | 72 |
1 files changed, 24 insertions, 48 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java index 3a861a68b4..be46105d13 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/DmiWebClientConfiguration.java @@ -47,68 +47,46 @@ import reactor.netty.resources.ConnectionProvider; public class DmiWebClientConfiguration { private final HttpClientConfiguration httpClientConfiguration; - private static final Duration DEFAULT_RESPONSE_TIMEOUT = Duration.ofSeconds(30); /** - * Configures and creates a WebClient bean for DMI data services. + * Configures and creates a web client bean for DMI data services. * + * @param webClientBuilder The builder instance to create the WebClient. * @return a WebClient instance configured for data services. */ @Bean - public WebClient dataServicesWebClient() { - final HttpClientConfiguration.DataServices dataServiceConfig = httpClientConfiguration.getDataServices(); - final ConnectionProvider dataServicesConnectionProvider - = getConnectionProvider(dataServiceConfig.getConnectionProviderName(), - dataServiceConfig.getMaximumConnectionsTotal(), dataServiceConfig.getPendingAcquireMaxCount()); - final HttpClient dataServicesHttpClient = createHttpClient(dataServiceConfig, dataServicesConnectionProvider); - return buildAndGetWebClient(dataServicesHttpClient, dataServiceConfig.getMaximumInMemorySizeInMegabytes()); + public WebClient dataServicesWebClient(final WebClient.Builder webClientBuilder) { + return configureWebClient(webClientBuilder, httpClientConfiguration.getDataServices()); } /** - * Configures and creates a WebClient bean for DMI model services. + * Configures and creates a web client bean for DMI model services. * + * @param webClientBuilder The builder instance to create the WebClient. * @return a WebClient instance configured for model services. */ @Bean - public WebClient modelServicesWebClient() { - final HttpClientConfiguration.ModelServices modelServiceConfig = httpClientConfiguration.getModelServices(); - final ConnectionProvider modelServicesConnectionProvider - = getConnectionProvider(modelServiceConfig.getConnectionProviderName(), - modelServiceConfig.getMaximumConnectionsTotal(), - modelServiceConfig.getPendingAcquireMaxCount()); - final HttpClient modelServicesHttpClient - = createHttpClient(modelServiceConfig, modelServicesConnectionProvider); - return buildAndGetWebClient(modelServicesHttpClient, modelServiceConfig.getMaximumInMemorySizeInMegabytes()); + public WebClient modelServicesWebClient(final WebClient.Builder webClientBuilder) { + return configureWebClient(webClientBuilder, httpClientConfiguration.getModelServices()); } /** - * Configures and creates a WebClient bean for DMI health check services. + * Configures and creates a web client bean for DMI health check services. * + * @param webClientBuilder The builder instance to create the WebClient. * @return a WebClient instance configured for health check services. */ @Bean - public WebClient healthChecksWebClient() { - final HttpClientConfiguration.HealthCheckServices healthCheckServiceConfig - = httpClientConfiguration.getHealthCheckServices(); - final ConnectionProvider healthChecksConnectionProvider - = getConnectionProvider(healthCheckServiceConfig.getConnectionProviderName(), - healthCheckServiceConfig.getMaximumConnectionsTotal(), - healthCheckServiceConfig.getPendingAcquireMaxCount()); - final HttpClient healthChecksHttpClient - = createHttpClient(healthCheckServiceConfig, healthChecksConnectionProvider); - return buildAndGetWebClient(healthChecksHttpClient, - healthCheckServiceConfig.getMaximumInMemorySizeInMegabytes()); + public WebClient healthChecksWebClient(final WebClient.Builder webClientBuilder) { + return configureWebClient(webClientBuilder, httpClientConfiguration.getHealthCheckServices()); } - /** - * Provides a WebClient.Builder bean for creating WebClient instances. - * - * @return a WebClient.Builder instance. - */ - @Bean - public WebClient.Builder webClientBuilder() { - return WebClient.builder(); + private WebClient configureWebClient(final WebClient.Builder webClientBuilder, + final HttpClientConfiguration.ServiceConfig serviceConfig) { + final ConnectionProvider connectionProvider = getConnectionProvider(serviceConfig); + final HttpClient httpClient = createHttpClient(serviceConfig, connectionProvider); + return buildAndGetWebClient(webClientBuilder, httpClient, serviceConfig.getMaximumInMemorySizeInMegabytes()); } private static HttpClient createHttpClient(final HttpClientConfiguration.ServiceConfig serviceConfig, @@ -124,18 +102,16 @@ public class DmiWebClientConfiguration { } @SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE") - private static ConnectionProvider getConnectionProvider(final String connectionProviderName, - final int maximumConnectionsTotal, - final int pendingAcquireMaxCount) { - return ConnectionProvider.builder(connectionProviderName) - .maxConnections(maximumConnectionsTotal) - .pendingAcquireMaxCount(pendingAcquireMaxCount) + private static ConnectionProvider getConnectionProvider(final HttpClientConfiguration.ServiceConfig serviceConfig) { + return ConnectionProvider.builder(serviceConfig.getConnectionProviderName()) + .maxConnections(serviceConfig.getMaximumConnectionsTotal()) + .pendingAcquireMaxCount(serviceConfig.getPendingAcquireMaxCount()) .build(); } - private WebClient buildAndGetWebClient(final HttpClient httpClient, - final int maximumInMemorySizeInMegabytes) { - return webClientBuilder() + private WebClient buildAndGetWebClient(final WebClient.Builder webClientBuilder, final HttpClient httpClient, + final int maximumInMemorySizeInMegabytes) { + return webClientBuilder .defaultHeaders(header -> header.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)) .defaultHeaders(header -> header.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)) .clientConnector(new ReactorClientHttpConnector(httpClient)) |