Re-use ncmp.dmi.httpclient.maximumConnectionsTotal parameter
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / config / DmiWebClientConfiguration.java
index 8ac2e3f..eeeb64b 100644 (file)
@@ -1,22 +1,21 @@
-
 /*
- *  ============LICENSE_START=======================================================
- *  Copyright (C) 2024 Nordix Foundation
- *  ================================================================================
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2024 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- *        http://www.apache.org/licenses/LICENSE-2.0
+ *      http://www.apache.org/licenses/LICENSE-2.0
  *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  *
- *  SPDX-License-Identifier: Apache-2.0
- *  ============LICENSE_END=========================================================
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
  */
 
 package org.onap.cps.ncmp.api.impl.config;
@@ -27,7 +26,6 @@ import io.netty.handler.timeout.WriteTimeoutHandler;
 import java.util.concurrent.TimeUnit;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -37,8 +35,8 @@ import org.springframework.http.client.reactive.ReactorClientHttpConnector;
 import org.springframework.stereotype.Component;
 import org.springframework.web.reactive.function.client.WebClient;
 import reactor.netty.http.client.HttpClient;
+import reactor.netty.resources.ConnectionProvider;
 
-@Slf4j
 @Configuration
 @RequiredArgsConstructor
 public class DmiWebClientConfiguration {
@@ -49,6 +47,9 @@ public class DmiWebClientConfiguration {
     @Value("${ncmp.dmi.httpclient.maximumInMemorySizeInMegabytes:1}")
     private Integer maximumInMemorySizeInMegabytes;
 
+    @Value("${ncmp.dmi.httpclient.maximumConnectionsTotal:100}")
+    private Integer maximumConnectionsTotal;
+
     @Getter
     @Component
     public static class DmiProperties {
@@ -69,7 +70,11 @@ public class DmiWebClientConfiguration {
      */
     @Bean
     public WebClient webClient() {
-        final var httpClient = HttpClient.create()
+
+        final ConnectionProvider dmiWebClientConnectionProvider
+                = ConnectionProvider.create("dmiWebClientConnectionPool", maximumConnectionsTotal);
+
+        final HttpClient httpClient = HttpClient.create(dmiWebClientConnectionProvider)
                 .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectionTimeoutInSeconds * 1000)
                 .doOnConnected(connection ->
                         connection