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
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
index 98d8d4c..5d66077 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
@@ -20,6 +20,7 @@
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 @@
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 @@
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();