Zookeeper module should be responsible for reading its
own configuration
Allow zookeeper module to read its own configuration from
multi-site.config file. This separation allow us to move
zookeeper related code to a separate plugin plus it makes
easy to introduce new config file for zookeeper plugin.
Feature: Issue 10824
Change-Id: Ib0da3d3215ebf6bba280521da8129f46f0f3da0f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/ZookeeperConfig.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/ZookeeperConfig.java
index 35471fa..2113f3fc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/ZookeeperConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/ZookeeperConfig.java
@@ -18,9 +18,11 @@
import static com.google.common.base.Suppliers.memoize;
import static com.google.common.base.Suppliers.ofInstance;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.gerrit.server.config.SitePaths;
+import com.google.inject.Inject;
import java.io.IOException;
import org.apache.commons.lang.StringUtils;
import org.apache.curator.RetryPolicy;
@@ -82,6 +84,12 @@
private CuratorFramework build;
+ @Inject
+ ZookeeperConfig(SitePaths sitePaths) {
+ this(getConfigFile(sitePaths, Configuration.MULTI_SITE_CONFIG));
+ }
+
+ @VisibleForTesting
public ZookeeperConfig(Config zkCfg) {
Supplier<Config> lazyZkConfig = lazyLoad(zkCfg);
connectionString =