package org.genedb.crawl.elasticsearch; import javax.annotation.PostConstruct; import org.apache.log4j.Logger; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; public class TransportConnection extends Connection { private Logger logger = Logger.getLogger(TransportConnection.class); TransportClient client; private String host; private int port = 9300; private String clusterName; public void setHost(String host) { this.host = host; } public void setPort(int port) { this.port = port; } public void setClusterName(String clusterName) { this.clusterName = clusterName; } @Override @PostConstruct public void configure () { Settings settings = ImmutableSettings.settingsBuilder() .put("cluster.name",clusterName) .build(); client = new TransportClient(settings); client.addTransportAddress(new InetSocketTransportAddress(host, port)); logger.info(String.format("Setup transport client %s : %d, cluster name %s", host, port, settings.get("cluster.name"))); } @Override public Client getClient() { return (Client) client; } @Override public void close() { if (client != null) { client.close(); } } @Override public String toString() { return String.format("%s, Host: %s, Port: %s, Cluster: %s", super.toString(), host, port, clusterName); } }