Example usage for org.apache.http.impl.conn PoolingHttpClientConnectionManager PoolingHttpClientConnectionManager

List of usage examples for org.apache.http.impl.conn PoolingHttpClientConnectionManager PoolingHttpClientConnectionManager

Introduction

In this page you can find the example usage for org.apache.http.impl.conn PoolingHttpClientConnectionManager PoolingHttpClientConnectionManager.

Prototype

public PoolingHttpClientConnectionManager(final Registry<ConnectionSocketFactory> socketFactoryRegistry,
            final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory) 

Source Link

Usage

From source file:org.elasticsearch.example.SiteContentsIT.java

public void test() throws Exception {
    TestCluster cluster = cluster();//from   w  w  w .  ja va2s.com
    assumeTrue(
            "this test will not work from an IDE unless you pass tests.cluster pointing to a running instance",
            cluster instanceof ExternalTestCluster);
    ExternalTestCluster externalCluster = (ExternalTestCluster) cluster;
    try (CloseableHttpClient httpClient = HttpClients
            .createMinimal(new PoolingHttpClientConnectionManager(15, TimeUnit.SECONDS))) {
        for (InetSocketAddress address : externalCluster.httpAddresses()) {
            RestResponse restResponse = new RestResponse(
                    new HttpRequestBuilder(httpClient).host(NetworkAddress.format(address.getAddress()))
                            .port(address.getPort()).path("/_plugin/site-example/").method("GET").execute());
            assertEquals(200, restResponse.getStatusCode());
            String body = restResponse.getBodyAsString();
            assertTrue("unexpected body contents: " + body, body.contains("<body>Page body</body>"));
        }
    }
}

From source file:io.fabric8.kit.build.service.docker.access.hc.util.AbstractNativeClientBuilder.java

@Override
public CloseableHttpClient buildPooledClient() {
    final HttpClientBuilder httpBuilder = HttpClients.custom();
    final PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(registry,
            dnsResolver);//from ww w . j a  v a 2  s  . c  om
    manager.setDefaultMaxPerRoute(maxConnections);
    httpBuilder.setConnectionManager(manager);
    return httpBuilder.build();
}

From source file:ca.uhn.fhir.rest.client.apache.ApacheRestfulClientFactory.java

public synchronized HttpClient getNativeHttpClient() {
    if (myHttpClient == null) {

        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(5000,
                TimeUnit.MILLISECONDS);
        connectionManager.setMaxTotal(getPoolMaxTotal());
        connectionManager.setDefaultMaxPerRoute(getPoolMaxPerRoute());

        // @formatter:off
        RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(getSocketTimeout())
                .setConnectTimeout(getConnectTimeout())
                .setConnectionRequestTimeout(getConnectionRequestTimeout()).setStaleConnectionCheckEnabled(true)
                .setProxy(myProxy).build();

        HttpClientBuilder builder = HttpClients.custom().setConnectionManager(connectionManager)
                .setDefaultRequestConfig(defaultRequestConfig).disableCookieManagement();

        if (myProxy != null && StringUtils.isNotBlank(getProxyUsername())
                && StringUtils.isNotBlank(getProxyPassword())) {
            CredentialsProvider credsProvider = new BasicCredentialsProvider();
            credsProvider.setCredentials(new AuthScope(myProxy.getHostName(), myProxy.getPort()),
                    new UsernamePasswordCredentials(getProxyUsername(), getProxyPassword()));
            builder.setProxyAuthenticationStrategy(new ProxyAuthenticationStrategy());
            builder.setDefaultCredentialsProvider(credsProvider);
        }//from   w w w . j  ava2 s . co m

        myHttpClient = builder.build();
        // @formatter:on

    }

    return myHttpClient;
}

From source file:info.bonjean.beluga.connection.BelugaHTTPClient.java

private BelugaHTTPClient() {
    BelugaConfiguration configuration = BelugaConfiguration.getInstance();
    HttpClientBuilder clientBuilder = HttpClients.custom();

    // timeout//from   w  w  w.  ja  v a 2 s.  c om
    RequestConfig config = RequestConfig.custom().setConnectTimeout(TIMEOUT).setSocketTimeout(TIMEOUT)
            .setConnectionRequestTimeout(TIMEOUT).build();
    clientBuilder.setDefaultRequestConfig(config);

    switch (configuration.getConnectionType()) {
    case PROXY_DNS:
        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
                .register("http", PlainConnectionSocketFactory.getSocketFactory())
                .register("https", SSLConnectionSocketFactory.getSocketFactory()).build();
        BelugaDNSResolver dnsOverrider = new BelugaDNSResolver(DNSProxy.PROXY_DNS);
        connectionManager = new PoolingHttpClientConnectionManager(registry, dnsOverrider);
        break;
    case HTTP_PROXY:
        HttpHost proxy = new HttpHost(configuration.getProxyHost(), configuration.getProxyPort(), "http");
        clientBuilder.setProxy(proxy);
        break;
    default:
    }

    // limit the pool size
    connectionManager.setDefaultMaxPerRoute(2);

    // add interceptor, currently for debugging only
    clientBuilder.addInterceptorFirst(new HttpResponseInterceptor() {
        @Override
        public void process(HttpResponse response, HttpContext context) throws HttpException, IOException {
            HttpInetConnection connection = (HttpInetConnection) context
                    .getAttribute(HttpCoreContext.HTTP_CONNECTION);
            log.debug("Remote address: " + connection.getRemoteAddress());
            // TODO: reimplement blacklisting for DNS proxy by maintaining a
            // map [DNS IP,RESOLVED IP] in the DNS resolver for reverse
            // lookup
        }
    });

    // finally create the HTTP client
    clientBuilder.setConnectionManager(connectionManager);
    httpClient = clientBuilder.build();
}

From source file:AIR.Common.Web.HttpWebHelper.java

public HttpWebHelper() {
    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(100000000,
            TimeUnit.SECONDS);//ww w . j  a v  a  2 s. c  om
    connectionManager.setMaxTotal(50);
    _client = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
}

From source file:com.launchkey.sdk.LaunchKeyClient.java

private static Transport getTransport(Config config, Crypto crypto) {
    HttpClient httpClient;/*from   w ww  .j  a v  a 2s  .  co m*/
    if (config.getApacheHttpClient() != null) {
        httpClient = config.getApacheHttpClient();
    } else {
        int ttlSecs = config.getHttpClientConnectionTTLSecs() == null ? DEFAULT_HTTP_CLIENT_TTL_SECS
                : config.getHttpClientConnectionTTLSecs();

        int maxClients = config.getHttpMaxClients() == null ? DEFAULT_HTTP_CLIENT_MAX_CLIENTS
                : config.getHttpMaxClients();
        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(ttlSecs,
                TimeUnit.SECONDS);
        connectionManager.setMaxTotal(maxClients);
        connectionManager.setDefaultMaxPerRoute(maxClients); // Set max per route as there is only one route
        httpClient = HttpClients.custom().setConnectionManager(connectionManager).build();
    }

    String baseUrl = config.getAPIBaseURL() == null ? DEFAULT_API_BASE_URL : config.getAPIBaseURL();
    return new ApacheHttpClientTransport(httpClient, baseUrl, crypto);
}

From source file:net.community.chest.gitcloud.facade.frontend.git.HttpClientConnectionManagerFactoryBean.java

@Inject
public HttpClientConnectionManagerFactoryBean(@Value(TTL_CONFIG_VALUE) long ttlSeconds,
        @Value(MAX_PER_ROUTE_CONFIG_VALUE) int defaultMaxPerRoute,
        @Value(MAX_TOTAL_CONFIG_VALUE) int maxTotal) {
    Validate.isTrue(ttlSeconds > 0L, "Invalid TTL value: %d", ttlSeconds);
    Validate.isTrue(defaultMaxPerRoute > 0, "Invalid max. per-route value: %d", defaultMaxPerRoute);
    Validate.isTrue(maxTotal > 0, "Invalid max. total value: %d", maxTotal);

    // TODO use a different connections registry with an all-trusting HTTPS socket factory
    // TODO log the total stats and/or pre-route one at DEBUG/INFO level every few minutes/seconds or every N requests
    manager = new PoolingHttpClientConnectionManager(ttlSeconds, TimeUnit.SECONDS) {
        @Override//  ww w .  j  a v a 2  s  .  c  om
        @SuppressWarnings("synthetic-access")
        public ConnectionRequest requestConnection(final HttpRoute route, Object state) {
            final ConnectionRequest req = super.requestConnection(route, state);
            if (logger.isTraceEnabled()) {
                return new ConnectionRequest() {
                    @Override
                    public boolean cancel() {
                        logger.trace("requestConnection(" + route + ") cancelling");
                        return req.cancel();
                    }

                    @Override
                    public HttpClientConnection get(long timeout, TimeUnit tunit)
                            throws InterruptedException, ExecutionException, ConnectionPoolTimeoutException {
                        HttpClientConnection conn = req.get(timeout, tunit);
                        logger.trace(
                                "requestConnection(" + route + ")[" + timeout + " " + tunit + "]: " + conn);
                        return conn;
                    }
                };
            }

            return req;
        }

        @Override
        @SuppressWarnings("synthetic-access")
        public void releaseConnection(HttpClientConnection managedConn, Object state, long keepalive,
                TimeUnit tunit) {
            if (logger.isTraceEnabled()) {
                logger.trace("releaseConnection(" + keepalive + " " + tunit + "]: " + managedConn);
            }
            super.releaseConnection(managedConn, state, keepalive, tunit);
        }

        @Override
        @SuppressWarnings("synthetic-access")
        public void connect(HttpClientConnection managedConn, HttpRoute route, int connectTimeout,
                HttpContext context) throws IOException {
            if (logger.isTraceEnabled()) {
                logger.trace("connect(" + route + ")[timeout=" + connectTimeout + "]: " + managedConn);
            }
            super.connect(managedConn, route, connectTimeout, context);
        }
    };
    manager.setDefaultMaxPerRoute(defaultMaxPerRoute);
    manager.setMaxTotal(maxTotal);
}

From source file:org.artifactory.util.HttpClientConfigurator.java

/**
 * Creates custom Http Client connection pool to be used by Http Client
 *
 * @return {@link PoolingHttpClientConnectionManager}
 *//*  ww w  . j a  va 2s  . c  o m*/
private PoolingHttpClientConnectionManager createConnectionMgr() {
    PoolingHttpClientConnectionManager connectionMgr;
    connectionMgr = new PoolingHttpClientConnectionManager(INACTIVITY_TIMEOUT, TimeUnit.MILLISECONDS);
    connectionMgr.setMaxTotal(MAX_TOTAL_CONNECTIONS);
    connectionMgr.setDefaultMaxPerRoute(MAX_CONNECTIONS_PER_HOST);
    HttpHost localhost = new HttpHost(LOCALHOST, DEFAULT_PORT);
    connectionMgr.setMaxPerRoute(new HttpRoute(localhost), DEFAULT_POOL_MAX_CONNECTIONS_PER_ROUTE);
    return connectionMgr;
}

From source file:leap.webunit.client.THttpClientImpl.java

protected HttpClient createDefaultHttpClient() {
    HttpClientBuilder cb = HttpClientBuilder.create();

    //TODO : small buffer size will cause socket closed when reading response entity?
    PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(getDefaultRegistry(),
            this.dnsResolver);
    //cm.setDefaultConnectionConfig(ConnectionConfig.custom().setBufferSize(1024 * 1024).build());

    cb.setConnectionManager(cm);//from w w  w.j  a  v  a  2  s . c o  m
    cb.setDefaultCookieStore(this.cookieStore);
    cb.setRedirectStrategy(new DefaultRedirectStrategy() {
        @Override
        public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context)
                throws ProtocolException {
            if (!autoRedirect) {
                return false;
            }
            return super.isRedirected(request, response, context);
        }
    });

    return cb.build();
}