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();