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

com.lordofthejars.nosqlunit.elasticsearch2.RemoteElasticsearchConfigurationBuilder Maven / Gradle / Ivy

The newest version!
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 RemoteElasticsearchConfigurationBuilder {

	private ElasticsearchConfiguration elasticsearchConfiguration = new ElasticsearchConfiguration();

	private RemoteElasticsearchConfigurationBuilder() {
		super();
	}

	public static RemoteElasticsearchConfigurationBuilder remoteElasticsearch() {
		return new RemoteElasticsearchConfigurationBuilder();
	}

	public RemoteElasticsearchConfigurationBuilder port(int port) {
		this.elasticsearchConfiguration.setPort(port);
		return this;
	}

	public RemoteElasticsearchConfigurationBuilder host(String host) {
		this.elasticsearchConfiguration.setHost(host);
		return this;
	}

	public RemoteElasticsearchConfigurationBuilder settings(Settings settings) {
		this.elasticsearchConfiguration.setSettings(settings);
		return this;
	}

	public RemoteElasticsearchConfigurationBuilder 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();
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy