From 05580253e6d2c7c997aead716a93ee5e7f6db0d9 Mon Sep 17 00:00:00 2001 From: sourabh_sourabh Date: Thu, 16 Jan 2025 13:00:18 +0000 Subject: Make Response Timeout Configurable in WebClient Configuration - Added responseTimeoutInSeconds property in the ServiceConfig class to allow dynamic configuration of the timeout. - Updated WebClientConfiguration to read the responseTimeoutInSeconds from ServiceConfig and set it in the HttpClient. Issue-ID: CPS-2565 Change-Id: I096688319c55f0342b524511883ec0d33806b9b7 Signed-off-by: sourabh_sourabh --- .../src/main/java/org/onap/cps/ncmp/config/ServiceConfig.java | 3 ++- .../org/onap/cps/ncmp/impl/utils/http/WebClientConfiguration.java | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'cps-ncmp-service/src/main/java/org/onap') diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/config/ServiceConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/config/ServiceConfig.java index f1fce0c7c6..775e9d7b14 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/config/ServiceConfig.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/config/ServiceConfig.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2024 Nordix Foundation. + * Copyright (C) 2024-2025 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,4 +33,5 @@ public abstract class ServiceConfig { private Integer connectionTimeoutInSeconds = 1; private long readTimeoutInSeconds = 1; private long writeTimeoutInSeconds = 1; + private long responseTimeoutInSeconds = 60; } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/http/WebClientConfiguration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/http/WebClientConfiguration.java index eefabd1079..0214c0c2a9 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/http/WebClientConfiguration.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/http/WebClientConfiguration.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2024 Nordix Foundation. + * Copyright (C) 2024-2025 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,8 +41,6 @@ import reactor.netty.resources.ConnectionProvider; */ public class WebClientConfiguration { - private static final Duration DEFAULT_RESPONSE_TIMEOUT = Duration.ofSeconds(30); - protected WebClient configureWebClient(final WebClient.Builder webClientBuilder, final ServiceConfig serviceConfig) { final ConnectionProvider connectionProvider = getConnectionProvider(serviceConfig); @@ -53,7 +51,7 @@ public class WebClientConfiguration { private static HttpClient createHttpClient(final ServiceConfig serviceConfig, final ConnectionProvider connectionProvider) { return HttpClient.create(connectionProvider) - .responseTimeout(DEFAULT_RESPONSE_TIMEOUT) + .responseTimeout(Duration.ofSeconds(serviceConfig.getResponseTimeoutInSeconds())) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, serviceConfig.getConnectionTimeoutInSeconds() * 1000) .doOnConnected(connection -> connection.addHandlerLast(new ReadTimeoutHandler( serviceConfig.getReadTimeoutInSeconds(), TimeUnit.SECONDS)).addHandlerLast( -- cgit