public EurekaJerseyClientImpl(int connectionTimeout, int readTimeout, final int connectionIdleTimeout, ClientConfig clientConfig) { try { jerseyClientConfig = clientConfig; apacheHttpClient = ApacheHttpClient4.create(jerseyClientConfig); HttpParams params = apacheHttpClient.getClientHandler().getHttpClient().getParams(); HttpConnectionParams.setConnectionTimeout(params, connectionTimeout); HttpConnectionParams.setSoTimeout(params, readTimeout); this.apacheHttpClientConnectionCleaner = new ApacheHttpClientConnectionCleaner(apacheHttpClient, connectionIdleTimeout); } catch (Throwable e) { throw new RuntimeException("Cannot create Jersey client", e); } }
public void cleanIdle(long delayMs) { Stopwatch start = executionTimeStats.start(); try { apacheHttpClient.getClientHandler().getHttpClient() .getConnectionManager() .closeIdleConnections(delayMs, TimeUnit.SECONDS); } catch (Throwable e) { logger.error("Cannot clean connections", e); cleanupFailed.increment(); } finally { if (null != start) { start.stop(); } } } }
@Override public HttpClient getClientImplementation() { if (client == null) return null; return client.getClientHandler().getHttpClient(); }
/** * NXCM-4547 JERSEY-1293 Enforce proxy setting on httpclient * <p/> * Revisit for jersey 1.13. */ private void enforceProxyUri( final ApacheHttpClient4Config config, final ApacheHttpClient4 client ) { final Object proxyProperty = config.getProperties().get( ApacheHttpClient4Config.PROPERTY_PROXY_URI ); if ( proxyProperty != null ) { final URI uri = getProxyUri( proxyProperty ); final HttpHost proxy = new HttpHost( uri.getHost(), uri.getPort(), uri.getScheme() ); client.getClientHandler().getHttpClient().getParams().setParameter( ConnRoutePNames.DEFAULT_PROXY, proxy ); } }
@Override protected Client apacheHttpClientSpecificInitialization() { ApacheHttpClient4 apache = (ApacheHttpClient4) super.apacheHttpClientSpecificInitialization(); apache.getClientHandler().getHttpClient().getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.IGNORE_COOKIES); return apache; }
public EurekaJerseyClientImpl(int connectionTimeout, int readTimeout, final int connectionIdleTimeout, ClientConfig clientConfig) { try { jerseyClientConfig = clientConfig; apacheHttpClient = ApacheHttpClient4.create(jerseyClientConfig); HttpParams params = apacheHttpClient.getClientHandler().getHttpClient().getParams(); HttpConnectionParams.setConnectionTimeout(params, connectionTimeout); HttpConnectionParams.setSoTimeout(params, readTimeout); this.apacheHttpClientConnectionCleaner = new ApacheHttpClientConnectionCleaner(apacheHttpClient, connectionIdleTimeout); } catch (Throwable e) { throw new RuntimeException("Cannot create Jersey client", e); } }
public void cleanIdle(long delayMs) { Stopwatch start = executionTimeStats.start(); try { apacheHttpClient.getClientHandler().getHttpClient() .getConnectionManager() .closeIdleConnections(delayMs, TimeUnit.SECONDS); } catch (Throwable e) { logger.error("Cannot clean connections", e); cleanupFailed.increment(); } finally { if (null != start) { start.stop(); } } } }
protected ApacheHttpClient4 doCreateHttpClientFor( final ConnectionInfo connectionInfo, final XStream xstream ) { final ApacheHttpClient4Config config = new DefaultApacheHttpClient4Config(); config.getSingletons().add( new XStreamXmlProvider( xstream, APPLICATION_XML_UTF8_TYPE ) ); // set _real_ URL for baseUrl, and not a redirection (typically http instead of https) config.getProperties().put( ApacheHttpClient4Config.PROPERTY_FOLLOW_REDIRECTS, Boolean.FALSE ); config.getFeatures().put( JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE ); applyAuthenticationIfAny( connectionInfo, config ); applyProxyIfAny( connectionInfo, config ); final ApacheHttpClient4 client = ApacheHttpClient4.create( config ); // set UA client.getClientHandler().getHttpClient().getParams().setParameter( CoreProtocolPNames.USER_AGENT, "Nexus-Client/" + discoverClientVersion() ); // NXCM-4547 JERSEY-1293 Enforce proxy setting on httpclient enforceProxyUri( config, client ); if ( LOG.isDebugEnabled() ) { client.addFilter( new LoggingFilter() ); } return client; }
static ApacheHttpClient4Handler createApacheClientHandler(SmartConfig smartConfig) { ClientConfig clientConfig = new DefaultClientConfig(); // set up multi-threaded connection pool org.apache.http.impl.conn.PoolingClientConnectionManager connectionManager = new org.apache.http.impl.conn.PoolingClientConnectionManager(); // 999 maximum active connections (max allowed) connectionManager.setDefaultMaxPerRoute(999); connectionManager.setMaxTotal(999); clientConfig.getProperties().put(ApacheHttpClient4Config.PROPERTY_CONNECTION_MANAGER, connectionManager); // set proxy config if (smartConfig.getProxyUri() != null) clientConfig.getProperties().put(ApacheHttpClient4Config.PROPERTY_PROXY_URI, smartConfig.getProxyUri()); if (smartConfig.getProxyUser() != null) clientConfig.getProperties().put(ApacheHttpClient4Config.PROPERTY_PROXY_USERNAME, smartConfig.getProxyUser()); if (smartConfig.getProxyPass() != null) clientConfig.getProperties().put(ApacheHttpClient4Config.PROPERTY_PROXY_PASSWORD, smartConfig.getProxyPass()); // pass in jersey parameters from calling code (allows customization of client) for (String propName : smartConfig.getProperties().keySet()) { clientConfig.getProperties().put(propName, smartConfig.getProperty(propName)); } ApacheHttpClient4Handler handler = ApacheHttpClient4.create(clientConfig).getClientHandler(); // disable the retry handler if necessary if (smartConfig.getProperty(DISABLE_APACHE_RETRY) != null) { org.apache.http.impl.client.AbstractHttpClient httpClient = (org.apache.http.impl.client.AbstractHttpClient) handler.getHttpClient(); httpClient.setHttpRequestRetryHandler(new org.apache.http.impl.client.DefaultHttpRequestRetryHandler(0, false)); } return handler; }