package com.lordofthejars.nosqlunit.elasticsearch2; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import java.net.InetSocketAddress; public class ManagedElasticsearchConfigurationBuilder { private ElasticsearchConfiguration elasticsearchConfiguration = new ElasticsearchConfiguration(); private ManagedElasticsearchConfigurationBuilder() { super(); } public static ManagedElasticsearchConfigurationBuilder managedElasticsearch() { return new ManagedElasticsearchConfigurationBuilder(); } public ManagedElasticsearchConfigurationBuilder port(int port) { this.elasticsearchConfiguration.setPort(port); return this; } public ManagedElasticsearchConfigurationBuilder settings(Settings settings) { this.elasticsearchConfiguration.setSettings(settings); return this; } public ManagedElasticsearchConfigurationBuilder connectionIdentifier(String connectionIdentifier) { this.elasticsearchConfiguration.setConnectionIdentifier(connectionIdentifier); return this; } public ElasticsearchConfiguration build() { final InetSocketAddress address = new InetSocketAddress(this.elasticsearchConfiguration.getHost(), this.elasticsearchConfiguration.getPort()); final TransportClient client = getClient().addTransportAddress(new InetSocketTransportAddress(address)); this.elasticsearchConfiguration.setClient(client); return this.elasticsearchConfiguration; } private TransportClient getClient() { if (this.elasticsearchConfiguration.getSettings() == null) { return TransportClient.builder().build(); } else { return TransportClient.builder().settings(this.elasticsearchConfiguration.getSettings()).build(); } } }