Customize connection request timeout

Prior to this commit it was not possible to easily customize the
connection request timeout used by the HttpClient. Both
`HttpComponentsClientHttpRequestFactory` and
`HttpComponentsClientHttpRequestFactoryTests` have been updated to
support a `connectionRequestTimeout` property.

Issue: SPR-12166
This commit is contained in:
Stephane Nicoll
2014-12-22 16:31:07 +01:00
parent 24b82746b5
commit aafdcecf53
4 changed files with 39 additions and 2 deletions

View File

@@ -63,6 +63,7 @@ public class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpReq
HttpClient httpClient = HttpClientBuilder.create().build();
HttpComponentsClientHttpRequestFactory hrf = new HttpComponentsClientHttpRequestFactory(httpClient);
hrf.setConnectTimeout(1234);
hrf.setConnectionRequestTimeout(4321);
hrf.setReadTimeout(4567);
URI uri = new URI(baseUrl + "/status/ok");
@@ -75,6 +76,7 @@ public class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpReq
RequestConfig.class.isInstance(config));
RequestConfig requestConfig = (RequestConfig) config;
assertEquals("Wrong custom connection timeout", 1234, requestConfig.getConnectTimeout());
assertEquals("Wrong custom connection request timeout", 4321, requestConfig.getConnectionRequestTimeout());
assertEquals("Wrong custom socket timeout", 4567, requestConfig.getSocketTimeout());
}

View File

@@ -43,6 +43,16 @@ public class HttpComponentsHttpInvokerRequestExecutorTests {
assertEquals(5000, httpPost.getConfig().getConnectTimeout());
}
@Test
public void customizeConnectionRequestTimeout() throws IOException {
HttpComponentsHttpInvokerRequestExecutor executor = new HttpComponentsHttpInvokerRequestExecutor();
executor.setConnectionRequestTimeout(7000);
HttpInvokerClientConfiguration config = mockHttpInvokerClientConfiguration("http://fake-service");
HttpPost httpPost = executor.createHttpPost(config);
assertEquals(7000, httpPost.getConfig().getConnectionRequestTimeout());
}
@Test
public void customizeReadTimeout() throws IOException {
HttpComponentsHttpInvokerRequestExecutor executor = new HttpComponentsHttpInvokerRequestExecutor();