in collector/elasticsearch/src/main/java/org/apache/karaf/decanter/collector/elasticsearch/ElasticsearchCollector.java [80:118]
public void activate(Dictionary<String, Object> configuration) {
this.config = configuration;
String addressesString = (configuration.get("addresses") != null) ? configuration.get("addresses").toString() : "http://localhost:9200";
String username = (configuration.get("username") != null) ? configuration.get("username").toString() : null;
String password = (configuration.get("password") != null) ? configuration.get("password").toString() : null;
Set<String> addresses = new HashSet<>(Arrays.asList(addressesString.split(",")));
HttpHost[] hosts = new HttpHost[addresses.size()];
int i = 0;
for (String address : addresses) {
try {
URL url = new URL(address);
hosts[i] = new HttpHost(url.getHost(), url.getPort(), url.getProtocol());
i++;
} catch (Exception e) {
LOGGER.warn("Bad elasticsearch address {}", address, e);
}
}
RestClientBuilder restClientBuilder = RestClient.builder(hosts);
restClientBuilder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(1000)
.setSocketTimeout(10000));
if (username != null) {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
restClientBuilder.setHttpClientConfigCallback(
new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
}
);
}
restClient = restClientBuilder.build();
}