Disable replicationLag if pullReplicationFilter is enabled

Bug: Issue 408010451
Change-Id: I921cc752d15c0189c154ea0ccfea1bb01a786551
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 6beda51..7d76807 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -123,10 +123,10 @@
     replicationLagEnabled =
         memoize(
             () ->
-                lazyMultiSiteCfg
-                    .get()
-                    .getBoolean(REF_DATABASE, null, REPLICATION_LAG_ENABLED, true));
-
+                !pullReplicationFilterEnabled.get()
+                    && lazyMultiSiteCfg
+                        .get()
+                        .getBoolean(REF_DATABASE, null, REPLICATION_LAG_ENABLED, true));
     pushReplicationFilterEnabled =
         memoize(
             () ->
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index 253d8aa..75fc55b 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -115,7 +115,8 @@
     updating the `refs/multi-site/version/*` to the _epoch_ timestamp in
     milliseconds. Please note that the `replication-lag` REST-API is also
     disabled if this setting is false.
-    Defaults: true
+    Defaults: true unless `pullReplicationFilterEnabled` is enabled and the pull-replication plugin
+    is available, in which case replicationLag is always disabled.
 
 ```ref-database.replicationLagRefreshInterval```
 :   Enable the auto-refresh of the metrics to trace the auto-replication
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
index 6a03a6c..191d7fd 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
@@ -57,6 +57,8 @@
 
   @Before
   public void setup() throws Exception {
+    Config multiSiteConfig = new Config();
+    multiSiteConfig.setBoolean("ref-database", null, "pullReplicationFilterEnabled", false);
     replicationStatus =
         new ReplicationStatus(
             CacheBuilder.newBuilder().build(),
@@ -64,7 +66,8 @@
             verLogger,
             projectCache,
             Executors.newScheduledThreadPool(1),
-            new com.googlesource.gerrit.plugins.multisite.Configuration(new Config(), new Config()),
+            new com.googlesource.gerrit.plugins.multisite.Configuration(
+                multiSiteConfig, new Config()),
             new DisabledMetricMaker());
     metrics = new SubscriberMetrics(metricMaker, replicationStatus);
   }