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