public HttpReporter(final URI snampLocation, final Map<String, ?> properties) { final DefaultClientConfig clientConfig = new SnampClientConfig(properties); clientConfig.getSingletons().add(new JacksonJsonProvider()); httpClient = Client.create(clientConfig); if (clientConfig.getPropertyAsFeature(GZIP_COMPRESSION_FEATURE)) httpClient.addFilter(new GZIPContentEncodingFilter()); final ExecutorService customExecutorService = (ExecutorService) clientConfig.getProperty(EXECUTOR_SERVICE_PROPERTY); if(customExecutorService != null) httpClient.setExecutorService(customExecutorService); batchResource = httpClient.resource(UriBuilder.fromUri(snampLocation).path(BATCH_PATH).build()); nonBatchResource = httpClient.resource(UriBuilder.fromUri(snampLocation).path(NON_BATCH_PATH).build()); final MeasurementBuffer buffer = (MeasurementBuffer) clientConfig.getProperty(BUFFER_PROPERTY); this.buffer = buffer == null ? new SoftMeasurementBuffer() : buffer; resending = new AtomicBoolean(false); asynchronous = true; }
@Override protected Client create() throws Exception { ClientConfig clientConfig = new DefaultClientConfig(); clientConfig.getClasses().add(JacksonJsonProvider.class); final Map<String, Object> clientProperties = clientConfig.getProperties(); clientProperties.put(ClientConfig.PROPERTY_THREADPOOL_SIZE, threadPoolSize); clientProperties.put(ClientConfig.PROPERTY_CONNECT_TIMEOUT, connectionTimeout); clientProperties.put(ClientConfig.PROPERTY_READ_TIMEOUT, readTimeout); if (disregardSslVerification) { try { clientProperties .put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession sslSession) { return true; } }, getIgnoreCertSSLContext())); } catch (NoSuchAlgorithmException e) { Throwables.propagate(e); } catch (KeyManagementException e) { Throwables.propagate(e); } } final Client client = new Client(new URLConnectionClientHandler(new ProxyingHttpURLConnectionFactory()), clientConfig); client.setExecutorService(createBoundedExecutorService()); client.addFilter(rateLimitMonitoringFilter); return client; } };
private Client build(ExecutorService threadPool, ObjectMapper objectMapper) { final Client client = new ApacheHttpClient4(buildHandler(), buildConfig(objectMapper)); client.setExecutorService(threadPool); if (configuration.isGzipEnabled()) { client.addFilter(new GZIPContentEncodingFilter(configuration.isGzipEnabledForRequests())); } return client; }