Merge branch 'stable-3.1' into stable-3.2 * stable-3.1: e2e-tests: Replace hardcoded scheme with property Change-Id: Ia7d81d31b38d61ee1143912bfdc4734f8acc7243
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl index 18e407f..30bfbc1 100644 --- a/external_plugin_deps.bzl +++ b/external_plugin_deps.bzl
@@ -15,6 +15,6 @@ maven_jar( name = "events-broker", - artifact = "com.gerritforge:events-broker:3.1.4", - sha1 = "5672908dde0bd02cabc95efe34a8d8507d44b6ac", + artifact = "com.gerritforge:events-broker:3.2.0-rc4", + sha1 = "53e3f862ac2c2196dba716756ac9586f4b63af47", )
diff --git a/setup_local_env/setup.sh b/setup_local_env/setup.sh index 7615ca0..84037ad 100755 --- a/setup_local_env/setup.sh +++ b/setup_local_env/setup.sh
@@ -16,7 +16,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -GERRIT_BRANCH=stable-3.1 +GERRIT_BRANCH=stable-3.2 GERRIT_CI=https://gerrit-ci.gerritforge.com/view/Plugins-$GERRIT_BRANCH/job LAST_BUILD=lastSuccessfulBuild/artifact/bazel-bin/plugins EVENTS_BROKER_VER=`grep 'com.gerritforge:events-broker' $(dirname $0)/../external_plugin_deps.bzl | cut -d '"' -f 2 | cut -d ':' -f 3` @@ -341,7 +341,7 @@ fi if [ $DOWNLOAD_WEBSESSION_PLUGIN = "true" ];then echo "Downloading websession-broker plugin $GERRIT_BRANCH" - wget $GERRIT_CI/plugin-websession-broker-bazel-$GERRIT_BRANCH/$LAST_BUILD/websession-broker/websession-broker.jar \ + wget $GERRIT_CI/plugin-websession-broker-bazel-master-$GERRIT_BRANCH/$LAST_BUILD/websession-broker/websession-broker.jar \ -O $DEPLOYMENT_LOCATION/websession-broker.jar || { echo >&2 "Cannot download websession-broker plugin: Check internet connection. Abort\ ing"; exit 1; } wget $GERRIT_CI/plugin-healthcheck-bazel-$GERRIT_BRANCH/$LAST_BUILD/healthcheck/healthcheck.jar \
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/SharedRefDatabaseWrapper.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/SharedRefDatabaseWrapper.java index b56f2ea..ddf9d84 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/SharedRefDatabaseWrapper.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/SharedRefDatabaseWrapper.java
@@ -21,11 +21,13 @@ import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.registration.DynamicItem; import com.google.inject.Inject; +import com.googlesource.gerrit.plugins.multisite.validation.dfsrefdb.NoopSharedRefDatabase; import java.util.Optional; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Ref; public class SharedRefDatabaseWrapper implements GlobalRefDatabase { + private static final GlobalRefDatabase NOOP_REFDB = new NoopSharedRefDatabase(); @Inject(optional = true) private DynamicItem<GlobalRefDatabase> sharedRefDbDynamicItem; @@ -95,6 +97,6 @@ } private GlobalRefDatabase sharedRefDb() { - return sharedRefDbDynamicItem.get(); + return Optional.ofNullable(sharedRefDbDynamicItem).map(di -> di.get()).orElse(NOOP_REFDB); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ChangeCheckerImpl.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ChangeCheckerImpl.java index 32b8af3..15b1e09 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ChangeCheckerImpl.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ChangeCheckerImpl.java
@@ -79,7 +79,7 @@ @Override public Optional<ChangeNotes> getChangeNotes() { try (ManualRequestContext ctx = oneOffReqCtx.open()) { - this.changeNotes = Optional.ofNullable(changeFinder.findOne(changeId)); + this.changeNotes = changeFinder.findOne(changeId); return changeNotes; } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ProjectCheckerImpl.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ProjectCheckerImpl.java index 548ccc0..d9851f3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ProjectCheckerImpl.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/ProjectCheckerImpl.java
@@ -28,6 +28,6 @@ @Override public boolean isProjectUpToDate(Project.NameKey projectName) { - return projectCache.get(projectName) != null; + return projectCache.get(projectName).isPresent(); } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/RefUpdateValidatorTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/RefUpdateValidatorTest.java index eefb685..de93545 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/RefUpdateValidatorTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/RefUpdateValidatorTest.java
@@ -23,6 +23,7 @@ import com.google.gerrit.entities.Project; import com.googlesource.gerrit.plugins.multisite.SharedRefDatabaseWrapper; +import com.googlesource.gerrit.plugins.multisite.SharedRefLogger; import com.googlesource.gerrit.plugins.multisite.validation.dfsrefdb.DefaultSharedRefEnforcement; import com.googlesource.gerrit.plugins.multisite.validation.dfsrefdb.RefFixture; import com.googlesource.gerrit.plugins.multisite.validation.dfsrefdb.SharedDbSplitBrainException; @@ -44,6 +45,8 @@ @Mock SharedRefDatabaseWrapper sharedRefDb; + @Mock SharedRefLogger sharedRefLogger; + @Mock RefDatabase localRefDb; @Mock ValidationMetrics validationMetrics; @@ -71,14 +74,17 @@ doReturn(refName).when(refUpdate).getName(); lenient().doReturn(oldUpdateRef.getObjectId()).when(refUpdate).getOldObjectId(); - refUpdateValidator = - new RefUpdateValidator( - sharedRefDb, - validationMetrics, - defaultRefEnforcement, - new DummyLockWrapper(), - A_TEST_PROJECT_NAME, - localRefDb); + refUpdateValidator = newRefUpdateValidator(sharedRefDb); + } + + @Test + public void validationShouldSucceedWhenSharedRefDbIsNoop() throws Exception { + SharedRefDatabaseWrapper noopSharedRefDbWrapper = new SharedRefDatabaseWrapper(sharedRefLogger); + + Result result = + newRefUpdateValidator(noopSharedRefDbWrapper) + .executeRefUpdate(refUpdate, () -> RefUpdate.Result.NEW); + assertThat(result).isEqualTo(RefUpdate.Result.NEW); } @Test @@ -186,4 +192,14 @@ .compareAndPut(any(Project.NameKey.class), any(Ref.class), any(ObjectId.class)); assertThat(result).isEqualTo(RefUpdate.Result.LOCK_FAILURE); } + + private RefUpdateValidator newRefUpdateValidator(SharedRefDatabaseWrapper refDbWrapper) { + return new RefUpdateValidator( + refDbWrapper, + validationMetrics, + defaultRefEnforcement, + new DummyLockWrapper(), + A_TEST_PROJECT_NAME, + localRefDb); + } }