List of usage examples for org.apache.http.impl.conn PoolingHttpClientConnectionManager PoolingHttpClientConnectionManager
public PoolingHttpClientConnectionManager()
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(); }