Merge branch 'stable-3.0'
* stable-3.0:
Make sure to always compare the latest local ref
Adapt to the latest metrics interface in master using the
new Field.of() builder syntax.
Change-Id: I9294778973da73805e214acb6b5072ad8c60b03a
diff --git a/setup_local_env/setup.sh b/setup_local_env/setup.sh
index 31b5ebf..87fb2ea 100755
--- a/setup_local_env/setup.sh
+++ b/setup_local_env/setup.sh
@@ -317,11 +317,11 @@
cp -f $MULTISITE_LIB_LOCATION $DEPLOYMENT_LOCATION/multi-site.jar >/dev/null 2>&1 || { echo >&2 "$MULTISITE_LIB_LOCATION: Not able to copy the file. Aborting"; exit 1; }
fi
if [ $DOWNLOAD_WEBSESSION_FLATFILE = "true" ];then
- echo "Downloading websession-flatfile plugin stable 3.0"
- wget https://gerrit-ci.gerritforge.com/view/Plugins-stable-3.0/job/plugin-websession-flatfile-bazel-master-stable-3.0/lastSuccessfulBuild/artifact/bazel-bin/plugins/websession-flatfile/websession-flatfile.jar \
+ echo "Downloading websession-flatfile plugin master"
+ wget https://gerrit-ci.gerritforge.com/view/Plugins-master/job/plugin-websession-flatfile-bazel-master-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/websession-flatfile/websession-flatfile.jar \
-O $DEPLOYMENT_LOCATION/websession-flatfile.jar || { echo >&2 "Cannot download websession-flatfile plugin: Check internet connection. Abort\
ing"; exit 1; }
- wget https://gerrit-ci.gerritforge.com/view/Plugins-stable-3.0/job/plugin-healthcheck-bazel-stable-3.0/lastSuccessfulBuild/artifact/bazel-bin/plugins/healthcheck/healthcheck.jar \
+ wget https://gerrit-ci.gerritforge.com/view/Plugins-master/job/plugin-healthcheck-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/healthcheck/healthcheck.jar \
-O $DEPLOYMENT_LOCATION/healthcheck.jar || { echo >&2 "Cannot download healthcheck plugin: Check internet connection. Abort\
ing"; exit 1; }
else
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 00af046b..1432c65 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
@@ -19,14 +19,11 @@
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.gerrit.server.config.SitePaths;
-import com.google.gson.Gson;
import com.google.inject.CreationException;
import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.spi.Message;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
-import com.googlesource.gerrit.plugins.multisite.broker.GsonProvider;
import com.googlesource.gerrit.plugins.multisite.broker.kafka.KafkaBrokerForwarderModule;
import com.googlesource.gerrit.plugins.multisite.cache.CacheModule;
import com.googlesource.gerrit.plugins.multisite.event.EventModule;
@@ -114,11 +111,6 @@
DynamicSet.bind(binder(), ProjectDeletedListener.class)
.to(ProjectDeletedSharedDbCleanup.class);
}
-
- bind(Gson.class)
- .annotatedWith(BrokerGson.class)
- .toProvider(GsonProvider.class)
- .in(Singleton.class);
}
@Provides
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerGson.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerGson.java
deleted file mode 100644
index 219aa96..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerGson.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.googlesource.gerrit.plugins.multisite.broker;
-
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import com.google.inject.BindingAnnotation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-@Retention(RUNTIME)
-@Target(PARAMETER)
-@BindingAnnotation
-public @interface BrokerGson {}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerMetrics.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerMetrics.java
index f6be65a..3f8aa8d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerMetrics.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerMetrics.java
@@ -38,14 +38,18 @@
new Description("Number of messages published by the broker publisher")
.setRate()
.setUnit("messages"),
- Field.ofString(PUBLISHER_SUCCESS_COUNTER, "Broker message published count"));
+ Field.ofString(PUBLISHER_SUCCESS_COUNTER)
+ .description("Broker message published count")
+ .build());
this.brokerPublisherFailureCounter =
metricMaker.newCounter(
"multi_site/broker/broker_message_publisher_failure_counter",
new Description("Number of messages failed to publish by the broker publisher")
.setRate()
.setUnit("errors"),
- Field.ofString(PUBLISHER_FAILURE_COUNTER, "Broker failed to publish message count"));
+ Field.ofString(PUBLISHER_FAILURE_COUNTER)
+ .description("Broker failed to publish message count")
+ .build());
}
public void incrementBrokerPublishedMessage() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerPublisher.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerPublisher.java
index 62716e6..744a558 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerPublisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/BrokerPublisher.java
@@ -17,6 +17,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.server.events.Event;
+import com.google.gerrit.server.events.EventGson;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.inject.Inject;
@@ -44,7 +45,7 @@
@Inject
public BrokerPublisher(
BrokerSession session,
- @BrokerGson Gson gson,
+ @EventGson Gson gson,
@InstanceId UUID instanceId,
MessageLogger msgLog,
BrokerMetrics brokerMetrics) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/GsonProvider.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/GsonProvider.java
deleted file mode 100644
index 0791e6a..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/broker/GsonProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.googlesource.gerrit.plugins.multisite.broker;
-
-import com.google.common.base.Supplier;
-import com.google.gerrit.server.events.Event;
-import com.google.gerrit.server.events.EventDeserializer;
-import com.google.gerrit.server.events.SupplierDeserializer;
-import com.google.gerrit.server.events.SupplierSerializer;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.inject.Provider;
-
-public class GsonProvider implements Provider<Gson> {
- @Override
- public Gson get() {
- return new GsonBuilder()
- .registerTypeAdapter(Event.class, new EventDeserializer())
- .registerTypeAdapter(Supplier.class, new SupplierSerializer())
- .registerTypeAdapter(Supplier.class, new SupplierDeserializer())
- .create();
- }
-}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
index 118c9df..36d2e75 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
@@ -148,7 +148,7 @@
}
private static Change.Id parseChangeId(String id) {
- Change.Id changeId = new Change.Id(Integer.parseInt(Splitter.on("~").splitToList(id).get(1)));
+ Change.Id changeId = Change.id(Integer.parseInt(Splitter.on("~").splitToList(id).get(1)));
return changeId;
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
index 368dffe..c7f89f1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
@@ -40,7 +40,7 @@
@Override
protected void doIndex(String uuid, Optional<GroupIndexEvent> event) {
- indexer.index(new AccountGroup.UUID(uuid));
+ indexer.index(AccountGroup.uuid(uuid));
log.debug("Group {} successfully indexed", uuid);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
index e5f7e10..6ad8419 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
@@ -66,7 +66,7 @@
public boolean attemptIndex(String projectName, Optional<ProjectIndexEvent> event) {
log.debug("Attempt to index project {}, event: [{}]", projectName, event);
- final Project.NameKey projectNameKey = new Project.NameKey(projectName);
+ final Project.NameKey projectNameKey = Project.nameKey(projectName);
if (projectChecker.isProjectUpToDate(projectNameKey)) {
indexer.index(projectNameKey);
log.debug("Project {} successfully indexed", projectName);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandler.java
index 30b2b35..1e57e95 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandler.java
@@ -47,7 +47,7 @@
* @throws IOException
*/
public void update(ProjectListUpdateEvent event) throws IOException {
- Project.NameKey projectKey = new Project.NameKey(event.projectName);
+ Project.NameKey projectKey = Project.nameKey(event.projectName);
try {
Context.setForwardedEvent(true);
if (event.remove) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java
index 7930207..880b3ec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java
@@ -17,61 +17,45 @@
import com.google.common.base.Strings;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGroup;
+import com.google.gerrit.server.events.EventGson;
import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.inject.Inject;
import com.googlesource.gerrit.plugins.multisite.cache.Constants;
public final class GsonParser {
+ private final Gson gson;
- private GsonParser() {}
+ @Inject
+ public GsonParser(@EventGson Gson gson) {
+ this.gson = gson;
+ }
- public static Object fromJson(String cacheName, String json) {
- Gson gson = new GsonBuilder().create();
+ public Object fromJson(String cacheName, String jsonString) {
+ JsonElement json = gson.fromJson(Strings.nullToEmpty(jsonString), JsonElement.class);
Object key;
// Need to add a case for 'adv_bases'
switch (cacheName) {
case Constants.ACCOUNTS:
- key = gson.fromJson(Strings.nullToEmpty(json).trim(), Account.Id.class);
+ key = Account.id(json.getAsJsonObject().get("id").getAsInt());
break;
case Constants.GROUPS:
- key = gson.fromJson(Strings.nullToEmpty(json).trim(), AccountGroup.Id.class);
+ key = AccountGroup.id(json.getAsJsonObject().get("id").getAsInt());
break;
case Constants.GROUPS_BYINCLUDE:
case Constants.GROUPS_MEMBERS:
- key = gson.fromJson(Strings.nullToEmpty(json).trim(), AccountGroup.UUID.class);
+ key = AccountGroup.uuid(json.getAsJsonObject().get("uuid").getAsString());
break;
case Constants.PROJECT_LIST:
- key = gson.fromJson(Strings.nullToEmpty(json), Object.class);
+ key = gson.fromJson(json, Object.class);
break;
default:
try {
- key = gson.fromJson(Strings.nullToEmpty(json).trim(), String.class);
+ key = gson.fromJson(json, String.class);
} catch (Exception e) {
- key = gson.fromJson(Strings.nullToEmpty(json), Object.class);
+ key = gson.fromJson(json, Object.class);
}
}
return key;
}
-
- public static String toJson(String cacheName, Object key) {
- Gson gson = new GsonBuilder().create();
- String json;
- // Need to add a case for 'adv_bases'
- switch (cacheName) {
- case Constants.ACCOUNTS:
- json = gson.toJson(key, Account.Id.class);
- break;
- case Constants.GROUPS:
- json = gson.toJson(key, AccountGroup.Id.class);
- break;
- case Constants.GROUPS_BYINCLUDE:
- case Constants.GROUPS_MEMBERS:
- json = gson.toJson(key, AccountGroup.UUID.class);
- break;
- case Constants.PROJECT_LIST:
- default:
- json = gson.toJson(key);
- }
- return json;
- }
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
index e07026d..eaf1ff7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
@@ -25,16 +25,19 @@
@Singleton
public class CacheEvictionEventRouter implements ForwardedCacheEvictionEventRouter {
private final ForwardedCacheEvictionHandler cacheEvictionHanlder;
+ private final GsonParser gsonParser;
@Inject
- public CacheEvictionEventRouter(ForwardedCacheEvictionHandler cacheEvictionHanlder) {
+ public CacheEvictionEventRouter(
+ ForwardedCacheEvictionHandler cacheEvictionHanlder, GsonParser gsonParser) {
this.cacheEvictionHanlder = cacheEvictionHanlder;
+ this.gsonParser = gsonParser;
}
@Override
public void route(CacheEvictionEvent cacheEvictionEvent) throws CacheNotFoundException {
Object parsedKey =
- GsonParser.fromJson(cacheEvictionEvent.cacheName, cacheEvictionEvent.key.toString());
+ gsonParser.fromJson(cacheEvictionEvent.cacheName, cacheEvictionEvent.key.toString());
cacheEvictionHanlder.evict(CacheEntry.from(cacheEvictionEvent.cacheName, parsedKey));
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
index b8662a1..1e21ae2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
@@ -64,7 +64,7 @@
} else if (sourceEvent instanceof AccountIndexEvent) {
AccountIndexEvent accountIndexEvent = (AccountIndexEvent) sourceEvent;
indexAccountHandler.index(
- new Account.Id(accountIndexEvent.accountId), INDEX, Optional.of(accountIndexEvent));
+ Account.id(accountIndexEvent.accountId), INDEX, Optional.of(accountIndexEvent));
} else if (sourceEvent instanceof GroupIndexEvent) {
GroupIndexEvent groupIndexEvent = (GroupIndexEvent) sourceEvent;
indexGroupHandler.index(groupIndexEvent.groupUUID, INDEX, Optional.of(groupIndexEvent));
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 f1e80cc..4d171f6 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
@@ -126,7 +126,7 @@
private String getBranchTargetSha() {
try {
try (Repository repo = gitRepoMgr.openRepository(changeNotes.get().getProjectName())) {
- String refName = changeNotes.get().getChange().getDest().get();
+ String refName = changeNotes.get().getChange().getDest().branch();
Ref ref = repo.exactRef(refName);
if (ref == null) {
log.warn("Unable to find target ref {} for change {}", refName, changeId);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/AbstractKafkaSubcriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/AbstractKafkaSubcriber.java
index 23d26ca..25d1b6d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/AbstractKafkaSubcriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/AbstractKafkaSubcriber.java
@@ -19,6 +19,7 @@
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.exceptions.StorageException;
import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
@@ -26,7 +27,6 @@
import com.googlesource.gerrit.plugins.multisite.InstanceId;
import com.googlesource.gerrit.plugins.multisite.MessageLogger;
import com.googlesource.gerrit.plugins.multisite.MessageLogger.Direction;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.ForwardedEventRouter;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -62,7 +62,7 @@
Deserializer<SourceAwareEventWrapper> valueDeserializer,
ForwardedEventRouter eventRouter,
DynamicSet<DroppedEventListener> droppedEventListeners,
- @BrokerGson Gson gson,
+ @EventGson Gson gson,
@InstanceId UUID instanceId,
OneOffRequestContext oneOffCtx,
MessageLogger msgLog) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventSubscriber.java
index 09938db..c8b3b55 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventSubscriber.java
@@ -15,13 +15,13 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.InstanceId;
import com.googlesource.gerrit.plugins.multisite.MessageLogger;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.IndexEventRouter;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -37,7 +37,7 @@
Deserializer<SourceAwareEventWrapper> valueDeserializer,
IndexEventRouter eventRouter,
DynamicSet<DroppedEventListener> droppedEventListeners,
- @BrokerGson Gson gsonProvider,
+ @EventGson Gson gsonProvider,
@InstanceId UUID instanceId,
OneOffRequestContext oneOffCtx,
MessageLogger msgLog) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaCacheEvictionEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaCacheEvictionEventSubscriber.java
index ca07e78..bfc0e8d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaCacheEvictionEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaCacheEvictionEventSubscriber.java
@@ -15,13 +15,13 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.InstanceId;
import com.googlesource.gerrit.plugins.multisite.MessageLogger;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.StreamEventRouter;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -37,7 +37,7 @@
Deserializer<SourceAwareEventWrapper> valueDeserializer,
StreamEventRouter eventRouter,
DynamicSet<DroppedEventListener> droppedEventListeners,
- @BrokerGson Gson gsonProvider,
+ @EventGson Gson gsonProvider,
@InstanceId UUID instanceId,
OneOffRequestContext oneOffCtx,
MessageLogger msgLog) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializer.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializer.java
index 6e86d25..2737675 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializer.java
@@ -14,10 +14,10 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
+import com.google.gerrit.server.events.EventGson;
import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import java.util.Map;
import org.apache.kafka.common.serialization.Deserializer;
import org.apache.kafka.common.serialization.StringDeserializer;
@@ -33,7 +33,7 @@
public KafkaEventDeserializer() {}
@Inject
- public KafkaEventDeserializer(@BrokerGson Gson gson) {
+ public KafkaEventDeserializer(@EventGson Gson gson) {
this.gson = gson;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/ProjectUpdateEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/ProjectUpdateEventSubscriber.java
index 2ba33e4..351d8ab 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/ProjectUpdateEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/ProjectUpdateEventSubscriber.java
@@ -15,13 +15,13 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.InstanceId;
import com.googlesource.gerrit.plugins.multisite.MessageLogger;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.ProjectListUpdateRouter;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -37,7 +37,7 @@
Deserializer<SourceAwareEventWrapper> valueDeserializer,
ProjectListUpdateRouter eventRouter,
DynamicSet<DroppedEventListener> droppedEventListeners,
- @BrokerGson Gson gson,
+ @EventGson Gson gson,
@InstanceId UUID instanceId,
OneOffRequestContext oneOffCtx,
MessageLogger msgLog) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventSubscriber.java
index 77f3c85..a15c7cd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventSubscriber.java
@@ -15,13 +15,13 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.InstanceId;
import com.googlesource.gerrit.plugins.multisite.MessageLogger;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.StreamEventRouter;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -37,7 +37,7 @@
Deserializer<SourceAwareEventWrapper> valueDeserializer,
StreamEventRouter eventRouter,
DynamicSet<DroppedEventListener> droppedEventListeners,
- @BrokerGson Gson gson,
+ @EventGson Gson gson,
@InstanceId UUID instanceId,
OneOffRequestContext oneOffCtx,
MessageLogger msgLog) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRepository.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRepository.java
index b3678c6..030d8a2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRepository.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRepository.java
@@ -53,7 +53,6 @@
public class MultiSiteRepository extends Repository {
- private final MultiSiteRefDatabase.Factory multiSiteRefDbFactory;
private final Repository repository;
private final RefDatabase refDatabase;
private final MultiSiteRefDatabase multiSiteRefDatabase;
@@ -68,7 +67,6 @@
@Assisted String projectName,
@Assisted Repository repository) {
super(new BaseRepositoryBuilder());
- this.multiSiteRefDbFactory = multiSiteRefDbFactory;
this.repository = repository;
this.refDatabase = repository.getRefDatabase();
this.multiSiteRefDatabase = multiSiteRefDbFactory.create(projectName, refDatabase);
@@ -157,6 +155,7 @@
return repository.getFS();
}
+ @SuppressWarnings("deprecation")
@Override
public boolean hasObject(AnyObjectId objectId) {
return repository.hasObject(objectId);
@@ -230,16 +229,19 @@
return repository.getAdditionalHaves();
}
+ @SuppressWarnings("deprecation")
@Override
public Map<String, Ref> getAllRefs() {
return repository.getAllRefs();
}
+ @SuppressWarnings("deprecation")
@Override
public Map<String, Ref> getTags() {
return repository.getTags();
}
+ @SuppressWarnings("deprecation")
@Override
public Ref peel(Ref ref) {
return repository.peel(ref);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationMetrics.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationMetrics.java
index ee9c5e5..7f5c637 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationMetrics.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationMetrics.java
@@ -35,17 +35,17 @@
metricMaker.newCounter(
"multi_site/validation/git_update_split_brain_prevented",
new Description("Rate of REST API error responses").setRate().setUnit("errors"),
- Field.ofString(
- GIT_UPDATE_SPLIT_BRAIN_PREVENTED,
- "Ref-update operations, split-brain detected and prevented"));
+ Field.ofString(GIT_UPDATE_SPLIT_BRAIN_PREVENTED)
+ .description("Ref-update operations, split-brain detected and prevented")
+ .build());
this.splitBrainCounter =
metricMaker.newCounter(
"multi_site/validation/git_update_split_brain",
new Description("Rate of REST API error responses").setRate().setUnit("errors"),
- Field.ofString(
- GIT_UPDATE_SPLIT_BRAIN,
- "Ref-update operation left node in a split-brain scenario"));
+ Field.ofString(GIT_UPDATE_SPLIT_BRAIN)
+ .description("Ref-update operation left node in a split-brain scenario")
+ .build());
}
public void incrementSplitBrainPrevention() {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/broker/kafka/BrokerPublisherTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/broker/kafka/BrokerPublisherTest.java
index 36408ba..fc14bed 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/broker/kafka/BrokerPublisherTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/broker/kafka/BrokerPublisherTest.java
@@ -22,12 +22,13 @@
import com.google.gerrit.extensions.client.ChangeKind;
import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.BranchNameKey;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.data.AccountAttribute;
import com.google.gerrit.server.data.ApprovalAttribute;
import com.google.gerrit.server.events.CommentAddedEvent;
import com.google.gerrit.server.events.Event;
+import com.google.gerrit.server.events.EventGsonProvider;
import com.google.gerrit.server.util.time.TimeUtil;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
@@ -37,7 +38,6 @@
import com.googlesource.gerrit.plugins.multisite.broker.BrokerMetrics;
import com.googlesource.gerrit.plugins.multisite.broker.BrokerPublisher;
import com.googlesource.gerrit.plugins.multisite.broker.BrokerSession;
-import com.googlesource.gerrit.plugins.multisite.broker.GsonProvider;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventFamily;
import java.util.UUID;
import org.junit.Before;
@@ -54,7 +54,7 @@
private BrokerPublisher publisher;
private MessageLogger NO_MSG_LOG = new DisabledMessageLogger();
- private Gson gson = new GsonProvider().get();
+ private Gson gson = new EventGsonProvider().get();
private String accountName = "Foo Bar";
private String accountEmail = "foo@bar.com";
@@ -106,11 +106,9 @@
+ accountUsername
+ "\"}}],\"comment\": \""
+ commentDescription
- + "\",\""
+ + "\",\"project\": \""
+ projectName
- + "\": {\"name\": \""
- + projectName
- + "\"},\"refName\": \""
+ + "\",\"refName\": \""
+ refName
+ "\",\"changeKey\": {\"id\": \""
+ changeId
@@ -122,7 +120,7 @@
JsonObject expectedCommentEventJsonObject =
gson.fromJson(expectedSerializedCommentEvent, JsonElement.class).getAsJsonObject();
- assertThat(publisher.eventToJson(event).equals(expectedCommentEventJsonObject)).isTrue();
+ assertThat(publisher.eventToJson(event)).isEqualTo(expectedCommentEventJsonObject);
}
@Test
@@ -145,10 +143,10 @@
private Event createSampleEvent() {
final Change change =
new Change(
- new Change.Key(changeId),
- new Change.Id(1),
- new Account.Id(1),
- new Branch.NameKey(projectName, refName),
+ Change.key(changeId),
+ Change.id(1),
+ Account.id(1),
+ BranchNameKey.create(projectName, refName),
TimeUtil.nowTs());
CommentAddedEvent event = new CommentAddedEvent(change);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedCacheEvictionHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedCacheEvictionHandlerTest.java
index c166077..8c7b54e 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedCacheEvictionHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedCacheEvictionHandlerTest.java
@@ -57,7 +57,7 @@
@Test
public void testSuccessfulCacheEviction() throws Exception {
- CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, new Account.Id(123));
+ CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, Account.id(123));
doReturn(cacheMock).when(cacheMapMock).get(entry.getPluginName(), entry.getCacheName());
handler.evict(entry);
@@ -75,7 +75,7 @@
@Test
public void shouldSetAndUnsetForwardedContext() throws Exception {
- CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, new Account.Id(456));
+ CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, Account.id(456));
doReturn(cacheMock).when(cacheMapMock).get(entry.getPluginName(), entry.getCacheName());
// this doAnswer is to allow to assert that context is set to forwarded
@@ -98,7 +98,7 @@
@Test
public void shouldSetAndUnsetForwardedContextEvenIfExceptionIsThrown() throws Exception {
- CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, new Account.Id(789));
+ CacheEntry entry = new CacheEntry(Constants.GERRIT, Constants.ACCOUNTS, Account.id(789));
doReturn(cacheMock).when(cacheMapMock).get(entry.getPluginName(), entry.getCacheName());
doAnswer(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedEventHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedEventHandlerTest.java
index 5c36ada..387fc41 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedEventHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedEventHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
@@ -87,12 +87,8 @@
.postEvent(event);
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.dispatch(event);
- fail("should have throw an StorageException");
- } catch (StorageException e) {
- assertThat(e.getMessage()).isEqualTo("someMessage");
- }
+ StorageException thrown = assertThrows(StorageException.class, () -> handler.dispatch(event));
+ assertThat(thrown).hasMessageThat().isEqualTo("someMessage");
assertThat(Context.isForwardedEvent()).isFalse();
verify(dispatcherMock).postEvent(event);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandlerTest.java
index 0d452a4..83c79c1 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -50,7 +50,7 @@
when(config.index()).thenReturn(index);
when(index.numStripedLocks()).thenReturn(10);
handler = new ForwardedIndexAccountHandler(indexerMock, config);
- id = new Account.Id(123);
+ id = Account.id(123);
}
@Test
@@ -98,12 +98,9 @@
.index(id);
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.index(id, Operation.INDEX, Optional.empty());
- fail("should have thrown an IOException");
- } catch (IOException e) {
- assertThat(e.getMessage()).isEqualTo("someMessage");
- }
+ IOException thrown =
+ assertThrows(IOException.class, () -> handler.index(id, Operation.INDEX, Optional.empty()));
+ assertThat(thrown).hasMessageThat().isEqualTo("someMessage");
assertThat(Context.isForwardedEvent()).isFalse();
verify(indexerMock).index(id);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java
index 0a910c5..6255d32 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doThrow;
@@ -82,7 +82,7 @@
@Before
public void setUp() throws Exception {
when(ctxMock.open()).thenReturn(manualRequestContextMock);
- id = new Change.Id(TEST_CHANGE_NUMBER);
+ id = Change.id(TEST_CHANGE_NUMBER);
change = new Change(null, id, null, null, TimeUtil.nowTs());
when(changeNotes.getChange()).thenReturn(change);
when(changeCheckerFactoryMock.create(any())).thenReturn(changeCheckerAbsentMock);
@@ -163,12 +163,11 @@
.index(any(Change.class));
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty());
- fail("should have thrown an IOException");
- } catch (IOException e) {
- assertThat(e.getMessage()).isEqualTo("someMessage");
- }
+ IOException thrown =
+ assertThrows(
+ IOException.class,
+ () -> handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty()));
+ assertThat(thrown).hasMessageThat().isEqualTo("someMessage");
assertThat(Context.isForwardedEvent()).isFalse();
verify(indexerMock, times(1)).index(any(Change.class));
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandlerTest.java
index 9013646..3b248aa 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -56,7 +56,7 @@
@Test
public void testSuccessfulIndexing() throws Exception {
handler.index(uuid, Operation.INDEX, Optional.empty());
- verify(indexerMock).index(new AccountGroup.UUID(uuid));
+ verify(indexerMock).index(AccountGroup.uuid(uuid));
}
@Test
@@ -77,13 +77,13 @@
return null;
})
.when(indexerMock)
- .index(new AccountGroup.UUID(uuid));
+ .index(AccountGroup.uuid(uuid));
assertThat(Context.isForwardedEvent()).isFalse();
handler.index(uuid, Operation.INDEX, Optional.empty());
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock).index(new AccountGroup.UUID(uuid));
+ verify(indexerMock).index(AccountGroup.uuid(uuid));
}
@Test
@@ -95,17 +95,15 @@
throw new IOException("someMessage");
})
.when(indexerMock)
- .index(new AccountGroup.UUID(uuid));
+ .index(AccountGroup.uuid(uuid));
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.index(uuid, Operation.INDEX, Optional.empty());
- fail("should have thrown an IOException");
- } catch (IOException e) {
- assertThat(e.getMessage()).isEqualTo("someMessage");
- }
+ IOException thrown =
+ assertThrows(
+ IOException.class, () -> handler.index(uuid, Operation.INDEX, Optional.empty()));
+ assertThat(thrown).hasMessageThat().isEqualTo("someMessage");
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock).index(new AccountGroup.UUID(uuid));
+ verify(indexerMock).index(AccountGroup.uuid(uuid));
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandlerTest.java
index 9f94d5f..0324ae2 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
@@ -66,7 +66,7 @@
@Test
public void testSuccessfulIndexing() throws Exception {
handler.index(nameKey, Operation.INDEX, Optional.empty());
- verify(indexerMock).index(new Project.NameKey(nameKey));
+ verify(indexerMock).index(Project.nameKey(nameKey));
}
@Test
@@ -87,13 +87,13 @@
return null;
})
.when(indexerMock)
- .index(new Project.NameKey(nameKey));
+ .index(Project.nameKey(nameKey));
assertThat(Context.isForwardedEvent()).isFalse();
handler.index(nameKey, Operation.INDEX, Optional.empty());
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock).index(new Project.NameKey(nameKey));
+ verify(indexerMock).index(Project.nameKey(nameKey));
}
@Test
@@ -105,18 +105,16 @@
throw new IOException("someMessage");
})
.when(indexerMock)
- .index(new Project.NameKey(nameKey));
+ .index(Project.nameKey(nameKey));
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.index(nameKey, Operation.INDEX, Optional.empty());
- fail("should have thrown an IOException");
- } catch (IOException e) {
- assertThat(e.getMessage()).isEqualTo("someMessage");
- }
+ IOException thrown =
+ assertThrows(
+ IOException.class, () -> handler.index(nameKey, Operation.INDEX, Optional.empty()));
+ assertThat(thrown).hasMessageThat().isEqualTo("someMessage");
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock).index(new Project.NameKey(nameKey));
+ verify(indexerMock).index(Project.nameKey(nameKey));
}
@Test
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandlerTest.java
index a3b82d0..a911ef1 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandlerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedProjectListUpdateHandlerTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.forwarder;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
@@ -36,7 +36,7 @@
private static final String PROJECT_NAME = "someProject";
private static final String SOME_MESSAGE = "someMessage";
- private static final Project.NameKey PROJECT_KEY = new Project.NameKey(PROJECT_NAME);
+ private static final Project.NameKey PROJECT_KEY = Project.nameKey(PROJECT_NAME);
@Rule public ExpectedException exception = ExpectedException.none();
@Mock private ProjectCache projectCacheMock;
private ForwardedProjectListUpdateHandler handler;
@@ -110,12 +110,11 @@
.onCreateProject(PROJECT_KEY);
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.update(new ProjectListUpdateEvent(PROJECT_NAME, false));
- fail("should have thrown a RuntimeException");
- } catch (RuntimeException e) {
- assertThat(e.getMessage()).isEqualTo(SOME_MESSAGE);
- }
+ RuntimeException thrown =
+ assertThrows(
+ RuntimeException.class,
+ () -> handler.update(new ProjectListUpdateEvent(PROJECT_NAME, false)));
+ assertThat(thrown).hasMessageThat().isEqualTo(SOME_MESSAGE);
assertThat(Context.isForwardedEvent()).isFalse();
verify(projectCacheMock).onCreateProject(PROJECT_KEY);
@@ -133,12 +132,11 @@
.remove(PROJECT_KEY);
assertThat(Context.isForwardedEvent()).isFalse();
- try {
- handler.update(new ProjectListUpdateEvent(PROJECT_NAME, true));
- fail("should have thrown a RuntimeException");
- } catch (RuntimeException e) {
- assertThat(e.getMessage()).isEqualTo(SOME_MESSAGE);
- }
+ RuntimeException thrown =
+ assertThrows(
+ RuntimeException.class,
+ () -> handler.update(new ProjectListUpdateEvent(PROJECT_NAME, true)));
+ assertThat(thrown).hasMessageThat().isEqualTo(SOME_MESSAGE);
assertThat(Context.isForwardedEvent()).isFalse();
verify(projectCacheMock).remove(PROJECT_KEY);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java
index 0a1be19..eb9334c 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java
@@ -18,44 +18,49 @@
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGroup;
+import com.google.gerrit.server.events.EventGsonProvider;
+import com.google.gson.Gson;
import com.googlesource.gerrit.plugins.multisite.cache.Constants;
import org.junit.Test;
public class GsonParserTest {
private static final Object EMPTY_JSON = "{}";
+ private final Gson gson = new EventGsonProvider().get();
+ private final GsonParser gsonParser = new GsonParser(gson);
+
@Test
public void accountIDParse() {
- Account.Id accountId = new Account.Id(1);
- String json = GsonParser.toJson(Constants.ACCOUNTS, accountId);
- assertThat(accountId).isEqualTo(GsonParser.fromJson(Constants.ACCOUNTS, json));
+ Account.Id accountId = Account.id(1);
+ String json = gson.toJson(accountId);
+ assertThat(accountId).isEqualTo(gsonParser.fromJson(Constants.ACCOUNTS, json));
}
@Test
public void accountGroupIDParse() {
- AccountGroup.Id accountGroupId = new AccountGroup.Id(1);
- String json = GsonParser.toJson(Constants.GROUPS, accountGroupId);
- assertThat(accountGroupId).isEqualTo(GsonParser.fromJson(Constants.GROUPS, json));
+ AccountGroup.Id accountGroupId = AccountGroup.id(1);
+ String json = gson.toJson(accountGroupId);
+ assertThat(accountGroupId).isEqualTo(gsonParser.fromJson(Constants.GROUPS, json));
}
@Test
public void accountGroupUUIDParse() {
- AccountGroup.UUID accountGroupUuid = new AccountGroup.UUID("abc123");
- String json = GsonParser.toJson(Constants.GROUPS_BYINCLUDE, accountGroupUuid);
- assertThat(accountGroupUuid).isEqualTo(GsonParser.fromJson(Constants.GROUPS_BYINCLUDE, json));
+ AccountGroup.UUID accountGroupUuid = AccountGroup.uuid("abc123");
+ String json = gson.toJson(accountGroupUuid);
+ assertThat(accountGroupUuid).isEqualTo(gsonParser.fromJson(Constants.GROUPS_BYINCLUDE, json));
}
@Test
public void stringParse() {
String key = "key";
- String json = GsonParser.toJson(Constants.PROJECTS, key);
- assertThat(key).isEqualTo(GsonParser.fromJson(Constants.PROJECTS, json));
+ String json = gson.toJson(key);
+ assertThat(key).isEqualTo(gsonParser.fromJson(Constants.PROJECTS, json));
}
@Test
public void noKeyParse() {
Object object = new Object();
- String json = GsonParser.toJson(Constants.PROJECT_LIST, object);
+ String json = gson.toJson(object);
assertThat(json).isEqualTo(EMPTY_JSON);
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/CacheEvictionEventRouterTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/CacheEvictionEventRouterTest.java
index ec03a40..a19134d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/CacheEvictionEventRouterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/CacheEvictionEventRouterTest.java
@@ -16,8 +16,10 @@
import static org.mockito.Mockito.verify;
+import com.google.gson.Gson;
import com.googlesource.gerrit.plugins.multisite.forwarder.CacheEntry;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedCacheEvictionHandler;
+import com.googlesource.gerrit.plugins.multisite.forwarder.GsonParser;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.CacheEvictionEvent;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.CacheEvictionEventRouter;
import org.junit.Before;
@@ -34,7 +36,7 @@
@Before
public void setUp() {
- router = new CacheEvictionEventRouter(cacheEvictionHandler);
+ router = new CacheEvictionEventRouter(cacheEvictionHandler, new GsonParser(new Gson()));
}
@Test
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/EventConsumerIT.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/EventConsumerIT.java
index 96ed054..aa95fed 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/EventConsumerIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/EventConsumerIT.java
@@ -30,6 +30,7 @@
import com.google.gerrit.server.data.PatchSetAttribute;
import com.google.gerrit.server.events.CommentAddedEvent;
import com.google.gerrit.server.events.Event;
+import com.google.gerrit.server.events.EventGson;
import com.google.gerrit.server.events.PatchSetCreatedEvent;
import com.google.gerrit.server.events.RefUpdatedEvent;
import com.google.gerrit.server.query.change.ChangeData;
@@ -39,7 +40,6 @@
import com.google.inject.TypeLiteral;
import com.googlesource.gerrit.plugins.multisite.Configuration;
import com.googlesource.gerrit.plugins.multisite.Module;
-import com.googlesource.gerrit.plugins.multisite.broker.BrokerGson;
import com.googlesource.gerrit.plugins.multisite.broker.kafka.KafkaBrokerForwarderModule;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.ChangeIndexEvent;
import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
@@ -53,7 +53,6 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
@@ -154,9 +153,9 @@
String project = change.project().get();
int changeNum = change.getId().get();
String changeNotesRef = change.notes().getRefName();
- int patchsetNum = change.currentPatchSet().getPatchSetId();
- String patchsetRevision = change.currentPatchSet().getRevision().get();
- String patchsetRef = change.currentPatchSet().getRefName();
+ int patchsetNum = change.currentPatchSet().id().get();
+ String patchsetRevision = change.currentPatchSet().commitId().name();
+ String patchsetRef = change.currentPatchSet().refName();
Map<String, List<Event>> eventsByType = receiveEventsByType(droppedEventsQueue);
assertThat(eventsByType).isNotEmpty();
@@ -168,7 +167,7 @@
eventsByType.get("ref-updated").stream()
.map(e -> ((RefUpdatedEvent) e).getRefName())
.collect(toSet()))
- .containsAllOf(changeNotesRef, patchsetRef); // 'refs/sequences/changes'
+ .containsAtLeast(changeNotesRef, patchsetRef); // 'refs/sequences/changes'
// not always updated thus
// not checked
@@ -222,8 +221,7 @@
RevCommit parent;
try (Repository repo = repoManager.openRepository(change.project());
RevWalk walk = new RevWalk(repo)) {
- RevCommit commit =
- walk.parseCommit(ObjectId.fromString(change.currentPatchSet().getRevision().get()));
+ RevCommit commit = walk.parseCommit(change.currentPatchSet().commitId());
parent = commit.getParent(0);
}
return parent.getId().name();
@@ -264,7 +262,7 @@
private List<Event> drainQueue(LinkedBlockingQueue<SourceAwareEventWrapper> queue)
throws InterruptedException {
- Gson gson = server.getTestInjector().getInstance(Key.get(Gson.class, BrokerGson.class));
+ Gson gson = server.getTestInjector().getInstance(Key.get(Gson.class, EventGson.class));
SourceAwareEventWrapper event;
List<Event> eventsList = new ArrayList<>();
while ((event = queue.poll(QUEUE_POLL_TIMEOUT_MSECS, TimeUnit.MILLISECONDS)) != null) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventRouterTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventRouterTest.java
index df7c2fc..e2cf5ef 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventRouterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/IndexEventRouterTest.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.multisite.kafka.consumer;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
@@ -30,7 +31,6 @@
import com.googlesource.gerrit.plugins.multisite.forwarder.events.ProjectIndexEvent;
import com.googlesource.gerrit.plugins.multisite.forwarder.router.IndexEventRouter;
import java.util.Optional;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -60,7 +60,7 @@
verify(indexAccountHandler)
.index(
- new Account.Id(event.accountId),
+ Account.id(event.accountId),
ForwardedIndexingHandler.Operation.INDEX,
Optional.of(event));
@@ -123,12 +123,8 @@
public void routerShouldFailForNotRecognisedEvents() throws Exception {
final IndexEvent newEventType = new IndexEvent("new-type") {};
- try {
- router.route(newEventType);
- Assert.fail("Expected exception for not supported event");
- } catch (UnsupportedOperationException expected) {
- verifyZeroInteractions(
- indexAccountHandler, indexChangeHandler, indexGroupHandler, indexProjectHandler);
- }
+ assertThrows(UnsupportedOperationException.class, () -> router.route(newEventType));
+ verifyZeroInteractions(
+ indexAccountHandler, indexChangeHandler, indexGroupHandler, indexProjectHandler);
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializerTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializerTest.java
index 2da0c64..e44683d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/KafkaEventDeserializerTest.java
@@ -17,8 +17,8 @@
import static com.google.common.truth.Truth.assertThat;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.gerrit.server.events.EventGsonProvider;
import com.google.gson.Gson;
-import com.googlesource.gerrit.plugins.multisite.broker.GsonProvider;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
@@ -28,7 +28,7 @@
@Before
public void setUp() {
- final Gson gson = new GsonProvider().get();
+ final Gson gson = new EventGsonProvider().get();
deserializer = new KafkaEventDeserializer(gson);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventRouterTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventRouterTest.java
index 147f275..ef6c04f 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventRouterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/kafka/consumer/StreamEventRouterTest.java
@@ -17,7 +17,7 @@
import static org.mockito.Mockito.verify;
import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.BranchNameKey;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.events.CommentAddedEvent;
import com.google.gerrit.server.util.time.TimeUtil;
@@ -49,10 +49,10 @@
private Change aChange() {
return new Change(
- new Change.Key("Iabcd1234abcd1234abcd1234abcd1234abcd1234"),
- new Change.Id(1),
- new Account.Id(1),
- new Branch.NameKey("proj", "refs/heads/master"),
+ Change.key("Iabcd1234abcd1234abcd1234abcd1234abcd1234"),
+ Change.id(1),
+ Account.id(1),
+ BranchNameKey.create("proj", "refs/heads/master"),
TimeUtil.nowTs());
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteBatchRefUpdateTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteBatchRefUpdateTest.java
index 9b8b562..50c1c90 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteBatchRefUpdateTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteBatchRefUpdateTest.java
@@ -14,8 +14,8 @@
package com.googlesource.gerrit.plugins.multisite.validation;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static java.util.Arrays.asList;
-import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
@@ -89,6 +89,7 @@
return "branch_" + nameRule.getMethodName();
}
+ @SuppressWarnings("deprecation")
private void setMockRequiredReturnValues() throws IOException {
doReturn(batchRefUpdate).when(refDatabase).newBatchUpdate();
@@ -128,12 +129,10 @@
setMockRequiredReturnValues();
doReturn(false).when(sharedRefDb).isUpToDate(A_TEST_PROJECT_NAME, oldRef);
- try {
- multiSiteRefUpdate.execute(revWalk, progressMonitor, Collections.emptyList());
- fail("Expecting an IOException to be thrown");
- } catch (IOException e) {
- verify(validationMetrics).incrementSplitBrainPrevention();
- }
+ assertThrows(
+ IOException.class,
+ () -> multiSiteRefUpdate.execute(revWalk, progressMonitor, Collections.emptyList()));
+ verify(validationMetrics).incrementSplitBrainPrevention();
}
@Test
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRefUpdateTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRefUpdateTest.java
index 8dcaf3a..c20ac92 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRefUpdateTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/MultiSiteRefUpdateTest.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.multisite.validation;
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -101,12 +101,8 @@
MultiSiteRefUpdate multiSiteRefUpdate =
getMultiSiteRefUpdateWithDefaultPolicyEnforcement(refUpdate);
- try {
- multiSiteRefUpdate.update();
- fail("Expecting an IOException to be thrown");
- } catch (IOException e) {
- verify(validationMetrics).incrementSplitBrainPrevention();
- }
+ assertThrows(IOException.class, () -> multiSiteRefUpdate.update());
+ verify(validationMetrics).incrementSplitBrainPrevention();
}
@Test
@@ -123,12 +119,8 @@
MultiSiteRefUpdate multiSiteRefUpdate =
getMultiSiteRefUpdateWithDefaultPolicyEnforcement(refUpdate);
- try {
- multiSiteRefUpdate.update();
- fail("Expecting an IOException to be thrown");
- } catch (IOException e) {
- verify(validationMetrics, never()).incrementSplitBrainPrevention();
- }
+ assertThrows(IOException.class, () -> multiSiteRefUpdate.update());
+ verify(validationMetrics, never()).incrementSplitBrainPrevention();
}
@Test
@@ -145,12 +137,8 @@
MultiSiteRefUpdate multiSiteRefUpdate =
getMultiSiteRefUpdateWithDefaultPolicyEnforcement(refUpdate);
- try {
- multiSiteRefUpdate.update();
- fail("Expecting an IOException to be thrown");
- } catch (IOException e) {
- verify(validationMetrics).incrementSplitBrain();
- }
+ assertThrows(IOException.class, () -> multiSiteRefUpdate.update());
+ verify(validationMetrics).incrementSplitBrain();
}
@Test
@@ -178,12 +166,8 @@
MultiSiteRefUpdate multiSiteRefUpdate =
getMultiSiteRefUpdateWithDefaultPolicyEnforcement(refUpdate);
- try {
- multiSiteRefUpdate.delete();
- fail("Expecting an IOException to be thrown");
- } catch (IOException e) {
- verify(validationMetrics).incrementSplitBrainPrevention();
- }
+ assertThrows(IOException.class, () -> multiSiteRefUpdate.delete());
+ verify(validationMetrics).incrementSplitBrainPrevention();
}
private MultiSiteRefUpdate getMultiSiteRefUpdateWithDefaultPolicyEnforcement(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/RefFixture.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/RefFixture.java
index 72ea236..6793bfe 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/RefFixture.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/validation/dfsrefdb/zookeeper/RefFixture.java
@@ -27,7 +27,7 @@
static final String ALLOWED_NAME_CHARS =
ALLOWED_CHARS + ALLOWED_CHARS.toUpperCase() + ALLOWED_DIGITS;
static final String A_TEST_PROJECT_NAME = "A_TEST_PROJECT_NAME";
- static final Project.NameKey A_TEST_PROJECT_NAME_KEY = new Project.NameKey(A_TEST_PROJECT_NAME);
+ static final Project.NameKey A_TEST_PROJECT_NAME_KEY = Project.nameKey(A_TEST_PROJECT_NAME);
static final ObjectId AN_OBJECT_ID_1 = new ObjectId(1, 2, 3, 4, 5);
static final ObjectId AN_OBJECT_ID_2 = new ObjectId(1, 2, 3, 4, 6);
static final ObjectId AN_OBJECT_ID_3 = new ObjectId(1, 2, 3, 4, 7);