I admit the code is confusing and too short, sorry. What you want is just exactly what I do.
I start a test elasticsearch test cluster by doing this @BeforeMethod public void create() throws Exception { startNode("1"); NodesInfoRequest nodesInfoRequest = new NodesInfoRequest().transport(true); NodesInfoResponse response = client("1").admin().cluster().nodesInfo(nodesInfoRequest).actionGet(); InetSocketTransportAddress address = (InetSocketTransportAddress)response.iterator().next() .getTransport().getAddress().publishAddress(); PORT = address.address().getPort(); addresses.put("1", address); .... } ... protected URI getAddress() { return URI.create("es://localhost:" + PORT + "?es.cluster.name=" + CLUSTER); } and now I can tell a TransportClient to use the server. For this I keep a map of adresses of the server nodes in form of an URI. Look at this code, which is trivially extending the abstract test code @Test public void testBulkClient() { final BulkClient es = new BulkClient() .newClient(getAddress()); es.shutdown(); if (es.hasErrors()) { logger.error("error", es.getThrowable()); } assertFalse(es.hasErrors()); } I use "getAddress()" for the address of the elasticseach test cluster that is currently running, and the "BulkClient" (which is my custom client wrapping a TransportClient together with a BulkProcessor) is connecting to the embedded test cluster with "newClient(...)". In this method I build a Settings object that contains all the required info for the TransportClient to connect. The Setting object is something like settingsBuilder() .put("cluster.name", findClusterName(uri)) .put("network.server", false) .put("node.client", true) .put("client.transport.sniff", false) .put("client.transport.ignore_cluster_name", false) .put("client.transport.ping_timeout", "30s") .put("client.transport.nodes_sampler_interval", "30s") .build(); where "findClusterName()" is a routine to get the cluster name from the parameters of the test. The @AfterMethod shuts everything down, the "BulkClient" and the test cluster. If i want more nodes, I add "startNode("2")", "startNode("3")", to the @BeforeMethod Does this help? Jörg -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoEL2w5kJby8PddkvHRdZNtAima3E1vAaEYOW%3D3mQN2_og%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.