in appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java [84:132]
public void open(Dictionary<String, Object> config) {
this.config = config;
String addressesString = getValue(config, ADDRESSES_PROPERTY, ADDRESSES_DEFAULT);
String username = getValue(config, USERNAME_PROPERTY, USERNAME_DEFAULT);
String password = getValue(config, PASSWORD_PROPERTY, PASSWORD_DEFAULT);
Set<String> addresses = new HashSet<String>(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(new RestClientBuilder.RequestConfigCallback() {
@Override
public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder requestConfigBuilder) {
return 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);
}
}
);
}
client = restClientBuilder.build();
TimeZone tz = TimeZone.getTimeZone( "UTC" );
tsFormat.setTimeZone(tz);
indexDateFormat.setTimeZone(tz);
}