|
20 | 20 | package co.elastic.clients.transport.rest5_client.low_level;
|
21 | 21 |
|
22 | 22 |
|
| 23 | +import org.apache.hc.client5.http.config.ConnectionConfig; |
23 | 24 | import org.apache.hc.client5.http.config.RequestConfig;
|
24 | 25 | import org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy;
|
25 | 26 | import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
|
|
55 | 56 | public final class Rest5ClientBuilder {
|
56 | 57 | public static final int DEFAULT_CONNECT_TIMEOUT_MILLIS = 1000;
|
57 | 58 | public static final int DEFAULT_SOCKET_TIMEOUT_MILLIS = 30000;
|
| 59 | + public static final int DEFAULT_RESPONSE_TIMEOUT_MILLIS = 0; // meaning infinite |
58 | 60 | public static final int DEFAULT_MAX_CONN_PER_ROUTE = 10;
|
59 | 61 | public static final int DEFAULT_MAX_CONN_TOTAL = 30;
|
60 | 62 |
|
@@ -343,24 +345,30 @@ private CloseableHttpAsyncClient createHttpClient() {
|
343 | 345 | return this.httpClient;
|
344 | 346 | }
|
345 | 347 | // otherwise, creating a default instance of CloseableHttpAsyncClient
|
346 |
| - // default timeouts are all infinite |
347 |
| - RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() |
| 348 | + // default timeouts are all 3 mins |
| 349 | + RequestConfig requestConfigBuilder = RequestConfig.custom() |
348 | 350 | .setConnectionRequestTimeout(Timeout.of(DEFAULT_SOCKET_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS))
|
349 |
| - .setConnectTimeout(Timeout.of(DEFAULT_CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)); //TODO deprecated need to change |
| 351 | + .setResponseTimeout(Timeout.of(DEFAULT_RESPONSE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)) |
| 352 | + .build(); |
350 | 353 |
|
351 | 354 | try {
|
352 | 355 |
|
353 | 356 | SSLContext sslContext = this.sslContext != null ? this.sslContext : SSLContext.getDefault();
|
354 | 357 |
|
| 358 | + ConnectionConfig connectionConfig = ConnectionConfig.custom() |
| 359 | + .setConnectTimeout(Timeout.of(DEFAULT_CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)) |
| 360 | + .build(); |
| 361 | + |
355 | 362 | PoolingAsyncClientConnectionManager defaultConnectionManager =
|
356 | 363 | PoolingAsyncClientConnectionManagerBuilder.create()
|
| 364 | + .setDefaultConnectionConfig(connectionConfig) |
357 | 365 | .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE)
|
358 | 366 | .setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL)
|
359 | 367 | .setTlsStrategy(new BasicClientTlsStrategy(sslContext))
|
360 | 368 | .build();
|
361 | 369 |
|
362 | 370 | HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create()
|
363 |
| - .setDefaultRequestConfig(requestConfigBuilder.build()) |
| 371 | + .setDefaultRequestConfig(requestConfigBuilder) |
364 | 372 | .setConnectionManager(defaultConnectionManager)
|
365 | 373 | .setUserAgent(USER_AGENT_HEADER_VALUE)
|
366 | 374 | .setTargetAuthenticationStrategy(new DefaultAuthenticationStrategy())
|
|
0 commit comments