Get rid of references to ReviewDb

Leverage GerritApi and do not refer to ReviewDb
anymore. Starting from v2.15 NoteDb is becoming mainstream
and assumption of being on ReviewDb is not valid anymore.

Change-Id: Ie8f960b00ed3edf2341ed99f159cf75115236447
diff --git a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
index 67fdb1e..f45e7a0 100644
--- a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
+++ b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
@@ -20,19 +20,21 @@
 
 import com.google.common.collect.Sets;
 import com.google.gerrit.extensions.annotations.Listen;
+import com.google.gerrit.extensions.api.GerritApi;
+import com.google.gerrit.extensions.api.changes.ChangeApi;
+import com.google.gerrit.extensions.api.changes.Changes;
+import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
+import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.reviewdb.client.Account;
 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.patch.PatchList;
 import com.google.gerrit.server.patch.PatchListCache;
 import com.google.gerrit.server.patch.PatchListKey;
 import com.google.gerrit.server.patch.PatchListNotAvailableException;
-import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 import java.io.IOException;
 import java.util.Set;
 import org.eclipse.jgit.lib.ObjectId;
@@ -46,7 +48,7 @@
 
   private static final String CHANGES_REF = "refs/changes/";
 
-  private final Provider<ReviewDb> db;
+  private final GerritApi api;
 
   private final PatchListCache patchListCache;
 
@@ -58,12 +60,12 @@
 
   @Inject
   public GitRefListener(
-      Provider<ReviewDb> db,
+      GerritApi api,
       PatchListCache patchListCache,
       GitRepositoryManager repositoryManager,
       Accounts accounts,
       ReviewerManager reviewerManager) {
-    this.db = db;
+    this.api = api;
     this.patchListCache = patchListCache;
     this.repositoryManager = repositoryManager;
     this.accounts = accounts;
@@ -88,33 +90,36 @@
 
   private void processEvent(Repository repository, Event event) {
     if (event.getRefName().startsWith(CHANGES_REF)) {
-      Change.Id id = Change.Id.fromRef(event.getRefName());
-      ReviewDb reviewDb = db.get();
+      Change.Id cId = Change.Id.fromRef(event.getRefName());
+      Changes changes = api.changes();
       // The provider injected by Gerrit is shared with other workers on the
       // same local thread and thus cannot be closed in this event listener.
       try {
-        Change change = reviewDb.changes().get(id);
+        ChangeApi cApi = changes.id(cId.id);
+        ChangeInfo change = cApi.get();
+        if (change == null) {
+          return;
+        }
         PatchList patchList = getPatchList(event, change);
         if (patchList != null) {
-          PathOwners owners =
-              new PathOwners(accounts, repository, change.getDest().get(), patchList);
+          PathOwners owners = new PathOwners(accounts, repository, change.branch, patchList);
           Set<Account.Id> allReviewers = Sets.newHashSet();
           allReviewers.addAll(owners.get().values());
           for (Matcher matcher : owners.getMatchers().values()) {
             allReviewers.addAll(matcher.getOwners());
           }
           logger.debug("Autoassigned reviewers are: {}", allReviewers.toString());
-          reviewerManager.addReviewers(change, allReviewers);
+          reviewerManager.addReviewers(cApi, allReviewers);
         }
-      } catch (OrmException e) {
-        logger.warn("Could not open change: {}", id, e);
+      } catch (RestApiException e) {
+        logger.warn("Could not open change: {}", cId, e);
       } catch (ReviewerManagerException e) {
-        logger.warn("Could not add reviewers for change: {}", id, e);
+        logger.warn("Could not add reviewers for change: {}", cId, e);
       }
     }
   }
 
-  private PatchList getPatchList(Event event, Change change) {
+  private PatchList getPatchList(Event event, ChangeInfo change) {
     ObjectId newId = null;
     if (event.getNewObjectId() != null) {
       newId = ObjectId.fromString(event.getNewObjectId());
@@ -122,7 +127,7 @@
 
     PatchListKey plKey = PatchListKey.againstCommit(null, newId, IGNORE_NONE);
     try {
-      return patchListCache.get(plKey, change.getProject());
+      return patchListCache.get(plKey, new Project.NameKey(change.project));
     } catch (PatchListNotAvailableException e) {
       logger.warn("Could not load patch list: {}", plKey, e);
     }
diff --git a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
index 5b0abe4..76e16fa 100644
--- a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
+++ b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
@@ -18,10 +18,11 @@
 
 import com.google.gerrit.extensions.api.GerritApi;
 import com.google.gerrit.extensions.api.changes.AddReviewerInput;
+import com.google.gerrit.extensions.api.changes.ChangeApi;
 import com.google.gerrit.extensions.api.changes.ReviewInput;
+import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.server.util.ManualRequestContext;
 import com.google.gerrit.server.util.OneOffRequestContext;
 import com.google.gwtorm.server.OrmException;
@@ -36,28 +37,32 @@
 public class ReviewerManager {
   private static final Logger log = LoggerFactory.getLogger(ReviewerManager.class);
 
-  private final GerritApi gApi;
   private final OneOffRequestContext requestContext;
+  private final GerritApi gApi;
 
   @Inject
-  public ReviewerManager(GerritApi gApi, OneOffRequestContext requestContext) {
-    this.gApi = gApi;
+  public ReviewerManager(OneOffRequestContext requestContext, GerritApi gApi) {
     this.requestContext = requestContext;
+    this.gApi = gApi;
   }
 
-  public void addReviewers(Change change, Collection<Account.Id> reviewers)
+  public void addReviewers(ChangeApi cApi, Collection<Account.Id> reviewers)
       throws ReviewerManagerException {
-    try (ManualRequestContext ctx = requestContext.openAs(change.getOwner())) {
-      // TODO(davido): Switch back to using changes API again,
-      // when it supports batch mode for adding reviewers
-      ReviewInput in = new ReviewInput();
-      in.reviewers = new ArrayList<>(reviewers.size());
-      for (Account.Id account : reviewers) {
-        AddReviewerInput addReviewerInput = new AddReviewerInput();
-        addReviewerInput.reviewer = account.toString();
-        in.reviewers.add(addReviewerInput);
+    try {
+      ChangeInfo changeInfo = cApi.get();
+      try (ManualRequestContext ctx =
+          requestContext.openAs(new Account.Id(changeInfo.owner._accountId))) {
+        // TODO(davido): Switch back to using changes API again,
+        // when it supports batch mode for adding reviewers
+        ReviewInput in = new ReviewInput();
+        in.reviewers = new ArrayList<>(reviewers.size());
+        for (Account.Id account : reviewers) {
+          AddReviewerInput addReviewerInput = new AddReviewerInput();
+          addReviewerInput.reviewer = account.toString();
+          in.reviewers.add(addReviewerInput);
+        }
+        gApi.changes().id(changeInfo.id).current().review(in);
       }
-      gApi.changes().id(change.getId().get()).current().review(in);
     } catch (RestApiException | OrmException e) {
       log.error("Couldn't add reviewers to the change", e);
       throw new ReviewerManagerException(e);
diff --git a/owners-common/src/test/java/com/vmware/gerrit/owners/common/Config.java b/owners-common/src/test/java/com/vmware/gerrit/owners/common/Config.java
index 81aa76f..36d2497 100644
--- a/owners-common/src/test/java/com/vmware/gerrit/owners/common/Config.java
+++ b/owners-common/src/test/java/com/vmware/gerrit/owners/common/Config.java
@@ -20,7 +20,6 @@
 
 import com.google.common.base.Charsets;
 import com.google.gerrit.reviewdb.client.Patch;
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.patch.PatchList;
 import com.google.gerrit.server.patch.PatchListEntry;
 import java.io.IOException;
@@ -34,7 +33,6 @@
 
 @Ignore
 public abstract class Config {
-  protected ReviewDb db;
   protected Repository repository;
   protected PatchList patchList;
   protected ConfigurationParser parser;