All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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