//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.consumers; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import org.apache.uima.UIMAException; import org.apache.uima.analysis_engine.AnalysisEngineDescription; import org.apache.uima.fit.factory.AnalysisEngineFactory; import org.apache.uima.fit.factory.ExternalResourceFactory; import org.apache.uima.resource.ExternalResourceDescription; import org.apache.uima.resource.ResourceInitializationException; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.node.Node; import org.elasticsearch.node.NodeBuilder; import org.junit.BeforeClass; import uk.gov.dstl.baleen.resources.SharedElasticsearchRestResource; import uk.gov.dstl.baleen.uima.utils.TypeSystemSingleton; public class ElasticsearchRestTest extends ElasticsearchTestBase{ private static Path tmpDir; private static final String ELASTICSEARCH = "elasticsearchRest"; @BeforeClass public static void setupClass() throws UIMAException{ //Initialise a local instance of Elasticsearch try{ tmpDir = Files.createTempDirectory("elasticsearch"); }catch(IOException ioe){ throw new ResourceInitializationException(ioe); } Settings settings = Settings.builder() .put("path.home", tmpDir.toString()) .put("http.port", "19200") //Don't use the default ports for testing purposes .put("transport.tcp.port", "19300") .build(); Node node = NodeBuilder.nodeBuilder() .settings(settings) .data(true) .local(true) .clusterName("test_cluster") .node(); ExternalResourceDescription erd = ExternalResourceFactory.createExternalResourceDescription(ELASTICSEARCH, SharedElasticsearchRestResource.class, "elasticsearchrest.url", "http://localhost:19200"); AnalysisEngineDescription aed = AnalysisEngineFactory.createEngineDescription(ElasticsearchRest.class, TypeSystemSingleton.getTypeSystemDescriptionInstance(), ELASTICSEARCH, erd); ae = AnalysisEngineFactory.createEngine(aed); client = node.client(); } }