@Override public ApacheHttpAsyncClient createHttpClient(Config config, SharedResourcesBroker<GobblinScopeTypes> broker) { return new ApacheHttpAsyncClient(HttpAsyncClientBuilder.create(), config, broker); }
CloseableHttpAsyncClient asyncClient = HttpAsyncClientBuilder.create().setDefaultRequestConfig(clientConfig).setConnectionManager(asyncConnectionManager).build(); setOption(Option.ASYNCHTTPCLIENT, asyncClient); setOption(Option.ASYNC_MONITOR, new AsyncIdleConnectionMonitorThread(asyncConnectionManager));
@Test public void defaultSettingsOfHttpAsyncClientLostOnExecutorCustomization() throws Exception { CloseableHttpAsyncClient client = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom().setConnectTimeout(1234).build()) .build(); HttpComponentsAsyncClientHttpRequestFactory factory = new HttpComponentsAsyncClientHttpRequestFactory(client); URI uri = new URI(baseUrl + "/status/ok"); HttpComponentsAsyncClientHttpRequest request = (HttpComponentsAsyncClientHttpRequest) factory.createAsyncRequest(uri, HttpMethod.GET); assertNull("No custom config should be set with a custom HttpClient", request.getHttpContext().getAttribute(HttpClientContext.REQUEST_CONFIG)); factory.setConnectionRequestTimeout(4567); HttpComponentsAsyncClientHttpRequest request2 = (HttpComponentsAsyncClientHttpRequest) factory.createAsyncRequest(uri, HttpMethod.GET); Object requestConfigAttribute = request2.getHttpContext().getAttribute(HttpClientContext.REQUEST_CONFIG); assertNotNull(requestConfigAttribute); RequestConfig requestConfig = (RequestConfig) requestConfigAttribute; assertEquals(4567, requestConfig.getConnectionRequestTimeout()); // No way to access the request config of the HTTP client so no way to "merge" our customizations assertEquals(-1, requestConfig.getConnectTimeout()); }
public static ApacheHttpClientConfig defaultConfig() { return new ApacheHttpClientConfig(HttpAsyncClientBuilder.create()); } }
@Override public ApacheHttpAsyncClient createHttpClient(Config config, SharedResourcesBroker<GobblinScopeTypes> broker) { return new ApacheHttpAsyncClient(HttpAsyncClientBuilder.create(), config, broker); }
@Bean public CloseableHttpAsyncClient asyncHttpClient(PoolingNHttpClientConnectionManager poolingNHttpClientConnectionManager) { RequestConfig config = RequestConfig.custom() .setConnectTimeout(requestTimeout) .setSocketTimeout(requestTimeout) .setConnectionRequestTimeout(requestTimeout) .build(); return HttpAsyncClientBuilder .create().setConnectionManager(poolingNHttpClientConnectionManager) .setDefaultRequestConfig(config).build(); }
@Bean public CloseableHttpAsyncClient asyncHttpClient(PoolingNHttpClientConnectionManager poolingNHttpClientConnectionManager) { RequestConfig config = RequestConfig.custom() .setConnectTimeout(requestTimeout) .setSocketTimeout(requestTimeout) .setConnectionRequestTimeout(requestTimeout) .build(); return HttpAsyncClientBuilder .create().setConnectionManager(poolingNHttpClientConnectionManager) .setDefaultRequestConfig(config).build(); }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS) .setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } return httpClientBuilder.build(); }
private CloseableHttpAsyncClient asyncHttpClient() throws Exception { PoolingNHttpClientConnectionManager connectionManager = new PoolingNHttpClientConnectionManager( ioReactor(), asyncRegistry()); Map<String, Object> asyncHttpClientMap = (Map<String, Object>)configMap.get(ASYNC_REST_TEMPLATE); connectionManager.setMaxTotal((Integer)asyncHttpClientMap.get(MAX_CONNECTION_TOTAL)); connectionManager.setDefaultMaxPerRoute((Integer) asyncHttpClientMap.get(MAX_CONNECTION_PER_ROUTE)); // Now handle all the specific route defined. Map<String, Object> routeMap = (Map<String, Object>)asyncHttpClientMap.get(ROUTES); Iterator<String> it = routeMap.keySet().iterator(); while (it.hasNext()) { String route = it.next(); Integer maxConnection = (Integer)routeMap.get(route); connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost( route)), maxConnection); } RequestConfig config = RequestConfig.custom() .setConnectTimeout((Integer) asyncHttpClientMap.get(TIMEOUT_MILLISECONDS)) .build(); return HttpAsyncClientBuilder .create() .setConnectionManager(connectionManager) .setDefaultRequestConfig(config) .build(); }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS) .setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } try { HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL) .setSSLContext(SSLContext.getDefault()); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } final HttpAsyncClientBuilder finalBuilder = httpClientBuilder; return AccessController.doPrivileged(new PrivilegedAction<CloseableHttpAsyncClient>() { @Override public CloseableHttpAsyncClient run() { return finalBuilder.build(); } }); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("could not create the default ssl context", e); } }
@Bean public AsyncClientHttpRequestFactory asyncClientHttpRequestFactory( NHttpClientConnectionManager clientConnectionManager, @Value("${http.client.maxConnTotal:1024}") int maxConnTotal, @Value("${http.client.maxConnPerRoute:1024}") int maxConnPerRoute) throws InterruptedException { CloseableHttpAsyncClient client = HttpAsyncClientBuilder.create() // Some backends will return a cookie and prefer it to the Authorization header. // This is very bad when we re-use a connection for different users! .disableCookieManagement() .setMaxConnTotal(maxConnTotal) .setMaxConnPerRoute(maxConnPerRoute) .setConnectionManager(clientConnectionManager) .build(); return new HttpComponentsAsyncClientHttpRequestFactory(client); }
static public void start() { if (client == null) { synchronized (DEFAULT_CALL_BACK) { if (client == null) { HttpAsyncClientBuilder create = HttpAsyncClientBuilder.create(); create.setMaxConnTotal(1000); create.setMaxConnPerRoute(1000); client = create.build(); client.start(); } } } }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } try { HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL) .setSSLContext(SSLContext.getDefault()) .setTargetAuthenticationStrategy(new PersistentCredentialsAuthenticationStrategy()); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } final HttpAsyncClientBuilder finalBuilder = httpClientBuilder; return AccessController.doPrivileged(new PrivilegedAction<CloseableHttpAsyncClient>() { @Override public CloseableHttpAsyncClient run() { return finalBuilder.build(); } }); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("could not create the default ssl context", e); } }
private CloseableHttpAsyncClient createAsyncClient(RequestConfig clientConfig, PoolingNHttpClientConnectionManager manager) { HttpAsyncClientBuilder asyncBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(clientConfig) .setDefaultCookieStore(cookieStore) .setSSLContext(sslContext) .setConnectionManager(manager); return addInterceptors(asyncBuilder).build(); }
public static CloseableHttpAsyncClient create(RequestConfig config, NHttpClientConnectionManager connectionManager) { HttpAsyncClientBuilder builder = HttpAsyncClientBuilder.create(); builder.useSystemProperties().setRedirectStrategy(AlwaysRedirectStrategy.DEFAULT).addInterceptorLast(new RequestContent(true)); if (config != null) builder.setDefaultRequestConfig(config); if (connectionManager != null) builder.setConnectionManager(connectionManager); return builder.build(); }
static CloseableHttpAsyncClient create(RequestConfig config, NHttpClientConnectionManager connectionManager) { HttpAsyncClientBuilder builder = HttpAsyncClientBuilder.create(); builder.useSystemProperties().setRedirectStrategy(AlwaysRedirectStrategy.DEFAULT) .addInterceptorLast(new RequestContent(true)); if (config != null) builder.setDefaultRequestConfig(config); if (connectionManager != null) builder.setConnectionManager(connectionManager); return builder.build(); }
public FiberApacheHttpClientRequestExecutor(final Validator<CloseableHttpResponse> resValidator, final int maxConnections, final int timeout, final int parallelism) throws IOReactorException { final DefaultConnectingIOReactor ioreactor = new DefaultConnectingIOReactor(IOReactorConfig.custom(). setConnectTimeout(timeout). setIoThreadCount(parallelism). setSoTimeout(timeout). build()); final PoolingNHttpClientConnectionManager mngr = new PoolingNHttpClientConnectionManager(ioreactor); mngr.setDefaultMaxPerRoute(maxConnections); mngr.setMaxTotal(maxConnections); final CloseableHttpAsyncClient ahc = HttpAsyncClientBuilder.create(). setConnectionManager(mngr). setDefaultRequestConfig(RequestConfig.custom().setLocalAddress(null).build()).build(); client = new FiberHttpClient(ahc); validator = resValidator; }
private static synchronized CloseableHttpAsyncClient buildAsyncClient() { PoolingNHttpClientConnectionManager asyncConnectionManager; try { asyncConnectionManager = new PoolingNHttpClientConnectionManager(new DefaultConnectingIOReactor()); asyncConnectionManager.setMaxTotal(getOptionOrDefault(Option.MAX_TOTAL, MAX_TOTAL)); asyncConnectionManager.setDefaultMaxPerRoute(getOptionOrDefault(Option.MAX_PER_ROUTE, MAX_PER_ROUTE)); } catch (IOReactorException e) { throw new RuntimeException(e); } HttpAsyncClientBuilder ab = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(getRequestConfig()) .setConnectionManager(asyncConnectionManager) .useSystemProperties(); if (shouldDisableRedirects()) { ab.setRedirectStrategy(new NoRedirects()); } if (shouldDisableCookieManagement()) { ab.disableCookieManagement(); } interceptors.stream().forEach(i -> ab.addInterceptorFirst(i)); CloseableHttpAsyncClient build = ab.build(); options.put(Option.ASYNCHTTPCLIENT, build); options.put(Option.ASYNC_MONITOR, new AsyncIdleConnectionMonitorThread(asyncConnectionManager)); return build; }
clientBuilder = HttpAsyncClientBuilder.create();
ApacheAsyncClient(Config config) { this.config = config; try { manager = new PoolingNHttpClientConnectionManager(new DefaultConnectingIOReactor()); manager.setMaxTotal(config.getMaxConnections()); manager.setDefaultMaxPerRoute(config.getMaxPerRoutes()); HttpAsyncClientBuilder ab = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(getRequestConfig(config)) .setConnectionManager(manager) .setDefaultCredentialsProvider(config.getProxyCreds()) .useSystemProperties(); if(config.useSystemProperties()){ ab.useSystemProperties(); } if (!config.getFollowRedirects()) { ab.setRedirectStrategy(new NoRedirects()); } if (!config.getEnabledCookieManagement()) { ab.disableCookieManagement(); } config.getInterceptors().forEach(ab::addInterceptorFirst); CloseableHttpAsyncClient build = ab.build(); build.start(); syncMonitor = new AsyncIdleConnectionMonitorThread(manager); syncMonitor.tryStart(); client = build; } catch (IOReactorException e) { throw new UnirestConfigException(e); } }