Merge branch 'stable-3.3' into stable-3.4
* stable-3.3:
Inject ProjectVersionRefUpdate as Provider<>
Change-Id: I52f184253c02e87358d662526461a67bb0b71b7f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatus.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatus.java
index 7ce4606..40168c5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatus.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatus.java
@@ -26,6 +26,7 @@
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
import com.google.inject.Module;
+import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger;
@@ -60,14 +61,14 @@
private final Map<String, Long> localVersionPerProject = new HashMap<>();
private final Cache<String, Long> cache;
- private final ProjectVersionRefUpdate projectVersionRefUpdate;
+ private final Provider<ProjectVersionRefUpdate> projectVersionRefUpdate;
private final ProjectVersionLogger verLogger;
private final ProjectCache projectCache;
@Inject
public ReplicationStatus(
@Named(REPLICATION_STATUS_CACHE) Cache<String, Long> cache,
- ProjectVersionRefUpdate projectVersionRefUpdate,
+ Provider<ProjectVersionRefUpdate> projectVersionRefUpdate,
ProjectVersionLogger verLogger,
ProjectCache projectCache) {
this.cache = cache;
@@ -98,8 +99,9 @@
public void updateReplicationLag(Project.NameKey projectName) {
Optional<Long> remoteVersion =
- projectVersionRefUpdate.getProjectRemoteVersion(projectName.get());
- Optional<Long> localVersion = projectVersionRefUpdate.getProjectLocalVersion(projectName.get());
+ projectVersionRefUpdate.get().getProjectRemoteVersion(projectName.get());
+ Optional<Long> localVersion =
+ projectVersionRefUpdate.get().getProjectLocalVersion(projectName.get());
if (remoteVersion.isPresent() && localVersion.isPresent()) {
long lag = remoteVersion.get() - localVersion.get();
@@ -120,7 +122,8 @@
}
void removeProjectFromReplicationLagMetrics(Project.NameKey projectName) {
- Optional<Long> localVersion = projectVersionRefUpdate.getProjectLocalVersion(projectName.get());
+ Optional<Long> localVersion =
+ projectVersionRefUpdate.get().getProjectLocalVersion(projectName.get());
if (!localVersion.isPresent() && replicationStatusPerProject.containsKey(projectName.get())) {
cache.invalidate(projectName.get());
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatusTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatusTest.java
index aec9404..a2a5e73 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatusTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatusTest.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.consumer;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -24,6 +25,7 @@
import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.events.ProjectDeletedListener;
import com.google.gerrit.server.project.ProjectCache;
+import com.google.inject.Provider;
import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger;
import com.googlesource.gerrit.plugins.multisite.validation.ProjectVersionRefUpdate;
import java.util.Optional;
@@ -38,6 +40,7 @@
@Mock private ProjectVersionLogger verLogger;
@Mock private ProjectCache projectCache;
+ @Mock private Provider<ProjectVersionRefUpdate> projectVersionRefUpdateProvider;
@Mock private ProjectVersionRefUpdate projectVersionRefUpdate;
private ReplicationStatus objectUnderTest;
private Cache<String, Long> replicationStatusCache;
@@ -50,7 +53,8 @@
replicationStatusCache = CacheBuilder.newBuilder().build();
objectUnderTest =
new ReplicationStatus(
- replicationStatusCache, projectVersionRefUpdate, verLogger, projectCache);
+ replicationStatusCache, projectVersionRefUpdateProvider, verLogger, projectCache);
+ lenient().when(projectVersionRefUpdateProvider.get()).thenReturn(projectVersionRefUpdate);
}
@Test
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 ab1ef80..8ed4a14 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
@@ -27,6 +27,7 @@
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.RefUpdatedEvent;
import com.google.gerrit.server.project.ProjectCache;
+import com.google.inject.Provider;
import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger;
import com.googlesource.gerrit.plugins.multisite.validation.ProjectVersionRefUpdate;
import com.googlesource.gerrit.plugins.replication.events.ProjectDeletionReplicationSucceededEvent;
@@ -48,6 +49,7 @@
@Mock private MetricMaker metricMaker;
@Mock private ProjectVersionLogger verLogger;
@Mock private ProjectCache projectCache;
+ @Mock private Provider<ProjectVersionRefUpdate> projectVersionRefUpdateProvider;
@Mock private ProjectVersionRefUpdate projectVersionRefUpdate;
private SubscriberMetrics metrics;
private ReplicationStatus replicationStatus;
@@ -56,8 +58,12 @@
public void setup() throws Exception {
replicationStatus =
new ReplicationStatus(
- CacheBuilder.newBuilder().build(), projectVersionRefUpdate, verLogger, projectCache);
+ CacheBuilder.newBuilder().build(),
+ projectVersionRefUpdateProvider,
+ verLogger,
+ projectCache);
metrics = new SubscriberMetrics(metricMaker, replicationStatus);
+ when(projectVersionRefUpdateProvider.get()).thenReturn(projectVersionRefUpdate);
}
@Test