Always enable the shared ref-database

Nobody would like to have a multi-site setup to end
up in a split-brain configuration. The use-case where
the ref-database.enabled=false is invalid and thus needs
to be avoided.

Change-Id: Ib155f52a78b89f4d9f339c9d7d1f915c999fc2a9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
index 683bd81..fd97932 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -63,7 +63,6 @@
   static final boolean DEFAULT_ENABLE_PROCESSING = true;
   static final String KAFKA_SECTION = "kafka";
   public static final String KAFKA_PROPERTY_PREFIX = "KafkaProp-";
-  public static final Boolean DEFAULT_SPLIT_BRAIN = false;
 
   private final KafkaPublisher publisher;
   private final Cache cache;
@@ -563,20 +562,13 @@
   }
 
   public static class RefDatabaseConfig {
-    private final boolean enabled;
+    static final String SECTION = "ref-database";
 
     private final Zookeeper zookeeper;
-    static final String SECTION = "ref-database";
-    static final String ENABLED_KEY = "enabled";
 
     private RefDatabaseConfig(Config cfg) {
 
-      this.enabled = getBoolean(cfg, SECTION, null, ENABLED_KEY, DEFAULT_SPLIT_BRAIN);
-      zookeeper = this.enabled ? new Zookeeper(cfg) : null;
-    }
-
-    public boolean enabled() {
-      return enabled;
+      zookeeper = new Zookeeper(cfg);
     }
 
     public Zookeeper getZookeeper() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
index 9909013..72c956e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
@@ -82,9 +82,7 @@
       install(new BrokerForwarderModule(config.kafkaPublisher()));
     }
 
-    if (config.getRefDatabaseConfig().enabled()) {
-      install(new ValidationModule(config));
-    }
+    install(new ValidationModule(config));
 
     bind(Gson.class).toProvider(GsonProvider.class).in(Singleton.class);
   }
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index dee2981..699ecff 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -43,9 +43,6 @@
   projectListEventEnabled = true
   streamEventEnabled = true
 
-[ref-database]
-  enabled = true
-
 [ref-database "zookeeper"]
   connectString = "localhost:2181"
   rootNode = "/gerrit/multi-site"
@@ -127,10 +124,6 @@
 :   Name of the Kafka topic to use for publishing cache eviction events
     Defaults to GERRIT.EVENT.PROJECT.LIST
 
-```kafka.publisher.enabled```
-:   Enable publishing events to Kafka
-    Defaults: false
-
 ```kafka.publisher.indexEventEnabled```
 :   Enable publication of index events, ignored when `kafka.publisher.enabled`
     is false
@@ -271,4 +264,4 @@
 The complete list of available settings can be found directly in the kafka website:
 
 * **Publisher**: https://kafka.apache.org/documentation/#producerconfigs
-* **Subscriber**: https://kafka.apache.org/documentation/#consumerconfigs
\ No newline at end of file
+* **Subscriber**: https://kafka.apache.org/documentation/#consumerconfigs
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/ConfigurationTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/ConfigurationTest.java
index bdd5b4e..20de0d8 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/ConfigurationTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/ConfigurationTest.java
@@ -17,7 +17,6 @@
 import static com.google.common.truth.Truth.assertThat;
 import static com.googlesource.gerrit.plugins.multisite.Configuration.Cache.CACHE_SECTION;
 import static com.googlesource.gerrit.plugins.multisite.Configuration.Cache.PATTERN_KEY;
-import static com.googlesource.gerrit.plugins.multisite.Configuration.DEFAULT_SPLIT_BRAIN;
 import static com.googlesource.gerrit.plugins.multisite.Configuration.DEFAULT_THREAD_POOL_SIZE;
 import static com.googlesource.gerrit.plugins.multisite.Configuration.ENABLE_KEY;
 import static com.googlesource.gerrit.plugins.multisite.Configuration.Event.EVENT_SECTION;
@@ -33,8 +32,6 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.gerrit.server.config.PluginConfigFactory;
-import com.googlesource.gerrit.plugins.multisite.Configuration.RefDatabaseConfig;
-import com.googlesource.gerrit.plugins.multisite.Configuration.Zookeeper;
 import org.eclipse.jgit.lib.Config;
 import org.junit.Before;
 import org.junit.Test;
@@ -100,22 +97,6 @@
   }
 
   @Test
-  public void testGetEnabledRefDatabaseConfig() throws Exception {
-    assertThat(getConfiguration().getRefDatabaseConfig().enabled()).isEqualTo(DEFAULT_SPLIT_BRAIN);
-
-    globalPluginConfig.setBoolean(
-        RefDatabaseConfig.SECTION, null, RefDatabaseConfig.ENABLED_KEY, SPLIT_BRAIN_ENABLED);
-    // If ref-database enabled, zookeeper 'connect' is required
-    globalPluginConfig.setString(
-        RefDatabaseConfig.SECTION,
-        Zookeeper.SUBSECTION,
-        Zookeeper.KEY_CONNECT_STRING,
-        Zookeeper.DEFAULT_ZK_CONNECT);
-
-    assertThat(getConfiguration().getRefDatabaseConfig().enabled()).isEqualTo(SPLIT_BRAIN_ENABLED);
-  }
-
-  @Test
   public void testGetCacheSynchronize() throws Exception {
     assertThat(getConfiguration().cache().synchronize()).isEqualTo(DEFAULT_SYNCHRONIZE);