package helpers;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import play.test.WithApplication;
import services.ElasticsearchConfig;
import services.repository.ElasticsearchRepository;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
public class ElasticsearchTestGrid extends WithApplication {
protected static Config mConfig;
protected static ElasticsearchRepository mRepo;
protected static Settings mClientSettings;
protected static Client mClient;
protected static ElasticsearchConfig mEsConfig;
public static ElasticsearchRepository getEsRepo() {
return mRepo;
}
@BeforeClass
public static void setup() throws IOException {
mConfig = ConfigFactory.parseFile(new File("conf/test.conf")).resolve();
mRepo = new ElasticsearchRepository(mConfig);
mEsConfig = mRepo.getConfig();
mClientSettings = Settings.settingsBuilder().put(mEsConfig.getClientSettings())
.build();
mClient = TransportClient.builder().settings(mClientSettings).build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(mEsConfig.getServer()),
Integer.valueOf(mEsConfig.getJavaPort())));
}
@AfterClass
public static void tearDown() throws Exception {
if (mConfig.getBoolean("es.node.inmemory")) {
mEsConfig.deleteIndex(mConfig.getString("es.index.name"));
}
mEsConfig.tearDown();
}
@Before
public void setupIndex() {
ElasticsearchHelpers.cleanIndex(mRepo, mConfig.getString("es.index.name"));
}
}