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

com.lordofthejars.nosqlunit.elasticsearch2.ManagedElasticsearchConfigurationBuilder 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 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();
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy