Fix: Default values for Elastic index.* config values

Documentation points at default values, which is not implemented.
Provide these default configuration values.

Change-Id: Ie727391855d89567405e9817e5b7a7ecef15133f
This commit is contained in:
Gustaf Lundh
2017-04-19 11:30:28 +02:00
committed by Dariusz Luksza
parent 7f22503409
commit 684a99108b

View File

@@ -20,6 +20,7 @@ import static java.util.stream.Collectors.toList;
import static org.apache.commons.codec.binary.Base64.decodeBase64;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
@@ -86,9 +87,9 @@ abstract class AbstractElasticIndex<K, V> implements Index<K, V> {
this.schema = schema;
this.gson = new GsonBuilder().setFieldNamingPolicy(LOWER_CASE_WITH_UNDERSCORES).create();
this.queryBuilder = new ElasticQueryBuilder();
String protocol = getRequiredConfigOption(cfg, "protocol");
String hostname = getRequiredConfigOption(cfg, "hostname");
String port = getRequiredConfigOption(cfg, "port");
String protocol = MoreObjects.firstNonNull(cfg.getString("index", null, "protocol"), "http");
String hostname = MoreObjects.firstNonNull(cfg.getString("index", null, "hostname"), "localhost");
String port = String.valueOf(cfg.getInt("index", null, "port", 9200));
this.indexName =
String.format(
@@ -207,12 +208,6 @@ abstract class AbstractElasticIndex<K, V> implements Index<K, V> {
return builder.endObject().string();
}
private String getRequiredConfigOption(Config cfg, String name) {
String option = cfg.getString("index", null, name);
checkState(!Strings.isNullOrEmpty(option), "index." + name + " must be supplied");
return option;
}
private String buildUrl(String protocol, String hostname, String port) {
try {
return new URL(protocol, hostname, Integer.parseInt(port), "").toString();