Merge branch 'stable-2.16' into stable-3.0
* stable-2.16:
Upgrade bazlets to latest stable-2.16 to build with 2.16.11.1 API
Upgrade bazlets to latest stable-2.15 to build with 2.15.16 API
Upgrade wiremock to 2.24.1
Rename test for projects cache eviction test
Upgrade bazlets to latest stable-2.15 to build with 2.15.15 API
Change-Id: I1a3c54e88e695a3556e6995d6a34864176a1429b
diff --git a/BUILD b/BUILD
index 1022555..6d0c450 100644
--- a/BUILD
+++ b/BUILD
@@ -40,7 +40,6 @@
visibility = ["//visibility:public"],
exports = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
":high-availability__plugin",
- "@mockito//jar",
"@wiremock//jar",
],
)
diff --git a/WORKSPACE b/WORKSPACE
index 78ce6f3..40814cc 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "3df1fac2202ac2a42cec61fac8c502178c9af391",
+ commit = "3c0a1bd325152af99640655831aef109e460bbe7",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index b34ee6d..c757e36 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -8,37 +8,6 @@
)
maven_jar(
- name = "mockito",
- artifact = "org.mockito:mockito-core:2.28.2",
- sha1 = "91110215a8cb9b77a46e045ee758f77d79167cc0",
- deps = [
- "@byte-buddy//jar",
- "@byte-buddy-agent//jar",
- "@objenesis//jar",
- ],
- )
-
- BYTE_BUDDY_VERSION = "1.9.10"
-
- maven_jar(
- name = "byte-buddy",
- artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
- sha1 = "211a2b4d3df1eeef2a6cacf78d74a1f725e7a840",
- )
-
- maven_jar(
- name = "byte-buddy-agent",
- artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
- sha1 = "9674aba5ee793e54b864952b001166848da0f26b",
- )
-
- maven_jar(
- name = "objenesis",
- artifact = "org.objenesis:objenesis:2.6",
- sha1 = "639033469776fd37c08358c6b92a4761feb2af4b",
- )
-
- maven_jar(
name = "jgroups",
artifact = "org.jgroups:jgroups:3.6.15.Final",
sha1 = "755afcfc6c8a8ea1e15ef0073417c0b6e8c6d6e4",
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java
index de156a2..eb65106 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java
@@ -19,11 +19,9 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.rest.AbstractIndexRestApiServlet;
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.account.AccountState;
import com.google.gerrit.server.account.Accounts;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import java.io.IOException;
import java.sql.Timestamp;
@@ -48,12 +46,12 @@
}
@Override
- protected Iterable<AccountState> fetchItems(ReviewDb db) throws Exception {
+ protected Iterable<AccountState> fetchItems() throws Exception {
return accounts.all();
}
@Override
- protected Optional<Timestamp> indexIfNeeded(ReviewDb db, AccountState as, Timestamp sinceTs) {
+ protected Optional<Timestamp> indexIfNeeded(AccountState as, Timestamp sinceTs) {
try {
Account a = as.getAccount();
Timestamp accountTs = a.getRegisteredOn();
@@ -63,7 +61,7 @@
accountIdx.index(a.getId(), Operation.INDEX, Optional.empty());
return Optional.of(accountTs);
}
- } catch (IOException | OrmException e) {
+ } catch (IOException e) {
log.atSevere().withCause(e).log("Reindex failed");
}
return Optional.empty();
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
index 67c8325..dd323b4 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
@@ -21,13 +21,11 @@
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.notedb.ChangeNotes.Factory.ChangeNotesResult;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import java.io.IOException;
import java.sql.Timestamp;
@@ -77,14 +75,14 @@
}
@Override
- protected Iterable<Change> fetchItems(ReviewDb db) throws Exception {
+ protected Iterable<Change> fetchItems() throws Exception {
Stream<Change> allChangesStream = Stream.empty();
Iterable<Project.NameKey> projects = projectCache.all();
for (Project.NameKey projectName : projects) {
try (Repository repo = repoManager.openRepository(projectName)) {
Stream<Change> projectChangesStream =
notesFactory
- .scan(repo, db, projectName)
+ .scan(repo, projectName)
.map((ChangeNotesResult changeNotes) -> changeNotes.notes().getChange());
allChangesStream = Streams.concat(allChangesStream, projectChangesStream);
}
@@ -93,7 +91,7 @@
}
@Override
- protected Optional<Timestamp> indexIfNeeded(ReviewDb db, Change c, Timestamp sinceTs) {
+ protected Optional<Timestamp> indexIfNeeded(Change c, Timestamp sinceTs) {
try {
Timestamp changeTs = c.getLastUpdatedOn();
if (changeTs.after(sinceTs)) {
@@ -102,7 +100,7 @@
changeIdx.index(c.getProject() + "~" + c.getId(), Operation.INDEX, Optional.empty());
return Optional.of(changeTs);
}
- } catch (OrmException | IOException e) {
+ } catch (IOException e) {
log.atSevere().withCause(e).log("Reindex failed");
}
return Optional.empty();
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java
index 71a0280..e37234c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java
@@ -16,7 +16,6 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.rest.AbstractIndexRestApiServlet;
import com.google.gerrit.common.data.GroupReference;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.group.db.Groups;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.inject.Inject;
@@ -34,12 +33,12 @@
}
@Override
- protected Iterable<GroupReference> fetchItems(ReviewDb db) throws Exception {
+ protected Iterable<GroupReference> fetchItems() throws Exception {
return groups.getAllGroupReferences()::iterator;
}
@Override
- protected Optional<Timestamp> indexIfNeeded(ReviewDb db, GroupReference g, Timestamp sinceTs) {
+ protected Optional<Timestamp> indexIfNeeded(GroupReference g, Timestamp sinceTs) {
return Optional.empty();
}
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java
index c4c0b0b..54fe546 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java
@@ -22,11 +22,9 @@
import com.google.gerrit.extensions.events.ChangeIndexedListener;
import com.google.gerrit.extensions.events.GroupIndexedListener;
import com.google.gerrit.extensions.events.ProjectIndexedListener;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.change.ChangeFinder;
import com.google.gerrit.server.git.WorkQueue;
import com.google.gerrit.server.notedb.ChangeNotes;
-import com.google.gwtorm.server.SchemaFactory;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
@@ -50,7 +48,6 @@
private final Path dataDir;
private final ScheduledExecutorService exec;
private final FlusherRunner flusher;
- private final SchemaFactory<ReviewDb> schemaFactory;
private final ChangeFinder changeFinder;
private volatile LocalDateTime changeTs;
@@ -82,15 +79,10 @@
}
@Inject
- public IndexTs(
- @PluginData Path dataDir,
- WorkQueue queue,
- SchemaFactory<ReviewDb> schemaFactory,
- ChangeFinder changeFinder) {
+ public IndexTs(@PluginData Path dataDir, WorkQueue queue, ChangeFinder changeFinder) {
this.dataDir = dataDir;
this.exec = queue.getDefaultQueue();
this.flusher = new FlusherRunner();
- this.schemaFactory = schemaFactory;
this.changeFinder = changeFinder;
}
@@ -111,7 +103,7 @@
@Override
public void onChangeIndexed(String projectName, int id) {
- try (ReviewDb db = schemaFactory.open()) {
+ try {
ChangeNotes changeNotes = changeFinder.findOne(projectName + "~" + id);
update(
IndexName.CHANGE,
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ProjectReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ProjectReindexRunnable.java
index 582227d..ff5a965 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ProjectReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ProjectReindexRunnable.java
@@ -16,7 +16,6 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.rest.AbstractIndexRestApiServlet;
import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.inject.Inject;
@@ -35,12 +34,12 @@
}
@Override
- protected Iterable<Project.NameKey> fetchItems(ReviewDb db) {
+ protected Iterable<Project.NameKey> fetchItems() {
return projectCache.all();
}
@Override
- protected Optional<Timestamp> indexIfNeeded(ReviewDb db, Project.NameKey g, Timestamp sinceTs) {
+ protected Optional<Timestamp> indexIfNeeded(Project.NameKey g, Timestamp sinceTs) {
return Optional.empty();
}
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ReindexRunnable.java
index 7a5669e..3cb0ed0 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ReindexRunnable.java
@@ -17,7 +17,6 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.rest.AbstractIndexRestApiServlet;
import com.google.common.base.Stopwatch;
import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.inject.Inject;
@@ -27,6 +26,7 @@
import java.util.concurrent.TimeUnit;
abstract class ReindexRunnable<T> implements Runnable {
+
private static final FluentLogger log = FluentLogger.forEnclosingClass();
private final AbstractIndexRestApiServlet.IndexName itemName;
@@ -49,14 +49,13 @@
if (maybeIndexTs.isPresent()) {
newLastIndexTs = maxTimestamp(newLastIndexTs, Timestamp.valueOf(maybeIndexTs.get()));
log.atFine().log("Scanning for all the %ss after %s", itemNameString, newLastIndexTs);
- try (ManualRequestContext mctx = ctx.open();
- ReviewDb db = mctx.getReviewDbProvider().get()) {
+ try (ManualRequestContext mctx = ctx.open()) {
int count = 0;
int errors = 0;
Stopwatch stopwatch = Stopwatch.createStarted();
- for (T c : fetchItems(db)) {
+ for (T c : fetchItems()) {
try {
- Optional<Timestamp> itemTs = indexIfNeeded(db, c, newLastIndexTs);
+ Optional<Timestamp> itemTs = indexIfNeeded(c, newLastIndexTs);
if (itemTs.isPresent()) {
count++;
newLastIndexTs = maxTimestamp(newLastIndexTs, itemTs.get());
@@ -102,7 +101,7 @@
return ts2;
}
- protected abstract Iterable<T> fetchItems(ReviewDb db) throws Exception;
+ protected abstract Iterable<T> fetchItems() throws Exception;
- protected abstract Optional<Timestamp> indexIfNeeded(ReviewDb db, T item, Timestamp sinceTs);
+ protected abstract Optional<Timestamp> indexIfNeeded(T item, Timestamp sinceTs);
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java
index 3d9fd60..f156da4 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java
@@ -14,7 +14,6 @@
package com.ericsson.gerrit.plugins.highavailability.forwarder;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.EventBroker;
import com.google.gerrit.server.events.EventListener;
@@ -24,7 +23,6 @@
import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
-import com.google.inject.Provider;
class ForwardedAwareEventBroker extends EventBroker {
@@ -34,15 +32,8 @@
PluginSetContext<EventListener> unrestrictedListeners,
PermissionBackend permissionBackend,
ProjectCache projectCache,
- Factory notesFactory,
- Provider<ReviewDb> dbProvider) {
- super(
- listeners,
- unrestrictedListeners,
- permissionBackend,
- projectCache,
- notesFactory,
- dbProvider);
+ Factory notesFactory) {
+ super(listeners, unrestrictedListeners, permissionBackend, projectCache, notesFactory);
}
@Override
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandler.java
index 51db006..414e795 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandler.java
@@ -18,7 +18,6 @@
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.EventDispatcher;
import com.google.gerrit.server.permissions.PermissionBackendException;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -42,9 +41,8 @@
* Dispatch an event in the local node, event will not be forwarded to the other node.
*
* @param event The event to dispatch
- * @throws OrmException If an error occur while retrieving the change the event belongs to.
*/
- public void dispatch(Event event) throws OrmException, PermissionBackendException {
+ public void dispatch(Event event) throws PermissionBackendException {
try {
Context.setForwardedEvent(true);
log.atFine().log("dispatching event %s", event.getType());
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexAccountHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexAccountHandler.java
index ba60830..bb21f13 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexAccountHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexAccountHandler.java
@@ -19,7 +19,6 @@
import com.google.gerrit.server.index.account.AccountIndexer;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import java.io.IOException;
import java.util.Optional;
/**
@@ -39,7 +38,7 @@
}
@Override
- protected void doIndex(Account.Id id, Optional<IndexEvent> indexEvent) throws IOException {
+ protected void doIndex(Account.Id id, Optional<IndexEvent> indexEvent) {
indexer.index(id);
log.atFine().log("Account %s successfully indexed", id);
}
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 f68268a..fe5f591 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
@@ -18,17 +18,14 @@
import com.ericsson.gerrit.plugins.highavailability.Configuration.Index;
import com.ericsson.gerrit.plugins.highavailability.index.ChangeChecker;
import com.ericsson.gerrit.plugins.highavailability.index.ChangeCheckerImpl;
-import com.ericsson.gerrit.plugins.highavailability.index.ChangeDb;
import com.ericsson.gerrit.plugins.highavailability.index.ForwardedIndexExecutor;
import com.google.common.base.Splitter;
import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.index.change.ChangeIndexer;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
@@ -45,7 +42,6 @@
@Singleton
public class ForwardedIndexChangeHandler extends ForwardedIndexingHandler<String> {
private final ChangeIndexer indexer;
- private final ChangeDb changeDb;
private final ScheduledExecutorService indexExecutor;
private final OneOffRequestContext oneOffCtx;
private final int retryInterval;
@@ -55,14 +51,12 @@
@Inject
ForwardedIndexChangeHandler(
ChangeIndexer indexer,
- ChangeDb changeDb,
Configuration config,
@ForwardedIndexExecutor ScheduledExecutorService indexExecutor,
OneOffRequestContext oneOffCtx,
ChangeCheckerImpl.Factory changeCheckerFactory) {
super(config.index());
this.indexer = indexer;
- this.changeDb = changeDb;
this.indexExecutor = indexExecutor;
this.oneOffCtx = oneOffCtx;
this.changeCheckerFactory = changeCheckerFactory;
@@ -73,13 +67,12 @@
}
@Override
- protected void doIndex(String id, Optional<IndexEvent> indexEvent)
- throws IOException, OrmException {
+ protected void doIndex(String id, Optional<IndexEvent> indexEvent) throws IOException {
doIndex(id, indexEvent, 0);
}
private void doIndex(String id, Optional<IndexEvent> indexEvent, int retryCount)
- throws IOException, OrmException {
+ throws IOException {
try {
ChangeChecker checker = changeCheckerFactory.create(id);
Optional<ChangeNotes> changeNotes = checker.getChangeNotes();
@@ -117,11 +110,9 @@
}
}
- private void reindex(ChangeNotes notes) throws IOException, OrmException {
- try (ReviewDb db = changeDb.open()) {
- notes.reload();
- indexer.index(db, notes.getChange());
- }
+ private void reindex(ChangeNotes notes) {
+ notes.reload();
+ indexer.index(notes.getChange());
}
private void rescheduleIndex(String id, Optional<IndexEvent> indexEvent, int retryCount) {
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexGroupHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexGroupHandler.java
index fb4d2f2..9272a60 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexGroupHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexGroupHandler.java
@@ -19,7 +19,6 @@
import com.google.gerrit.server.index.group.GroupIndexer;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import java.io.IOException;
import java.util.Optional;
/**
@@ -39,8 +38,7 @@
}
@Override
- protected void doIndex(AccountGroup.UUID uuid, Optional<IndexEvent> indexEvent)
- throws IOException {
+ protected void doIndex(AccountGroup.UUID uuid, Optional<IndexEvent> indexEvent) {
indexer.index(uuid);
log.atFine().log("Group %s successfully indexed", uuid);
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexProjectHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexProjectHandler.java
index 5ae4cc0..076a44c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexProjectHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexProjectHandler.java
@@ -19,7 +19,6 @@
import com.google.gerrit.reviewdb.client.Project;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import java.io.IOException;
import java.util.Optional;
/**
@@ -39,8 +38,7 @@
}
@Override
- protected void doIndex(Project.NameKey projectName, Optional<IndexEvent> indexEvent)
- throws IOException {
+ protected void doIndex(Project.NameKey projectName, Optional<IndexEvent> indexEvent) {
indexer.index(projectName);
log.atFine().log("Project %s successfully indexed", projectName);
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexingHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexingHandler.java
index 78e103d..48dfba3 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexingHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexingHandler.java
@@ -17,7 +17,6 @@
import com.ericsson.gerrit.plugins.highavailability.Configuration;
import com.google.common.flogger.FluentLogger;
import com.google.common.util.concurrent.Striped;
-import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.util.Optional;
import java.util.concurrent.locks.Lock;
@@ -43,8 +42,7 @@
private final Striped<Lock> idLocks;
- protected abstract void doIndex(T id, Optional<IndexEvent> indexEvent)
- throws IOException, OrmException;
+ protected abstract void doIndex(T id, Optional<IndexEvent> indexEvent) throws IOException;
protected abstract void doDelete(T id, Optional<IndexEvent> indexEvent) throws IOException;
@@ -59,10 +57,8 @@
* @param operation The operation to do; index or delete
* @param indexEvent The index event details.
* @throws IOException If an error occur while indexing.
- * @throws OrmException If an error occur while retrieving a change related to the item to index
*/
- public void index(T id, Operation operation, Optional<IndexEvent> indexEvent)
- throws IOException, OrmException {
+ public void index(T id, Operation operation, Optional<IndexEvent> indexEvent) throws IOException {
log.atFine().log("%s %s %s", operation, id, indexEvent);
try {
Context.setForwardedEvent(true);
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
index 410aa23..5603fc2 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
@@ -16,7 +16,6 @@
import static javax.servlet.http.HttpServletResponse.SC_CONFLICT;
import static javax.servlet.http.HttpServletResponse.SC_METHOD_NOT_ALLOWED;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexingHandler;
@@ -25,7 +24,6 @@
import com.google.common.base.Charsets;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Optional;
@@ -93,10 +91,6 @@
} catch (IOException e) {
sendError(rsp, SC_CONFLICT, e.getMessage());
log.atSevere().withCause(e).log("Unable to update %s index", indexName);
- } catch (OrmException e) {
- String msg = String.format("Error trying to find %s", indexName);
- sendError(rsp, SC_NOT_FOUND, msg);
- log.atFine().withCause(e).log(msg);
}
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
index 61b714c..3d2d25e 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
@@ -16,7 +16,6 @@
import static com.google.common.net.MediaType.JSON_UTF_8;
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import static javax.servlet.http.HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE;
@@ -25,7 +24,6 @@
import com.google.common.net.MediaType;
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.permissions.PermissionBackendException;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
@@ -55,9 +53,6 @@
}
forwardedEventHandler.dispatch(getEventFromRequest(req));
rsp.setStatus(SC_NO_CONTENT);
- } catch (OrmException e) {
- log.atFine().withCause(e).log("Error trying to find a change");
- sendError(rsp, SC_NOT_FOUND, "Change not found\n");
} catch (IOException | PermissionBackendException e) {
log.atSevere().withCause(e).log("Unable to re-trigger event");
sendError(rsp, SC_BAD_REQUEST, e.getMessage());
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeChecker.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeChecker.java
index ce04589..ef7f942 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeChecker.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeChecker.java
@@ -16,7 +16,6 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.IndexEvent;
import com.google.gerrit.server.notedb.ChangeNotes;
-import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.util.Optional;
@@ -27,18 +26,16 @@
* Return the Change notes read from ReviewDb or NoteDb.
*
* @return notes of the Change
- * @throws OrmException if ReviewDb or NoteDb cannot be opened
*/
- Optional<ChangeNotes> getChangeNotes() throws OrmException;
+ Optional<ChangeNotes> getChangeNotes();
/**
* Create a new index event POJO associated with the current Change.
*
* @return new IndexEvent
* @throws IOException if the current Change cannot read
- * @throws OrmException if ReviewDb cannot be opened
*/
- Optional<IndexEvent> newIndexEvent() throws IOException, OrmException;
+ Optional<IndexEvent> newIndexEvent() throws IOException;
/**
* Check if the local Change is aligned with the indexEvent received.
@@ -46,9 +43,8 @@
* @param indexEvent indexing event
* @return true if the local Change is up-to-date, false otherwise.
* @throws IOException if an I/O error occurred while reading the local Change
- * @throws OrmException if the local ReviewDb cannot be opened
*/
- boolean isChangeUpToDate(Optional<IndexEvent> indexEvent) throws IOException, OrmException;
+ boolean isChangeUpToDate(Optional<IndexEvent> indexEvent) throws IOException;
/**
* Return the last computed up-to-date Change time-stamp.
@@ -57,7 +53,6 @@
*
* @return the Change timestamp epoch in seconds
* @throws IOException if an I/O error occurred while reading the local Change
- * @throws OrmException if the local ReviewDb cannot be opened
*/
- Optional<Long> getComputedChangeTs() throws IOException, OrmException;
+ Optional<Long> getComputedChangeTs() throws IOException;
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java
index 4cdf431..f88e10b 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java
@@ -18,14 +18,12 @@
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Comment;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.CommentsUtil;
import com.google.gerrit.server.change.ChangeFinder;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import java.io.IOException;
@@ -39,7 +37,6 @@
private static final FluentLogger log = FluentLogger.forEnclosingClass();
private final GitRepositoryManager gitRepoMgr;
private final CommentsUtil commentsUtil;
- private final ChangeDb changeDb;
private final OneOffRequestContext oneOffReqCtx;
private final String changeId;
private final ChangeFinder changeFinder;
@@ -54,20 +51,18 @@
public ChangeCheckerImpl(
GitRepositoryManager gitRepoMgr,
CommentsUtil commentsUtil,
- ChangeDb changeDb,
ChangeFinder changeFinder,
OneOffRequestContext oneOffReqCtx,
@Assisted String changeId) {
this.changeFinder = changeFinder;
this.gitRepoMgr = gitRepoMgr;
this.commentsUtil = commentsUtil;
- this.changeDb = changeDb;
this.oneOffReqCtx = oneOffReqCtx;
this.changeId = changeId;
}
@Override
- public Optional<IndexEvent> newIndexEvent() throws IOException, OrmException {
+ public Optional<IndexEvent> newIndexEvent() {
return getComputedChangeTs()
.map(
ts -> {
@@ -79,7 +74,7 @@
}
@Override
- public Optional<ChangeNotes> getChangeNotes() throws OrmException {
+ public Optional<ChangeNotes> getChangeNotes() {
try (ManualRequestContext ctx = oneOffReqCtx.open()) {
changeNotes = Optional.ofNullable(changeFinder.findOne(changeId));
return changeNotes;
@@ -87,8 +82,7 @@
}
@Override
- public boolean isChangeUpToDate(Optional<IndexEvent> indexEvent)
- throws IOException, OrmException {
+ public boolean isChangeUpToDate(Optional<IndexEvent> indexEvent) {
getComputedChangeTs();
log.atFine().log("Checking change %s against index event %s", this, indexEvent);
if (!computedChangeTs.isPresent()) {
@@ -110,7 +104,7 @@
}
@Override
- public Optional<Long> getComputedChangeTs() throws IOException, OrmException {
+ public Optional<Long> getComputedChangeTs() {
if (!computedChangeTs.isPresent()) {
computedChangeTs = computeLastChangeTs();
}
@@ -119,17 +113,12 @@
@Override
public String toString() {
- try {
- return "change-id="
- + changeId
- + "@"
- + getComputedChangeTs().map(IndexEvent::format)
- + "/"
- + getBranchTargetSha();
- } catch (IOException | OrmException e) {
- log.atSevere().withCause(e).log("Unable to render change %s", changeId);
- return "change-id=" + changeId;
- }
+ return "change-id="
+ + changeId
+ + "@"
+ + getComputedChangeTs().map(IndexEvent::format)
+ + "/"
+ + getBranchTargetSha();
}
private String getBranchTargetSha() {
@@ -148,22 +137,16 @@
}
}
- private Optional<Long> computeLastChangeTs() throws OrmException {
- try (ReviewDb db = changeDb.open()) {
- return getChangeNotes().map(notes -> getTsFromChangeAndDraftComments(db, notes));
- }
+ private Optional<Long> computeLastChangeTs() {
+ return getChangeNotes().map(this::getTsFromChangeAndDraftComments);
}
- private long getTsFromChangeAndDraftComments(ReviewDb db, ChangeNotes notes) {
+ private long getTsFromChangeAndDraftComments(ChangeNotes notes) {
Change change = notes.getChange();
Timestamp changeTs = change.getLastUpdatedOn();
- try {
- for (Comment comment : commentsUtil.draftByChange(db, changeNotes.get())) {
- Timestamp commentTs = comment.writtenOn;
- changeTs = commentTs.after(changeTs) ? commentTs : changeTs;
- }
- } catch (OrmException e) {
- log.atWarning().withCause(e).log("Unable to access draft comments for change %s", change);
+ for (Comment comment : commentsUtil.draftByChange(changeNotes.get())) {
+ Timestamp commentTs = comment.writtenOn;
+ changeTs = commentTs.after(changeTs) ? commentTs : changeTs;
}
return changeTs.getTime() / 1000;
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeDb.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeDb.java
deleted file mode 100644
index bef5363..0000000
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeDb.java
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2018 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.ericsson.gerrit.plugins.highavailability.index;
-
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.notedb.NotesMigration;
-import com.google.gwtorm.server.OrmException;
-import com.google.gwtorm.server.SchemaFactory;
-import com.google.inject.Inject;
-
-public class ChangeDb {
- private static final DisabledReviewDb disabledReviewDb = new DisabledReviewDb();
-
- private final NotesMigration migration;
- private final SchemaFactory<ReviewDb> schemaFactory;
-
- @Inject
- public ChangeDb(NotesMigration migration, SchemaFactory<ReviewDb> schemaFactory) {
- this.migration = migration;
- this.schemaFactory = schemaFactory;
- }
-
- public ReviewDb open() throws OrmException {
- return migration.readChanges() ? disabledReviewDb : schemaFactory.open();
- }
-}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/DisabledReviewDb.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/DisabledReviewDb.java
deleted file mode 100644
index 48c6ecb..0000000
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/DisabledReviewDb.java
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright (C) 2018 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.ericsson.gerrit.plugins.highavailability.index;
-
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.server.ChangeAccess;
-import com.google.gerrit.reviewdb.server.ChangeMessageAccess;
-import com.google.gerrit.reviewdb.server.PatchLineCommentAccess;
-import com.google.gerrit.reviewdb.server.PatchSetAccess;
-import com.google.gerrit.reviewdb.server.PatchSetApprovalAccess;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.reviewdb.server.SchemaVersionAccess;
-import com.google.gwtorm.server.Access;
-import com.google.gwtorm.server.AtomicUpdate;
-import com.google.gwtorm.server.OrmException;
-import com.google.gwtorm.server.ResultSet;
-import com.google.gwtorm.server.StatementExecutor;
-import java.util.Map;
-
-/** ReviewDb that is disabled. */
-@SuppressWarnings("deprecation")
-public class DisabledReviewDb implements ReviewDb {
- public static class Disabled extends RuntimeException {
- private static final long serialVersionUID = 1L;
-
- private Disabled() {
- super("ReviewDb is disabled for changes");
- }
- }
-
- public static class DisabledChangeAccess implements ChangeAccess {
-
- @Override
- public String getRelationName() {
- throw new Disabled();
- }
-
- @Override
- public int getRelationID() {
- throw new Disabled();
- }
-
- @Override
- public ResultSet<Change> iterateAllEntities() throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public Change.Id primaryKey(Change entity) {
- throw new Disabled();
- }
-
- @Override
- public Map<Change.Id, Change> toMap(Iterable<Change> c) {
- throw new Disabled();
- }
-
- @Override
- public CheckedFuture<Change, OrmException> getAsync(Change.Id key) {
- throw new Disabled();
- }
-
- @Override
- public ResultSet<Change> get(Iterable<Change.Id> keys) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void insert(Iterable<Change> instances) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void update(Iterable<Change> instances) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void upsert(Iterable<Change> instances) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void deleteKeys(Iterable<Change.Id> keys) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void delete(Iterable<Change> instances) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public void beginTransaction(Change.Id key) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public Change atomicUpdate(Change.Id key, AtomicUpdate<Change> update) throws OrmException {
- throw new Disabled();
- }
-
- @Override
- public Change get(Change.Id id) throws OrmException {
- return null;
- }
-
- @Override
- public ResultSet<Change> all() throws OrmException {
- return null;
- }
- }
-
- @Override
- public void close() {
- // Do nothing.
- }
-
- @Override
- public void commit() {
- throw new Disabled();
- }
-
- @Override
- public void rollback() {
- throw new Disabled();
- }
-
- @Override
- public void updateSchema(StatementExecutor e) {
- throw new Disabled();
- }
-
- @Override
- public void pruneSchema(StatementExecutor e) {
- throw new Disabled();
- }
-
- @Override
- public Access<?, ?>[] allRelations() {
- throw new Disabled();
- }
-
- @Override
- public SchemaVersionAccess schemaVersion() {
- throw new Disabled();
- }
-
- @Override
- public ChangeAccess changes() {
- return new DisabledChangeAccess();
- }
-
- @Override
- public PatchSetApprovalAccess patchSetApprovals() {
- throw new Disabled();
- }
-
- @Override
- public ChangeMessageAccess changeMessages() {
- throw new Disabled();
- }
-
- @Override
- public PatchSetAccess patchSets() {
- throw new Disabled();
- }
-
- @Override
- public PatchLineCommentAccess patchComments() {
- throw new Disabled();
- }
-
- @Override
- public int nextAccountId() {
- throw new Disabled();
- }
-
- @Override
- public int nextAccountGroupId() {
- throw new Disabled();
- }
-
- @Override
- public int nextChangeId() {
- throw new Disabled();
- }
-}
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/ConfigurationTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/ConfigurationTest.java
index 63ab408..1b67a3a 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/ConfigurationTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/ConfigurationTest.java
@@ -112,15 +112,16 @@
@Test
public void testGetPeerInfoStrategy() {
- assertThat(getConfiguration().peerInfo().strategy()).isSameAs(DEFAULT_PEER_INFO_STRATEGY);
+ assertThat(getConfiguration().peerInfo().strategy())
+ .isSameInstanceAs(DEFAULT_PEER_INFO_STRATEGY);
globalPluginConfig.setString(
PEER_INFO_SECTION, null, STRATEGY_KEY, PeerInfoStrategy.STATIC.name());
- assertThat(getConfiguration().peerInfo().strategy()).isSameAs(PeerInfoStrategy.STATIC);
+ assertThat(getConfiguration().peerInfo().strategy()).isSameInstanceAs(PeerInfoStrategy.STATIC);
globalPluginConfig.setString(
PEER_INFO_SECTION, null, STRATEGY_KEY, PeerInfoStrategy.JGROUPS.name());
- assertThat(getConfiguration().peerInfo().strategy()).isSameAs(PeerInfoStrategy.JGROUPS);
+ assertThat(getConfiguration().peerInfo().strategy()).isSameInstanceAs(PeerInfoStrategy.JGROUPS);
}
@Test
@@ -129,7 +130,7 @@
globalPluginConfig.setStringList(PEER_INFO_SECTION, STATIC_SUBSECTION, URL_KEY, URLS);
assertThat(getConfiguration().peerInfoStatic().urls())
- .containsAllIn(ImmutableList.of(URL, "http://anotherUrl"));
+ .containsAtLeastElementsIn(ImmutableList.of(URL, "http://anotherUrl"));
}
@Test
@@ -153,7 +154,9 @@
globalPluginConfig.setStringList(
JGROUPS_SECTION, null, SKIP_INTERFACE_KEY, ImmutableList.of("lo*", "eth0"));
- assertThat(getConfiguration().jgroups().skipInterface()).containsAllOf("lo*", "eth0").inOrder();
+ assertThat(getConfiguration().jgroups().skipInterface())
+ .containsExactly("lo*", "eth0")
+ .inOrder();
}
@Test
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java
index ec5b1de..36cc953 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java
@@ -39,7 +39,7 @@
DynamicSet<EventListener> set = DynamicSet.emptySet();
set.add("high-availability", listenerMock);
PluginSetContext<EventListener> listeners = new PluginSetContext<>(set, mockMetrics);
- broker = new ForwardedAwareEventBroker(null, listeners, null, null, null, null);
+ broker = new ForwardedAwareEventBroker(null, listeners, null, null, null);
}
@Test
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandlerTest.java
index 9d0b73c..c45b376 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandlerTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedEventHandlerTest.java
@@ -22,7 +22,7 @@
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.EventDispatcher;
import com.google.gerrit.server.events.ProjectCreatedEvent;
-import com.google.gwtorm.server.OrmException;
+import com.google.gerrit.server.permissions.PermissionBackendException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -79,7 +79,7 @@
(Answer<Void>)
invocation -> {
assertThat(Context.isForwardedEvent()).isTrue();
- throw new OrmException("someMessage");
+ throw new PermissionBackendException("someMessage");
})
.when(dispatcherMock)
.postEvent(event);
@@ -87,8 +87,8 @@
assertThat(Context.isForwardedEvent()).isFalse();
try {
handler.dispatch(event);
- fail("should have throw an OrmException");
- } catch (OrmException e) {
+ fail("should have throw a PermissionBackendException");
+ } catch (PermissionBackendException e) {
assertThat(e.getMessage()).isEqualTo("someMessage");
}
assertThat(Context.isForwardedEvent()).isFalse();
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 6bfc58b..df1bdac 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
@@ -18,7 +18,6 @@
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -27,14 +26,11 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexingHandler.Operation;
import com.ericsson.gerrit.plugins.highavailability.index.ChangeChecker;
import com.ericsson.gerrit.plugins.highavailability.index.ChangeCheckerImpl;
-import com.ericsson.gerrit.plugins.highavailability.index.ChangeDb;
import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.index.change.ChangeIndexer;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.util.OneOffRequestContext;
import com.google.gerrit.server.util.time.TimeUtil;
-import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.util.Optional;
import java.util.concurrent.ScheduledExecutorService;
@@ -55,17 +51,11 @@
private static String TEST_CHANGE_ID = TEST_PROJECT + "~" + TEST_CHANGE_NUMBER;
private static final boolean CHANGE_EXISTS = true;
private static final boolean CHANGE_DOES_NOT_EXIST = false;
- private static final boolean DO_NOT_THROW_IO_EXCEPTION = false;
- private static final boolean DO_NOT_THROW_ORM_EXCEPTION = false;
- private static final boolean THROW_IO_EXCEPTION = true;
- private static final boolean THROW_ORM_EXCEPTION = true;
private static final boolean CHANGE_UP_TO_DATE = true;
private static final boolean CHANGE_OUTDATED = false;
@Rule public ExpectedException exception = ExpectedException.none();
@Mock private ChangeIndexer indexerMock;
- @Mock private ChangeDb changeDbMock;
- @Mock private ReviewDb dbMock;
@Mock private ChangeNotes changeNotes;
@Mock private Configuration configMock;
@Mock private Configuration.Index indexMock;
@@ -79,7 +69,6 @@
@Before
public void setUp() throws Exception {
- when(changeDbMock.open()).thenReturn(dbMock);
id = new Change.Id(TEST_CHANGE_NUMBER);
Change change = new Change(null, id, null, null, TimeUtil.nowTs());
when(changeNotes.getChange()).thenReturn(change);
@@ -88,26 +77,21 @@
when(changeCheckerFactoryMock.create(any())).thenReturn(changeCheckerAbsentMock);
handler =
new ForwardedIndexChangeHandler(
- indexerMock,
- changeDbMock,
- configMock,
- indexExecutorMock,
- ctxMock,
- changeCheckerFactoryMock);
+ indexerMock, configMock, indexExecutorMock, ctxMock, changeCheckerFactoryMock);
}
@Test
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(ReviewDb.class), any(Change.class));
+ verify(indexerMock, times(1)).index(any(Change.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(ReviewDb.class), any(Change.class));
+ verify(indexerMock, times(1)).index(any(Change.class));
}
@Test
@@ -124,21 +108,6 @@
}
@Test
- public void schemaThrowsExceptionWhenLookingUpForChange() throws Exception {
- setupChangeAccessRelatedMocks(CHANGE_EXISTS, THROW_ORM_EXCEPTION, CHANGE_UP_TO_DATE);
- exception.expect(OrmException.class);
- handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty());
- }
-
- @Test
- public void indexerThrowsIOExceptionTryingToIndexChange() throws Exception {
- setupChangeAccessRelatedMocks(
- CHANGE_EXISTS, DO_NOT_THROW_ORM_EXCEPTION, THROW_IO_EXCEPTION, CHANGE_UP_TO_DATE);
- exception.expect(IOException.class);
- handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty());
- }
-
- @Test
public void shouldSetAndUnsetForwardedContext() throws Exception {
setupChangeAccessRelatedMocks(CHANGE_EXISTS, CHANGE_UP_TO_DATE);
// this doAnswer is to allow to assert that context is set to forwarded
@@ -150,13 +119,13 @@
return null;
})
.when(indexerMock)
- .index(any(ReviewDb.class), any(Change.class));
+ .index(any(Change.class));
assertThat(Context.isForwardedEvent()).isFalse();
handler.index(TEST_CHANGE_ID, Operation.INDEX, Optional.empty());
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock, times(1)).index(any(ReviewDb.class), any(Change.class));
+ verify(indexerMock, times(1)).index(any(Change.class));
}
@Test
@@ -169,7 +138,7 @@
throw new IOException("someMessage");
})
.when(indexerMock)
- .index(any(ReviewDb.class), any(Change.class));
+ .index(any(Change.class));
assertThat(Context.isForwardedEvent()).isFalse();
try {
@@ -180,39 +149,14 @@
}
assertThat(Context.isForwardedEvent()).isFalse();
- verify(indexerMock, times(1)).index(any(ReviewDb.class), any(Change.class));
+ verify(indexerMock, times(1)).index(any(Change.class));
}
- private void setupChangeAccessRelatedMocks(boolean changeExist, boolean changeUpToDate)
- throws Exception {
- setupChangeAccessRelatedMocks(
- changeExist, DO_NOT_THROW_ORM_EXCEPTION, DO_NOT_THROW_IO_EXCEPTION, changeUpToDate);
- }
-
- private void setupChangeAccessRelatedMocks(
- boolean changeExist, boolean ormException, boolean changeUpToDate)
- throws OrmException, IOException {
- setupChangeAccessRelatedMocks(
- changeExist, ormException, DO_NOT_THROW_IO_EXCEPTION, changeUpToDate);
- }
-
- private void setupChangeAccessRelatedMocks(
- boolean changeExists, boolean ormException, boolean ioException, boolean changeIsUpToDate)
- throws OrmException, IOException {
- if (ormException) {
- doThrow(new OrmException("")).when(changeDbMock).open();
- } else {
- when(changeDbMock.open()).thenReturn(dbMock);
- }
-
+ private void setupChangeAccessRelatedMocks(boolean changeExists, boolean changeIsUpToDate)
+ throws IOException {
if (changeExists) {
when(changeCheckerFactoryMock.create(TEST_CHANGE_ID)).thenReturn(changeCheckerPresentMock);
when(changeCheckerPresentMock.getChangeNotes()).thenReturn(Optional.of(changeNotes));
- if (ioException) {
- doThrow(new IOException("io-error"))
- .when(indexerMock)
- .index(any(ReviewDb.class), any(Change.class));
- }
}
when(changeCheckerPresentMock.isChangeUpToDate(any())).thenReturn(changeIsUpToDate);
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
index 835977f..7872785 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
@@ -16,7 +16,6 @@
import static com.google.common.net.MediaType.JSON_UTF_8;
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import static javax.servlet.http.HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE;
import static org.mockito.ArgumentMatchers.any;
@@ -29,7 +28,7 @@
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.events.EventTypes;
import com.google.gerrit.server.events.RefEvent;
-import com.google.gwtorm.server.OrmException;
+import com.google.gerrit.server.permissions.PermissionBackendException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
@@ -83,11 +82,11 @@
+ "\"refs/changes/76/669676/2\",\"nodesCount\":1,\"type\":"
+ "\"ref-replication-done\",\"eventCreatedOn\":1451415011}";
when(requestMock.getReader()).thenReturn(new BufferedReader(new StringReader(event)));
- doThrow(new OrmException(ERR_MSG))
+ doThrow(new PermissionBackendException(ERR_MSG))
.when(forwardedEventHandlerMock)
.dispatch(any(RefReplicationDoneEvent.class));
eventRestApiServlet.doPost(requestMock, responseMock);
- verify(responseMock).sendError(SC_NOT_FOUND, "Change not found\n");
+ verify(responseMock).sendError(SC_BAD_REQUEST, ERR_MSG);
}
@Test
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServletTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServletTest.java
index c1fa765..fb3649e 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServletTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServletTest.java
@@ -15,7 +15,6 @@
package com.ericsson.gerrit.plugins.highavailability.forwarder.rest;
import static javax.servlet.http.HttpServletResponse.SC_CONFLICT;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
@@ -26,7 +25,6 @@
import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexChangeHandler;
import com.ericsson.gerrit.plugins.highavailability.forwarder.ForwardedIndexingHandler.Operation;
-import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -81,15 +79,6 @@
}
@Test
- public void indexerThrowsOrmExceptionTryingToIndexChange() throws Exception {
- doThrow(new OrmException("some message"))
- .when(handlerMock)
- .index(eq(CHANGE_ID), eq(Operation.INDEX), any());
- servlet.doPost(requestMock, responseMock);
- verify(responseMock).sendError(SC_NOT_FOUND, "Error trying to find change");
- }
-
- @Test
public void sendErrorThrowsIOException() throws Exception {
doThrow(new IOException(IO_ERROR))
.when(handlerMock)
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AccountIndexForwardingIT.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AccountIndexForwardingIT.java
index 4b2462e..a66e896 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AccountIndexForwardingIT.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AccountIndexForwardingIT.java
@@ -26,11 +26,11 @@
@Override
public String getExpectedRequest() {
- return "/plugins/high-availability/index/account/" + testAccount.id;
+ return "/plugins/high-availability/index/account/" + testAccount.id();
}
@Override
public void doAction() throws Exception {
- gApi.accounts().id(testAccount.id.get()).setActive(false);
+ gApi.accounts().id(testAccount.id().get()).setActive(false);
}
}