aboutsummaryrefslogtreecommitdiffstats
path: root/rest-services/dmaap-client/src/main/java/org
diff options
context:
space:
mode:
authorPawel <pawel.kasperkiewicz@nokia.com>2021-02-03 16:04:14 +0100
committerPawel <pawel.kasperkiewicz@nokia.com>2021-02-05 11:34:12 +0100
commit159f1c86e508bf67ee08a7d42105afa2c2e1bf3a (patch)
treee473ece2626be1ccc605a4db9ca0b156611cc639 /rest-services/dmaap-client/src/main/java/org
parent29f596f81542b03449c4f780a4c3430718f87b96 (diff)
Add possibility to modify the configuration for persistent connection
Issue-ID: DCAEGEN2-1483 Signed-off-by: Pawel <pawel.kasperkiewicz@nokia.com> Change-Id: Ia5c0699359fe2317bea6177fe6dfce5c68579ba9
Diffstat (limited to 'rest-services/dmaap-client/src/main/java/org')
-rw-r--r--rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/api/DmaapClientFactory.java13
-rw-r--r--rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapClientConfiguration.java4
-rw-r--r--rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapConnectionPoolConfig.java39
3 files changed, 56 insertions, 0 deletions
diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/api/DmaapClientFactory.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/api/DmaapClientFactory.java
index 95850078..ee4f6d38 100644
--- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/api/DmaapClientFactory.java
+++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/api/DmaapClientFactory.java
@@ -23,6 +23,8 @@ import io.vavr.control.Option;
import org.jetbrains.annotations.NotNull;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClientFactory;
+import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.config.ConnectionPoolConfig;
+import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.config.ImmutableConnectionPoolConfig;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.config.ImmutableRetryConfig;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.config.ImmutableRxHttpClientConfig;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.config.RetryConfig;
@@ -68,6 +70,7 @@ public final class DmaapClientFactory {
private static @NotNull RxHttpClient createHttpClient(DmaapClientConfiguration config) {
RxHttpClientConfig clientConfig = ImmutableRxHttpClientConfig.builder()
+ .connectionPool(createConnectionPool(config))
.retryConfig(createRetry(config))
.build();
return config.securityKeys() == null
@@ -85,5 +88,15 @@ public final class DmaapClientFactory {
.build())
.getOrNull();
}
+
+ private static ConnectionPoolConfig createConnectionPool(DmaapClientConfiguration config){
+ return Option.of(config.connectionPoolConfig())
+ .map(cp -> ImmutableConnectionPoolConfig.builder()
+ .connectionPool(cp.connectionPool())
+ .maxIdleTime(Duration.ofSeconds(cp.maxIdleTime()))
+ .maxLifeTime(Duration.ofSeconds(cp.maxLifeTime()))
+ .build())
+ .getOrNull();
+ }
}
diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapClientConfiguration.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapClientConfiguration.java
index 3e283511..6dcdf988 100644
--- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapClientConfiguration.java
+++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapClientConfiguration.java
@@ -36,4 +36,8 @@ public interface DmaapClientConfiguration {
default @Nullable DmaapRetryConfig retryConfig(){
return null;
}
+ @Value.Default
+ default @Nullable DmaapConnectionPoolConfig connectionPoolConfig (){
+ return null;
+ }
}
diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapConnectionPoolConfig.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapConnectionPoolConfig.java
new file mode 100644
index 00000000..38166e4e
--- /dev/null
+++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/config/DmaapConnectionPoolConfig.java
@@ -0,0 +1,39 @@
+/*
+ * ============LICENSE_START====================================
+ * DCAEGEN2-SERVICES-SDK
+ * =========================================================
+ * Copyright (C) 2021 Nokia. 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * ============LICENSE_END=====================================
+ */
+package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.config;
+
+import org.immutables.value.Value;
+
+@Value.Immutable
+public interface DmaapConnectionPoolConfig {
+
+ @Value.Default
+ default int connectionPool(){
+ return 16;
+ }
+ @Value.Default
+ default int maxLifeTime(){
+ return Integer.MAX_VALUE;
+ }
+ @Value.Default
+ default int maxIdleTime(){
+ return Integer.MAX_VALUE;
+ }
+} \ No newline at end of file