Merge branch 'stable-2.16'
* stable-2.16:
Disable the shared ref-db by configuration
Change-Id: I80e50a489aaa8e9b7b01974dad45d80d4d1f3dc9
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 58a11e9..4e353c4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -393,18 +393,8 @@
private final boolean synchronize;
private Forwarding(Supplier<Config> cfg, String section) {
- synchronize = getBoolean(cfg, section, SYNCHRONIZE_KEY, DEFAULT_SYNCHRONIZE);
- }
-
- private static boolean getBoolean(
- Supplier<Config> cfg, String section, String name, boolean defaultValue) {
- try {
- return cfg.get().getBoolean(section, name, defaultValue);
- } catch (IllegalArgumentException e) {
- log.error("invalid value for {}; using default value {}", name, defaultValue);
- log.debug("Failed to retrieve boolean value: {}", e.getMessage(), e);
- return defaultValue;
- }
+ synchronize =
+ Configuration.getBoolean(cfg, section, null, SYNCHRONIZE_KEY, DEFAULT_SYNCHRONIZE);
}
public boolean synchronize() {
@@ -524,6 +514,7 @@
private final int casBaseSleepTimeMs;
private final int casMaxSleepTimeMs;
private final int casMaxRetries;
+ private final boolean enabled;
private CuratorFramework build;
@@ -585,6 +576,8 @@
DEFAULT_CAS_RETRY_POLICY_MAX_RETRIES);
checkArgument(StringUtils.isNotEmpty(connectionString), "zookeeper.%s contains no servers");
+
+ enabled = Configuration.getBoolean(cfg, SECTION, SUBSECTION, ENABLE_KEY, true);
}
public CuratorFramework buildCurator() {
@@ -608,5 +601,20 @@
return new BoundedExponentialBackoffRetry(
casBaseSleepTimeMs, casMaxSleepTimeMs, casMaxRetries);
}
+
+ public boolean isEnabled() {
+ return enabled;
+ }
+ }
+
+ static boolean getBoolean(
+ Supplier<Config> cfg, String section, String subsection, String name, boolean defaultValue) {
+ try {
+ return cfg.get().getBoolean(section, subsection, name, defaultValue);
+ } catch (IllegalArgumentException e) {
+ log.error("invalid value for {}; using default value {}", name, defaultValue);
+ log.debug("Failed to retrieve boolean value: {}", e.getMessage(), e);
+ return defaultValue;
+ }
}
}
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 43fab21..adb74c8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
@@ -99,7 +99,9 @@
install(new BrokerForwarderModule(config.kafkaPublisher()));
}
- install(new ValidationModule(config, disableGitRepositoryValidation));
+ install(
+ new ValidationModule(
+ config, disableGitRepositoryValidation || !config.getZookeeperConfig().isEnabled()));
bind(Gson.class)
.annotatedWith(BrokerGson.class)
.toProvider(GsonProvider.class)
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index 699ecff..168cd74 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -181,6 +181,10 @@
Defaults: 1000
+```ref-database.enabled```
+: Enable the use of a shared ref-database
+ Defaults: true
+
```ref-database.zookeeper.connectString```
: Connection string to zookeeper