Merge branch 'stable-3.7' into stable-3.8 * stable-3.7: Use index on ChangeNotes which supports local and imported changes Consume global-refdb from source Add global-refdb libModule to high-available Docker test Remove syslog-sidecar volume in Docker test Bump Gerrit to v3.7.7 in Docker tests Fix docker-based tests Change-Id: I41fc19f7a2012c7cd2ef96053d8999395b564d40
diff --git a/BUILD b/BUILD index 80d202b..01ed84f 100644 --- a/BUILD +++ b/BUILD
@@ -22,10 +22,16 @@ deps = [ "@jgroups//jar", "@jgroups-kubernetes//jar", - "@global-refdb//jar:neverlink", + ":global-refdb-neverlink", ], ) +java_library( + name = "global-refdb-neverlink", + neverlink = 1, + exports = ["//plugins/global-refdb"], +) + junit_tests( name = "high-availability_tests", srcs = glob(["src/test/java/**/*.java"]),
diff --git a/Jenkinsfile b/Jenkinsfile index 0c516ca..98183a5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile
@@ -1,2 +1,3 @@ pluginPipeline(formatCheckId: 'gerritforge:plugins-high-availability-code-style', - buildCheckId: 'gerritforge:plugins-high-availability-build-test') + buildCheckId: 'gerritforge:plugins-high-availability-build-test', + extraModules: ['global-refdb'])
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandler.java index 770259d..9663205 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandler.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandler.java
@@ -124,7 +124,7 @@ private void reindex(ChangeNotes notes) { notes.reload(); - indexer.index(notes.getChange()); + indexer.index(notes); } private boolean rescheduleIndex(String id, Optional<IndexEvent> indexEvent, int retryCount) {
diff --git a/src/test/docker/docker-compose.yaml b/src/test/docker/docker-compose.yaml index 42c12c9..24140ca 100644 --- a/src/test/docker/docker-compose.yaml +++ b/src/test/docker/docker-compose.yaml
@@ -44,8 +44,6 @@ - "29418:29418" networks: - gerrit-net - volumes: - - syslog-sidecar depends_on: - syslog-sidecar - gerrit-01 @@ -61,6 +59,5 @@ driver: bridge volumes: - syslog-sidecar: shareddir: gitvolume:
diff --git a/src/test/docker/gerrit/Dockerfile b/src/test/docker/gerrit/Dockerfile index 4c4d092..caac77f 100644 --- a/src/test/docker/gerrit/Dockerfile +++ b/src/test/docker/gerrit/Dockerfile
@@ -1,8 +1,8 @@ -FROM gerritcodereview/gerrit:3.7.1 +FROM gerritcodereview/gerrit:3.7.7-ubuntu20 ENV GERRIT_BRANCH=stable-3.7 -ENV GERRIT_CI_URL=https://archive-ci.gerritforge.com/job +ENV GERRIT_CI_URL=https://gerrit-ci.gerritforge.com/job USER root @@ -10,8 +10,9 @@ USER gerrit -ADD --chown=gerrit:gerrit $GERRIT_CI_URL/plugin-javamelody-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/javamelody/javamelody.jar /var/gerrit/plugins/javamelody.jar +ADD --chown=gerrit:gerrit $GERRIT_CI_URL/plugin-javamelody-bazel-master-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/javamelody/javamelody.jar /var/gerrit/plugins/javamelody.jar ADD --chown=gerrit:gerrit $GERRIT_CI_URL/plugin-high-availability-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/high-availability/high-availability.jar /var/gerrit/plugins/high-availability.jar +ADD --chown=gerrit:gerrit $GERRIT_CI_URL/module-global-refdb-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/global-refdb/global-refdb.jar /var/gerrit/lib/global-refdb.jar USER root
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java index ba0c8c5..fe3e3fb 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java +++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java
@@ -31,7 +31,6 @@ import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.util.OneOffRequestContext; import java.io.IOException; -import java.time.Instant; import java.util.Optional; import java.util.concurrent.ScheduledExecutorService; import org.junit.Before; @@ -67,8 +66,6 @@ @Before public void setUp() throws Exception { id = Change.id(TEST_CHANGE_NUMBER); - Change change = new Change(null, id, null, null, Instant.now()); - when(changeNotes.getChange()).thenReturn(change); when(configMock.index()).thenReturn(indexMock); when(changeCheckerFactoryMock.create(any())).thenReturn(changeCheckerAbsentMock); handler = @@ -80,14 +77,14 @@ public void changeIsIndexedWhenUpToDate() throws Exception { setupChangeAccessRelatedMocks(CHANGE_EXISTS, CHANGE_UP_TO_DATE); handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty()); - verify(indexerMock, times(1)).index(any(Change.class)); + verify(indexerMock, times(1)).index(any(ChangeNotes.class)); } @Test public void changeIsStillIndexedEvenWhenOutdated() throws Exception { setupChangeAccessRelatedMocks(CHANGE_EXISTS, CHANGE_OUTDATED); handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.of(new IndexEvent())); - verify(indexerMock, times(1)).index(any(Change.class)); + verify(indexerMock, times(1)).index(any(ChangeNotes.class)); } @Test @@ -115,13 +112,13 @@ return null; }) .when(indexerMock) - .index(any(Change.class)); + .index(any(ChangeNotes.class)); assertThat(Context.isForwardedEvent()).isFalse(); handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty()); assertThat(Context.isForwardedEvent()).isFalse(); - verify(indexerMock, times(1)).index(any(Change.class)); + verify(indexerMock, times(1)).index(any(ChangeNotes.class)); } @Test @@ -134,7 +131,7 @@ throw new IOException("someMessage"); }) .when(indexerMock) - .index(any(Change.class)); + .index(any(ChangeNotes.class)); assertThat(Context.isForwardedEvent()).isFalse(); IOException thrown = @@ -144,7 +141,7 @@ assertThat(thrown).hasMessageThat().isEqualTo("someMessage"); assertThat(Context.isForwardedEvent()).isFalse(); - verify(indexerMock, times(1)).index(any(Change.class)); + verify(indexerMock, times(1)).index(any(ChangeNotes.class)); } private void setupChangeAccessRelatedMocks(boolean changeExists, boolean changeIsUpToDate)