@Override protected void configure() { ObjectMapper objectMapper = JavaUtils.newObjectMapper(); Builder httpConfigBuilder = HttpConfig.newBuilder().setObjectMapper(objectMapper); bind(ObjectMapper.class).annotatedWith(Names.named(MESOS_CLIENT_OBJECT_MAPPER)).toInstance(objectMapper); bind(HttpClient.class).annotatedWith(Names.named(SingularityMesosClient.DEFAULT_HTTP_CLIENT_NAME)) .toInstance(new NingHttpClient(httpConfigBuilder.build())); bind(HttpClient.class).annotatedWith(Names.named(SingularityMesosClient.SHORT_TIMEOUT_HTTP_CLIENT_NAME)) .toInstance(new NingHttpClient(httpConfigBuilder.setRequestTimeoutSeconds(MESOS_CLIENT_HTTP_SHORT_TIMEOUT_SECONDS).build())); bind(MesosClient.class).to(SingularityMesosClient.class).in(Scopes.SINGLETON); }
private TimerTask setupTimeoutTask(final HttpUriRequest request, final AtomicBoolean timedOut) { int delay = config.getConnectTimeoutMillis() + config.getRequestTimeoutMillis(); TimerTask timeoutTask = new TimerTask() { @Override public void run() { timedOut.set(true); request.abort(); } }; timer.schedule(timeoutTask, delay); return timeoutTask; }
public NingAsyncHttpClient(HttpConfig config) { Preconditions.checkNotNull(config); NettyAsyncHttpProviderConfig nettyConfig = new NettyAsyncHttpProviderConfig(); int workerThreads = Math.min(Runtime.getRuntime().availableProcessors(), 4); this.workerExecutorService = newWorkerThreadPool(workerThreads); this.channelFactory = newSocketChannelFactory(this.workerExecutorService, workerThreads); nettyConfig.setSocketChannelFactory(this.channelFactory); nettyConfig.setNettyTimer(TIMER); AsyncHttpClientConfig ningConfig = new AsyncHttpClientConfig.Builder() .addRequestFilter(new ThrottleRequestFilter(config.getMaxConnections())) .addRequestFilter(new AcceptEncodingRequestFilter()) .setMaxConnectionsPerHost(config.getMaxConnectionsPerHost()) .setConnectTimeout(config.getConnectTimeoutMillis()) .setRequestTimeout(config.getRequestTimeoutMillis()) .setReadTimeout(config.getRequestTimeoutMillis()) .setMaxRedirects(config.getMaxRedirects()) .setFollowRedirect(config.isFollowRedirects()) .setHostnameVerifier(new NingHostnameVerifier(config.getSSLConfig())) .setSSLContext(NingSSLContext.forConfig(config.getSSLConfig())) .setAsyncHttpClientProviderConfig(nettyConfig) .setUserAgent(config.getUserAgent()) .setIOThreadMultiplier(1) .build(); this.ningClient = new com.ning.http.client.AsyncHttpClient(ningConfig); this.requestConverter = new NingHttpRequestConverter(config.getObjectMapper()); this.defaultOptions = config.getOptions(); this.mapper = config.getObjectMapper(); }
private RequestConfig createRequestConfig(HttpConfig config) { return RequestConfig.custom() .setConnectionRequestTimeout(config.getConnectTimeoutMillis()) .setConnectTimeout(config.getConnectTimeoutMillis()) .setSocketTimeout(config.getRequestTimeoutMillis()) .setRedirectsEnabled(config.isFollowRedirects()) .setMaxRedirects(config.getMaxRedirects()) .setRelativeRedirectsAllowed(config.isRejectRelativeRedirects()) .build(); }
public ApacheHttpClient(HttpConfig config) { Preconditions.checkNotNull(config); HttpClientBuilder builder = HttpClientBuilder.create(); builder.setConnectionManager(createConnectionManager(config)); builder.setRedirectStrategy(new LenientRedirectStrategy()); builder.setKeepAliveStrategy(new KeepAliveWithDefaultStrategy(config.getDefaultKeepAliveMillis())); builder.addInterceptorFirst(new DefaultHeadersRequestInterceptor(config)); builder.addInterceptorFirst(new SnappyContentEncodingResponseInterceptor()); builder.setDefaultRequestConfig(createRequestConfig(config)); builder.setDefaultSocketConfig(createSocketConfig(config)); builder.disableContentCompression(); this.apacheClient = builder.build(); this.requestConverter = new ApacheHttpRequestConverter(config.getObjectMapper()); this.config = config; this.defaultOptions = config.getOptions(); this.timer = new Timer("http-request-timeout", true); }
private HttpClientConnectionManager createConnectionManager(HttpConfig config) { Registry<ConnectionSocketFactory> registry = createSocketFactoryRegistry(config); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); connectionManager.setMaxTotal(config.getMaxConnections()); connectionManager.setDefaultMaxPerRoute(config.getMaxConnectionsPerHost()); return connectionManager; }
private Registry<ConnectionSocketFactory> createSocketFactoryRegistry(HttpConfig config) { RegistryBuilder<ConnectionSocketFactory> builder = RegistryBuilder.create(); builder.register("http", PlainConnectionSocketFactory.getSocketFactory()); builder.register("https", ApacheSSLSocketFactory.forConfig(config.getSSLConfig())); return builder.build(); }
private SocketConfig createSocketConfig(HttpConfig config) { return SocketConfig.custom().setSoTimeout(config.getRequestTimeoutMillis()).build(); }
@Override public void process(HttpRequest request, HttpContext context) { if (!request.containsHeader(HttpHeaders.ACCEPT_ENCODING)) { request.addHeader(HttpHeaders.ACCEPT_ENCODING, "snappy,gzip,deflate"); } if (!request.containsHeader(HttpHeaders.USER_AGENT)) { request.addHeader(HttpHeaders.USER_AGENT, config.getUserAgent()); } } }
try { apacheResponse = apacheClient.execute(apacheRequest); response = CachedHttpResponse.from(new ApacheHttpResponse(request, apacheResponse, config.getObjectMapper())); } finally {
@Override protected void configure() { ObjectMapper objectMapper = JavaUtils.newObjectMapper(); objectMapper.registerModule(new GuavaModule()); objectMapper.registerModule(new Jdk8Module()); HttpClient httpClient = new NingHttpClient(httpConfig.or(HttpConfig.newBuilder().setObjectMapper(objectMapper).build())); bind(HttpClient.class).annotatedWith(Names.named(HTTP_CLIENT_NAME)).toInstance(httpClient); bind(SingularityClient.class).toProvider(SingularityClientProvider.class).in(Scopes.SINGLETON); if (hosts != null) { bindHosts(binder()).toInstance(hosts); } }
public ApacheHttpClient() { this(HttpConfig.newBuilder().build()); }
public NingHttpClient() { this(HttpConfig.newBuilder().build()); }
public NingAsyncHttpClient() { this(HttpConfig.newBuilder().build()); }
@Override protected void configure() { HttpClient httpClient = new NingHttpClient(HttpConfig.newBuilder() .setObjectMapper(buildObjectMapper()) .build()); bind(HttpClient.class).annotatedWith(Names.named(HTTP_CLIENT_NAME)).toInstance(httpClient); bind(BaragonServiceClient.class).toProvider(BaragonClientProvider.class).in(Scopes.SINGLETON); if (hosts != null) { bindHosts(binder()).toInstance(hosts); } }