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() 

Source Link

Usage

From source file:com.kolich.http.HttpClient4ClosureBuilder.java

public HttpClientConnectionManager getConnectionManager() {
    final PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
    connectionManager.setDefaultMaxPerRoute(maxConnectionsPerRoute_);
    connectionManager.setMaxTotal(maxTotalConnections_);
    return connectionManager;
}

From source file:org.lokra.seaweedfs.core.Connection.java

/**
 * Constructor, build by properties./*from w w w .  j  av  a 2s.co  m*/
 *
 * @param leaderUrl                Leader server url.
 * @param connectionTimeout        Http connection timeout.
 * @param statusExpiry             Server status expiry.
 * @param idleConnectionExpiry     Http connection idle expiry.
 * @param maxConnection            Max http connection.
 * @param maxConnectionsPreRoute   Max connections pre route.
 * @param enableLookupVolumeCache  Enable lookup volume cache.
 * @param lookupVolumeCacheExpiry  Lookup volume cache expiry.
 * @param lookupVolumeCacheEntries Lookup volume cache entries.
 * @param enableFileStreamCache    Enable file stream cache.
 * @param fileStreamCacheEntries   File stream cache entries.
 * @param fileStreamCacheSize      File stream cache size.
 * @param fileStreamCacheStorage   File stream cache storage.
 * @throws IOException Http connection is fail or server response within some error message.
 */
Connection(String leaderUrl, int connectionTimeout, long statusExpiry, long idleConnectionExpiry,
        int maxConnection, int maxConnectionsPreRoute, boolean enableLookupVolumeCache,
        long lookupVolumeCacheExpiry, int lookupVolumeCacheEntries, boolean enableFileStreamCache,
        int fileStreamCacheEntries, long fileStreamCacheSize, HttpCacheStorage fileStreamCacheStorage)
        throws IOException {
    this.leaderUrl = leaderUrl;
    this.statusExpiry = statusExpiry;
    this.connectionTimeout = connectionTimeout;
    this.idleConnectionExpiry = idleConnectionExpiry;
    this.enableLookupVolumeCache = enableLookupVolumeCache;
    this.lookupVolumeCacheExpiry = lookupVolumeCacheExpiry;
    this.lookupVolumeCacheEntries = lookupVolumeCacheEntries;
    this.pollClusterStatusThread = new PollClusterStatusThread();
    this.idleConnectionMonitorThread = new IdleConnectionMonitorThread();
    this.clientConnectionManager = new PoolingHttpClientConnectionManager();
    this.clientConnectionManager.setMaxTotal(maxConnection);
    this.clientConnectionManager.setDefaultMaxPerRoute(maxConnectionsPreRoute);
    this.enableFileStreamCache = enableFileStreamCache;
    this.fileStreamCacheEntries = fileStreamCacheEntries;
    this.fileStreamCacheSize = fileStreamCacheSize;
    this.fileStreamCacheStorage = fileStreamCacheStorage;
}

From source file:org.wso2.carbon.bpmn.extensions.rest.RESTInvoker.java

private void configureHttpClient() {

    parseConfiguration();/*w ww  .  j a va2s .c om*/

    RequestConfig defaultRequestConfig = RequestConfig.custom().setExpectContinueEnabled(true)
            .setConnectTimeout(connectionTimeout).setSocketTimeout(socketTimeout).build();

    connectionManager = new PoolingHttpClientConnectionManager();
    connectionManager.setDefaultMaxPerRoute(maxTotalConnectionsPerRoute);
    connectionManager.setMaxTotal(maxTotalConnections);
    client = HttpClients.custom().setConnectionManager(connectionManager)
            .setDefaultRequestConfig(defaultRequestConfig).build();

    if (log.isDebugEnabled()) {
        log.debug("BPMN REST client initialized with" + "maxTotalConnection = " + maxTotalConnections
                + "maxConnectionsPerRoute = " + maxTotalConnectionsPerRoute + "connectionTimeout = "
                + connectionTimeout);
    }
}

From source file:org.fao.geonet.utils.GeonetHttpRequestFactory.java

public HttpClientBuilder getDefaultHttpClientBuilder() {
    final HttpClientBuilder builder = HttpClientBuilder.create();
    builder.setRedirectStrategy(new LaxRedirectStrategy());
    builder.disableContentCompression();

    synchronized (this) {
        if (connectionManager == null) {
            connectionManager = new PoolingHttpClientConnectionManager();
            connectionManager.setMaxTotal(this.numberOfConcurrentRequests);
            nonShutdownableConnectionManager = new HttpClientConnectionManager() {
                public void closeExpiredConnections() {
                    connectionManager.closeExpiredConnections();
                }/* w  w w  .  j a v a2s.c  om*/

                public ConnectionRequest requestConnection(HttpRoute route, Object state) {
                    return connectionManager.requestConnection(route, state);
                }

                public void releaseConnection(HttpClientConnection managedConn, Object state, long keepalive,
                        TimeUnit tunit) {
                    connectionManager.releaseConnection(managedConn, state, keepalive, tunit);
                }

                public void connect(HttpClientConnection managedConn, HttpRoute route, int connectTimeout,
                        HttpContext context) throws IOException {
                    connectionManager.connect(managedConn, route, connectTimeout, context);
                }

                public void upgrade(HttpClientConnection managedConn, HttpRoute route, HttpContext context)
                        throws IOException {
                    connectionManager.upgrade(managedConn, route, context);
                }

                public void routeComplete(HttpClientConnection managedConn, HttpRoute route,
                        HttpContext context) throws IOException {
                    connectionManager.routeComplete(managedConn, route, context);
                }

                public void shutdown() {
                    // don't shutdown pool
                }

                public void closeIdleConnections(long idleTimeout, TimeUnit tunit) {
                    connectionManager.closeIdleConnections(idleTimeout, tunit);
                }
            };
        }
        connectionManager.setDefaultSocketConfig(
                SocketConfig.custom().setSoTimeout((int) TimeUnit.MINUTES.toMillis(3)).build());
        builder.setConnectionManager(nonShutdownableConnectionManager);
    }

    return builder;
}

From source file:com.jaspersoft.studio.server.protocol.restv2.RestV2ConnectionJersey.java

@Override
public boolean connect(IProgressMonitor monitor, ServerProfile sp) throws Exception {
    monitor.subTask("Trying RESTv2");
    super.connect(monitor, sp);
    this.eh = new RESTv2ExceptionHandler(this);

    ClientConfig clientConfig = new ClientConfig();

    // values are in milliseconds
    // clientConfig.property(ClientProperties.READ_TIMEOUT,
    // sp.getTimeout());
    clientConfig.property(ClientProperties.CONNECT_TIMEOUT, sp.getTimeout());
    if (sp.isChunked())
        clientConfig.property(ClientProperties.CHUNKED_ENCODING_SIZE, 1024);
    clientConfig.property(ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION, true);

    // config your ssl for apache connector
    SslConfigurator sslConfig = SslConfigurator.newInstance(true);
    clientConfig.property(ApacheClientProperties.SSL_CONFIG, sslConfig);

    PoolingHttpClientConnectionManager cxMgr = new PoolingHttpClientConnectionManager();
    cxMgr.setMaxTotal(50);//from w ww .  ja  va 2s .  com
    cxMgr.setDefaultMaxPerRoute(20);
    clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, cxMgr);

    // MultiThreadedHttpConnectionManager connectionManager = new
    // MultiThreadedHttpConnectionManager();
    // connectionManager.getParams().setDefaultMaxConnectionsPerHost(20);
    // connectionManager.getParams().setMaxTotalConnections(20);
    // clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER,
    // connectionManager);

    connector = new JSSApacheConnectorFactory();
    clientConfig.connectorProvider(connector);

    // clientConfig.connector(connector);
    HttpUtils.setupProxy(clientConfig, sp.getURL().toURI());

    Client client = ClientBuilder.newBuilder().withConfig(clientConfig).build();
    // client.register(new org.glassfish.jersey.filter.LoggingFilter());
    // client.register(JacksonFeature.class);
    // String user = sp.getUser();
    // if (!Misc.isNullOrEmpty(sp.getOrganisation()))
    // user += "|" + sp.getOrganisation();
    // client.register(new HttpBasicAuthFilter(user,
    // Pass.getPass(sp.getPass())));
    String url = sp.getUrl().trim();
    if (url.endsWith("/services/repository/"))
        url = url.substring(0, url.lastIndexOf("/services/repository/"));
    else if (url.endsWith("services/repository"))
        url = url.substring(0, url.lastIndexOf("/services/repository"));
    if (!url.endsWith("/"))
        url += "/";
    try {
        target = client.target(url + "j_spring_security_check");
        target = target.queryParam("forceDefaultRedirect", "false");
        if (sp.isUseSSO()) {
            String token = CASUtil.getToken(sp, monitor);
            target = target.queryParam("ticket", token);
        } else {
            target = target.queryParam("j_username", sp.getUser());
            target = target.queryParam("j_password", Pass.getPass(sp.getPass()));
        }
        target = target.queryParam("orgId", sp.getOrganisation());
        if (!Misc.isNullOrEmpty(sp.getLocale()))
            target = target.queryParam("userLocale", "true");
        if (!Misc.isNullOrEmpty(sp.getTimeZone()))
            target = target.queryParam("userTimezone", "true");

        Builder req = target.request();
        toObj(connector.get(req, monitor), String.class, monitor);
    } finally {
        // ok, now check others
        target = client.target(IDN.toASCII(url + SUFFIX));
    }
    getServerInfo(monitor);
    return serverInfo != null && serverInfo.getVersion().compareTo("5.5") >= 0;
}

From source file:com.okta.sdk.impl.http.httpclient.HttpClientRequestExecutor.java

/**
 * Creates a new {@code HttpClientRequestExecutor} using the specified {@code ClientCredentials} and optional {@code Proxy}
 * configuration./*  w  ww.  j  av a 2  s. c  o m*/
 * @param clientCredentials the Okta account API Key that will be used to authenticate the client with Okta's API sever
 * @param proxy the HTTP proxy to be used when communicating with the Okta API server (can be null)
 * @param authenticationScheme the HTTP authentication scheme to be used when communicating with the Okta API server.
 *                             If null, then SSWS will be used.
 */
public HttpClientRequestExecutor(ClientCredentials clientCredentials, Proxy proxy,
        AuthenticationScheme authenticationScheme, RequestAuthenticatorFactory requestAuthenticatorFactory,
        Integer connectionTimeout) {
    Assert.notNull(clientCredentials, "clientCredentials argument is required.");
    Assert.isTrue(connectionTimeout >= 0, "Timeout cannot be a negative number.");

    RequestAuthenticatorFactory factory = (requestAuthenticatorFactory != null) ? requestAuthenticatorFactory
            : new DefaultRequestAuthenticatorFactory();

    this.requestAuthenticator = factory.create(authenticationScheme, clientCredentials);

    PoolingHttpClientConnectionManager connMgr = new PoolingHttpClientConnectionManager();

    if (MAX_CONNECTIONS_TOTAL >= MAX_CONNECTIONS_PER_ROUTE) {
        connMgr.setDefaultMaxPerRoute(MAX_CONNECTIONS_PER_ROUTE);
        connMgr.setMaxTotal(MAX_CONNECTIONS_TOTAL);
    } else {
        connMgr.setDefaultMaxPerRoute(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
        connMgr.setMaxTotal(DEFAULT_MAX_CONNECTIONS_TOTAL);

        log.warn(
                "{} ({}) is less than {} ({}). "
                        + "Reverting to defaults: connectionMaxTotal ({}) and connectionMaxPerRoute ({}).",
                MAX_CONNECTIONS_TOTAL_PROPERTY_KEY, MAX_CONNECTIONS_TOTAL,
                MAX_CONNECTIONS_PER_ROUTE_PROPERTY_KEY, MAX_CONNECTIONS_PER_ROUTE,
                DEFAULT_MAX_CONNECTIONS_TOTAL, DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
    }

    // The connectionTimeout value is specified in seconds in Okta configuration settings.
    // Therefore, multiply it by 1000 to be milliseconds since RequestConfig expects milliseconds.
    int connectionTimeoutAsMilliseconds = connectionTimeout * 1000;

    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectionTimeoutAsMilliseconds)
            .setSocketTimeout(connectionTimeoutAsMilliseconds).setRedirectsEnabled(false).build();

    ConnectionConfig connectionConfig = ConnectionConfig.custom().setCharset(Consts.UTF_8).build();

    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig)
            .disableCookieManagement().setDefaultConnectionConfig(connectionConfig)
            .setConnectionManager(connMgr);

    this.httpClientRequestFactory = new HttpClientRequestFactory(requestConfig);

    if (proxy != null) {
        //We have some proxy setting to use!
        HttpHost httpProxyHost = new HttpHost(proxy.getHost(), proxy.getPort());
        httpClientBuilder.setProxy(httpProxyHost);

        if (proxy.isAuthenticationRequired()) {
            AuthScope authScope = new AuthScope(proxy.getHost(), proxy.getPort());
            Credentials credentials = new UsernamePasswordCredentials(proxy.getUsername(), proxy.getPassword());
            CredentialsProvider credentialsProviderProvider = new BasicCredentialsProvider();
            credentialsProviderProvider.setCredentials(authScope, credentials);
            httpClientBuilder.setDefaultCredentialsProvider(credentialsProviderProvider);
        }
    }

    this.httpClient = httpClientBuilder.build();
}

From source file:com.stormpath.sdk.impl.http.httpclient.HttpClientRequestExecutor.java

/**
 * Creates a new {@code HttpClientRequestExecutor} using the specified {@code ApiKey} and optional {@code Proxy}
 * configuration./*from   w w w  .j a  v  a2s.com*/
 * @param clientCredentials the Stormpath account API Key that will be used to authenticate the client with Stormpath's API sever
 * @param proxy the HTTP proxy to be used when communicating with the Stormpath API server (can be null)
 * @param authenticationScheme the HTTP authentication scheme to be used when communicating with the Stormpath API server.
 *                             If null, then Sauthc1 will be used.
 */
public HttpClientRequestExecutor(ClientCredentials clientCredentials, Proxy proxy,
        AuthenticationScheme authenticationScheme, RequestAuthenticatorFactory requestAuthenticatorFactory,
        Integer connectionTimeout) {
    Assert.notNull(clientCredentials, "clientCredentials argument is required.");
    Assert.isTrue(connectionTimeout >= 0, "Timeout cannot be a negative number.");

    RequestAuthenticatorFactory factory = (requestAuthenticatorFactory != null) ? requestAuthenticatorFactory
            : new DefaultRequestAuthenticatorFactory();

    this.requestAuthenticator = factory.create(authenticationScheme, clientCredentials);

    PoolingHttpClientConnectionManager connMgr = new PoolingHttpClientConnectionManager();

    if (MAX_CONNECTIONS_TOTAL >= MAX_CONNECTIONS_PER_ROUTE) {
        connMgr.setDefaultMaxPerRoute(MAX_CONNECTIONS_PER_ROUTE);
        connMgr.setMaxTotal(MAX_CONNECTIONS_TOTAL);
    } else {
        connMgr.setDefaultMaxPerRoute(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
        connMgr.setMaxTotal(DEFAULT_MAX_CONNECTIONS_TOTAL);

        log.warn(
                "{} ({}) is less than {} ({}). "
                        + "Reverting to defaults: connectionMaxTotal ({}) and connectionMaxPerRoute ({}).",
                MAX_CONNECTIONS_TOTAL_PROPERTY_KEY, MAX_CONNECTIONS_TOTAL,
                MAX_CONNECTIONS_PER_ROUTE_PROPERTY_KEY, MAX_CONNECTIONS_PER_ROUTE,
                DEFAULT_MAX_CONNECTIONS_TOTAL, DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
    }

    // The connectionTimeout value is specified in seconds in Stormpath configuration settings.
    // Therefore, multiply it by 1000 to be milliseconds since RequestConfig expects milliseconds.
    int connectionTimeoutAsMilliseconds = connectionTimeout * 1000;

    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectionTimeoutAsMilliseconds)
            .setSocketTimeout(connectionTimeoutAsMilliseconds).setRedirectsEnabled(false).build();

    ConnectionConfig connectionConfig = ConnectionConfig.custom().setCharset(Consts.UTF_8).build();

    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig)
            .disableCookieManagement().setDefaultConnectionConfig(connectionConfig)
            .setConnectionManager(connMgr);

    this.httpClientRequestFactory = new HttpClientRequestFactory(requestConfig);

    if (proxy != null) {
        //We have some proxy setting to use!
        HttpHost httpProxyHost = new HttpHost(proxy.getHost(), proxy.getPort());
        httpClientBuilder.setProxy(httpProxyHost);

        if (proxy.isAuthenticationRequired()) {
            AuthScope authScope = new AuthScope(proxy.getHost(), proxy.getPort());
            Credentials credentials = new UsernamePasswordCredentials(proxy.getUsername(), proxy.getPassword());
            CredentialsProvider credentialsProviderProvider = new BasicCredentialsProvider();
            credentialsProviderProvider.setCredentials(authScope, credentials);
            httpClientBuilder.setDefaultCredentialsProvider(credentialsProviderProvider);
        }
    }

    this.httpClient = httpClientBuilder.build();
}

From source file:com.twinsoft.convertigo.engine.util.HttpUtils.java

@SuppressWarnings("deprecation")
public static CloseableHttpClient makeHttpClient4(boolean usePool) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom();
    httpClientBuilder.setDefaultRequestConfig(
            RequestConfig.custom().setCookieSpec(CookieSpecs.BROWSER_COMPATIBILITY).build());

    if (usePool) {
        PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();

        int maxTotalConnections = 100;
        try {//from  w  w  w . j a v a 2  s.  co m
            maxTotalConnections = new Integer(
                    EnginePropertiesManager.getProperty(PropertyName.HTTP_CLIENT_MAX_TOTAL_CONNECTIONS))
                            .intValue();
        } catch (NumberFormatException e) {
            Engine.logEngine.warn("Unable to retrieve the max number of connections; defaults to 100.");
        }

        int maxConnectionsPerHost = 50;
        try {
            maxConnectionsPerHost = new Integer(
                    EnginePropertiesManager.getProperty(PropertyName.HTTP_CLIENT_MAX_CONNECTIONS_PER_HOST))
                            .intValue();
        } catch (NumberFormatException e) {
            Engine.logEngine
                    .warn("Unable to retrieve the max number of connections per host; defaults to 100.");
        }

        connManager.setDefaultMaxPerRoute(maxConnectionsPerHost);
        connManager.setMaxTotal(maxTotalConnections);

        httpClientBuilder.setConnectionManager(connManager);
    }

    return httpClientBuilder.build();
}

From source file:org.glassfish.jersey.apache.connector.HelloWorldTest.java

@Test
public void testAsyncClientRequests() throws InterruptedException {
    HttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
    ClientConfig cc = new ClientConfig();
    cc.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager);
    cc.connectorProvider(new ApacheConnectorProvider());
    Client client = ClientBuilder.newClient(cc);
    WebTarget target = client.target(getBaseUri());
    final int REQUESTS = 20;
    final CountDownLatch latch = new CountDownLatch(REQUESTS);
    final long tic = System.currentTimeMillis();
    final Map<Integer, String> results = new ConcurrentHashMap<Integer, String>();
    for (int i = 0; i < REQUESTS; i++) {
        final int id = i;
        target.path(ROOT_PATH).request().async().get(new InvocationCallback<Response>() {
            @Override/*from  w  ww  . j a va  2s .  c  o m*/
            public void completed(Response response) {
                try {
                    final String result = response.readEntity(String.class);
                    results.put(id, result);
                } finally {
                    latch.countDown();
                }
            }

            @Override
            public void failed(Throwable error) {
                Logger.getLogger(HelloWorldTest.class.getName()).log(Level.SEVERE, "Failed on throwable",
                        error);
                results.put(id, "error: " + error.getMessage());
                latch.countDown();
            }
        });
    }
    assertTrue(latch.await(10 * getAsyncTimeoutMultiplier(), TimeUnit.SECONDS));
    final long toc = System.currentTimeMillis();
    Logger.getLogger(HelloWorldTest.class.getName()).info("Executed in: " + (toc - tic));

    StringBuilder resultInfo = new StringBuilder("Results:\n");
    for (int i = 0; i < REQUESTS; i++) {
        String result = results.get(i);
        resultInfo.append(i).append(": ").append(result).append('\n');
    }
    Logger.getLogger(HelloWorldTest.class.getName()).info(resultInfo.toString());

    for (int i = 0; i < REQUESTS; i++) {
        String result = results.get(i);
        assertEquals(HelloWorldResource.CLICHED_MESSAGE, result);
    }
}

From source file:de.fhg.fokus.odp.registry.ckan.ODRClientImpl.java

@Override
public void init(Properties props) {

    authorizationKey = props.getProperty(PROPERTY_NAME_CKAN_AUTHORIZATION_KEY);
    defaultSortStr = props.getProperty(PROP_NAME_DEFAULT_SORT_METADATA);
    String url = props.getProperty(PROPERTY_NAME_CKAN_URL);
    RegisterBuiltin.register(ResteasyProviderFactory.getInstance());

    CloseableHttpClient httpClient = HttpClientBuilder.create()
            .setConnectionManager(new PoolingHttpClientConnectionManager()).build();
    ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient);
    ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();
    ResteasyWebTarget target = client.target(url);

    action = target.proxy(CKANClientAction.class);
    util = target.proxy(CKANClientUtil.class);
    search = target.proxy(CKANClientSearch.class);
    model = target.proxy(CKANClientModel.class);

    ALL_FIELDS.put(JSON_FIELD_ALL_FIELDS, true);

    log.trace("REST > calling action api 'status' with nothing");
    long start = System.currentTimeMillis();
    JsonNode node = action.status(OM.createObjectNode());
    log.debug("/api/3/action/status_show: {}ms", System.currentTimeMillis() - start);
    log.trace("REST < returns: {}", node);
    if (isSuccess(node)) {
        status = convert(getResultObject(node), StatusBean.class);
    }/*from   w  w  w . j ava  2 s .  c  om*/

    licencesCache = listLicenses();
}