This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new fd89aed  camel-http - Should set socketTimeout on endpoint with the 
configured value.
fd89aed is described below

commit fd89aed7bad2d8c5b8c3313783d8e6d386fb092d
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Mar 20 10:25:11 2022 +0100

    camel-http - Should set socketTimeout on endpoint with the configured value.
---
 .../apache/camel/component/http/HttpComponent.java | 22 +++++++++++++---------
 .../camel/component/http/HttpSOTimeoutTest.java    |  9 +++++++--
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
index e547b9b..3382f73 100644
--- 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
+++ 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
@@ -286,17 +286,18 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
         final Map<String, Object> httpClientOptions = new HashMap<>();
 
         // timeout values can be configured on both component and endpoint 
level, where endpoint take priority
-        int val = getAndRemoveParameter(parameters, 
"connectionRequestTimeout", int.class, connectionRequestTimeout);
-        if (val != -1) {
-            httpClientOptions.put("connectionRequestTimeout", val);
+        int valConnectionRequestTimeout
+                = getAndRemoveParameter(parameters, 
"connectionRequestTimeout", int.class, connectionRequestTimeout);
+        if (valConnectionRequestTimeout != -1) {
+            httpClientOptions.put("connectionRequestTimeout", 
valConnectionRequestTimeout);
         }
-        val = getAndRemoveParameter(parameters, "connectTimeout", int.class, 
connectTimeout);
-        if (val != -1) {
-            httpClientOptions.put("connectTimeout", val);
+        int valConnectTimeout = getAndRemoveParameter(parameters, 
"connectTimeout", int.class, connectTimeout);
+        if (valConnectTimeout != -1) {
+            httpClientOptions.put("connectTimeout", valConnectTimeout);
         }
-        val = getAndRemoveParameter(parameters, "socketTimeout", int.class, 
socketTimeout);
-        if (val != -1) {
-            httpClientOptions.put("socketTimeout", val);
+        int valSocketTimeout = getAndRemoveParameter(parameters, 
"socketTimeout", int.class, socketTimeout);
+        if (valSocketTimeout != -1) {
+            httpClientOptions.put("socketTimeout", valSocketTimeout);
         }
 
         final HttpClientBuilder clientBuilder = createHttpClientBuilder(uri, 
parameters, httpClientOptions);
@@ -361,6 +362,9 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
         LOG.debug("Creating endpoint uri {}", endpointUriString);
         final HttpClientConnectionManager localConnectionManager = 
createConnectionManager(parameters, sslContextParameters);
         HttpEndpoint endpoint = new HttpEndpoint(endpointUriString, this, 
clientBuilder, localConnectionManager, configurer);
+        endpoint.setSocketTimeout(valSocketTimeout);
+        endpoint.setConnectTimeout(valConnectTimeout);
+        endpoint.setConnectionRequestTimeout(valConnectionRequestTimeout);
         endpoint.setCopyHeaders(copyHeaders);
         endpoint.setSkipRequestHeaders(skipRequestHeaders);
         endpoint.setSkipResponseHeaders(skipResponseHeaders);
diff --git 
a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpSOTimeoutTest.java
 
b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpSOTimeoutTest.java
index 3f3266d..7a1273e 100644
--- 
a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpSOTimeoutTest.java
+++ 
b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpSOTimeoutTest.java
@@ -21,6 +21,7 @@ import 
org.apache.camel.component.http.handler.DelayValidationHandler;
 import org.apache.http.impl.bootstrap.HttpServer;
 import org.apache.http.impl.bootstrap.ServerBootstrap;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -75,12 +76,16 @@ public class HttpSOTimeoutTest extends BaseHttpTest {
 
     @Test
     public void httpGetUriOption() throws Exception {
-        Exchange exchange = template.request("http://"; + 
localServer.getInetAddress().getHostName() + ":"
-                                             + localServer.getLocalPort() + 
"?socketTimeout=5000",
+        HttpEndpoint endpoint = context.getEndpoint("http://"; + 
localServer.getInetAddress().getHostName() + ":"
+                                                    + 
localServer.getLocalPort() + "?socketTimeout=5000",
+                HttpEndpoint.class);
+        Exchange exchange = template.request(endpoint,
                 exchange1 -> {
                 });
 
         assertExchange(exchange);
+
+        Assertions.assertEquals(5000, endpoint.getSocketTimeout());
     }
 
     @Test

Reply via email to