001package io.ebean.docker.commands; 002 003import java.io.BufferedReader; 004import java.io.IOException; 005import java.io.InputStreamReader; 006import java.net.URL; 007import java.net.URLConnection; 008import java.util.ArrayList; 009import java.util.List; 010import java.util.Properties; 011 012public class ElasticContainer extends BaseContainer { 013 014 /** 015 * Create the ElasticContainer with configuration via properties. 016 */ 017 public static ElasticContainer create(String elasticVersion, Properties properties) { 018 return new ElasticContainer(new ElasticConfig(elasticVersion, properties)); 019 } 020 021 public ElasticContainer(ElasticConfig config) { 022 super(config); 023 } 024 025 @Override 026 boolean checkConnectivity() { 027 028 try { 029 URL url = new URL("http://localhost:" + config.getPort() + "/"); 030 URLConnection yc = url.openConnection(); 031 032 StringBuilder sb = new StringBuilder(300); 033 try (BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()))) { 034 String inputLine; 035 while ((inputLine = in.readLine()) != null) 036 sb.append(inputLine).append("\n"); 037 } 038 return sb.toString().contains("docker-cluster"); 039 040 } catch (IOException e) { 041 return false; 042 } 043 } 044 045 protected ProcessBuilder runProcess() { 046 047 List<String> args = dockerRun(); 048 args.add("-e"); 049 args.add("http.host=0.0.0.0"); 050 args.add("-e"); 051 args.add("transport.host=127.0.0.1"); 052 args.add("-e"); 053 args.add("xpack.security.enabled=false"); 054 055 args.add(config.image); 056 return createProcessBuilder(args); 057 } 058 059}