![JAR search and dependency download from the Maven repository](/logo.png)
com.newrelic.insights.publish.MultiThreadedInsightsClient Maven / Gradle / Ivy
package com.newrelic.insights.publish;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.DatatypeConverter;
import org.apache.http.Header;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicHeader;
public class MultiThreadedInsightsClient extends InsightsClient {
public MultiThreadedInsightsClient(String insightsAPIUrl, String insightsAPIInsertKey) {
super(insightsAPIUrl, insightsAPIInsertKey);
}
@Override
public void init(ClientConnectionConfiguration connConfig) {
RequestConfig requestConfig;
if (connConfig.isUseProxy()) {
HttpHost proxy = new HttpHost(connConfig.getProxyHost(), connConfig.getProxyPort(), connConfig.getProxyScheme());
requestConfig = RequestConfig.custom().setConnectionRequestTimeout(connConfig.getConnectionRequestTimeout())
.setConnectTimeout(connConfig.getConnectTimeout()).setSocketTimeout(connConfig.getSocketTimeout())
.setProxy(proxy)
.build();
} else {
requestConfig = RequestConfig.custom().setConnectionRequestTimeout(connConfig.getConnectionRequestTimeout())
.setConnectTimeout(connConfig.getConnectTimeout()).setSocketTimeout(connConfig.getSocketTimeout()).build();
}
List headers = new ArrayList();
Header contentTypeHeader = new BasicHeader(HttpHeaders.CONTENT_TYPE, PROPERTY_VALUE_HEADER_CONTENT_TYPE);
Header insertKeyHeader = new BasicHeader(PROPERTY_NAME_HEADER_X_INSERT_KEY, insightsAPIInsertKey);
headers.add(contentTypeHeader);
headers.add(insertKeyHeader);
if ((connConfig.getProxyUsername() != null) && (connConfig.getProxyPassword() != null)) {
String proxyUserAndPass = ((String)connConfig.getProxyUsername()).trim() +
":" + ((String)connConfig.getProxyPassword()).trim();
headers.add(new BasicHeader("Proxy-Authorization", "Basic " + DatatypeConverter.parseString(proxyUserAndPass)));
}
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
connManager.setMaxTotal(connConfig.getMaximumConnections());
connManager.setDefaultMaxPerRoute(connConfig.getMaximumConnectionsPerRoute());
HttpClientBuilder builder = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).setDefaultHeaders(headers).setConnectionManager(connManager);
httpclient = builder.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy