package io.searchbox.common; import io.searchbox.client.JestClientFactory; import io.searchbox.client.config.HttpClientConfig; import io.searchbox.client.http.JestHttpClient; import org.elasticsearch.common.network.NetworkModule; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.http.HttpTransportSettings; import org.elasticsearch.painless.PainlessPlugin; import org.elasticsearch.percolator.PercolatorPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.mustache.MustachePlugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.transport.Netty4Plugin; import org.elasticsearch.transport.netty4.Netty4Transport; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import java.util.Arrays; import java.util.Collection; /** * @author Dogukan Sonmez */ @Ignore public abstract class AbstractIntegrationTest extends ESIntegTestCase { protected final JestClientFactory factory = new JestClientFactory(); protected JestHttpClient client; protected String INDEX = "index"; @Override protected Settings nodeSettings(int nodeOrdinal) { Settings.Builder builder = Settings.builder().put(super.nodeSettings(nodeOrdinal)); builder.put(NetworkModule.HTTP_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME); builder.put(NetworkModule.TRANSPORT_TYPE_KEY, Netty4Plugin.NETTY_TRANSPORT_NAME); builder .put(NetworkModule.HTTP_ENABLED.getKey(), true) .put(HttpTransportSettings.SETTING_HTTP_PORT.getKey(), randomIntBetween(49152, 65525)) .put("network.host", "127.0.0.1"); return builder.build(); } @Override protected Collection<Class<? extends Plugin>> nodePlugins() { return Arrays.asList(Netty4Plugin.class, PainlessPlugin.class, PercolatorPlugin.class, MustachePlugin.class); } @Override protected boolean ignoreExternalCluster() { return true; } @Override protected boolean addMockTransportService() { return false; } @Override protected Collection<Class<? extends Plugin>> transportClientPlugins() { return nodePlugins(); } @Override protected Settings transportClientSettings() { Settings.Builder builder = Settings.builder().put(super.transportClientSettings()); builder.put(NetworkModule.TRANSPORT_TYPE_KEY, Netty4Plugin.NETTY_TRANSPORT_NAME); return builder.build(); } protected int getPort() { assertTrue("There should be at least 1 HTTP endpoint exposed in the test cluster", cluster().httpAddresses().length > 0); return cluster().httpAddresses()[0].getPort(); } @Before public void setUp() throws Exception { super.setUp(); factory.setHttpClientConfig( new HttpClientConfig .Builder("http://localhost:" + getPort()) .readTimeout(10000) .multiThreaded(true).build() ); client = (JestHttpClient) factory.getObject(); } @After public void tearDown() throws Exception { super.tearDown(); client.shutdownClient(); client = null; } }