package com.ecwid.consul.transport; import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; /** * Default HTTP client This class is thread safe * * @author Vasily Vasilkov ([email protected]) */ public final class DefaultHttpTransport extends AbstractHttpTransport { private final HttpClient httpClient; public DefaultHttpTransport() { PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); connectionManager.setMaxTotal(DEFAULT_MAX_CONNECTIONS); connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_PER_ROUTE_CONNECTIONS); RequestConfig requestConfig = RequestConfig.custom(). setConnectTimeout(DEFAULT_CONNECTION_TIMEOUT). setConnectionRequestTimeout(DEFAULT_CONNECTION_TIMEOUT). setSocketTimeout(DEFAULT_READ_TIMEOUT). build(); HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(). setConnectionManager(connectionManager). setDefaultRequestConfig(requestConfig). useSystemProperties(); this.httpClient = httpClientBuilder.build(); } public DefaultHttpTransport(HttpClient httpClient) { this.httpClient = httpClient; } @Override protected HttpClient getHttpClient() { return httpClient; } }