Remove all references to ReviewDb on master

Gerrit master has no more references to ReviewDb and thus
all the imports and parameters needs to be removed from
the plugin also.

Change-Id: I8b07f897be13acdafb9c2abbee65d0ed7a661469
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
index faebf4b..620f515 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
@@ -22,10 +22,8 @@
 import com.google.gerrit.extensions.api.changes.SubmitInput;
 import com.google.gerrit.extensions.client.ChangeStatus;
 import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.Emails;
 import com.google.gerrit.server.change.ChangeResource;
@@ -39,10 +37,10 @@
 import com.google.gerrit.server.project.SubmitRuleOptions;
 import com.google.gerrit.server.query.change.ChangeData;
 import com.google.gerrit.server.restapi.change.GetRelated;
+import com.google.gerrit.server.restapi.change.PostReview;
 import com.google.gerrit.server.restapi.change.Submit;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 import java.io.IOException;
 import java.util.List;
 import java.util.Set;
@@ -57,8 +55,6 @@
 
   @Inject AutomergeConfig config;
 
-  @Inject Provider<ReviewDb> db;
-
   @Inject private IdentifiedUser.GenericFactory factory;
 
   @Inject GetRelated getRelated;
@@ -88,8 +84,8 @@
    * @throws PermissionBackendException
    */
   public boolean hasDependentReview(String project, int number)
-      throws RestApiException, IOException, NoSuchChangeException, NoSuchProjectException,
-          OrmException, PermissionBackendException {
+      throws IOException, NoSuchChangeException, NoSuchProjectException, OrmException,
+          PermissionBackendException {
     RevisionResource r = getRevisionResource(project, number);
     RelatedChangesInfo related = getRelated.apply(r);
     log.debug(String.format("Checking for related changes on review %d", number));
@@ -149,9 +145,7 @@
   public boolean isSubmittable(String project, int change) throws OrmException {
     ChangeData changeData =
         changeDataFactory.create(
-            db.get(),
-            new Project.NameKey(project),
-            new com.google.gerrit.reviewdb.client.Change.Id(change));
+            new Project.NameKey(project), new com.google.gerrit.reviewdb.client.Change.Id(change));
     // For draft reviews, the patchSet must be set to avoid an NPE.
     final List<SubmitRecord> cansubmit =
         submitRuleEvaluatorFactory.create(SubmitRuleOptions.defaults()).evaluate(changeData);
@@ -172,14 +166,13 @@
   }
 
   public RevisionResource getRevisionResource(String project, int changeNumber)
-      throws RestApiException, OrmException, IOException {
+      throws OrmException {
     com.google.gerrit.reviewdb.client.Change.Id changeId =
         new com.google.gerrit.reviewdb.client.Change.Id(changeNumber);
     ChangeNotes notes = changeNotesFactory.createChecked(changeId);
     try {
-      permissionBackend.user(getBotUser()).change(notes).database(db).check(READ);
-      ChangeData changeData =
-          changeDataFactory.create(db.get(), new Project.NameKey(project), changeId);
+      permissionBackend.user(getBotUser()).change(notes).check(READ);
+      ChangeData changeData = changeDataFactory.create(new Project.NameKey(project), changeId);
 
       RevisionResource r =
           new RevisionResource(
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
index b1e3c71..61ee2b5 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -22,7 +22,6 @@
 import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.extensions.restapi.RestApiException;
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ChangeAttribute;
 import com.google.gerrit.server.events.ChangeEvent;
@@ -58,8 +57,6 @@
 
   @Inject private AutomergeConfig config;
 
-  @Inject Provider<ReviewDb> db;
-
   @Inject GetRelated getRelated;
 
   @Inject MergeUtil.Factory mergeUtilFactory;
diff --git a/src/test/java/com/criteo/gerrit/plugins/automerge/AutomaticMergerTest.java b/src/test/java/com/criteo/gerrit/plugins/automerge/AutomaticMergerTest.java
index 971659e..5e866ba 100644
--- a/src/test/java/com/criteo/gerrit/plugins/automerge/AutomaticMergerTest.java
+++ b/src/test/java/com/criteo/gerrit/plugins/automerge/AutomaticMergerTest.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.acceptance.PushOneCommit;
 import com.google.gerrit.acceptance.TestAccount;
 import com.google.gerrit.acceptance.TestPlugin;
+import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
 import com.google.gerrit.extensions.api.changes.ChangeApi;
 import com.google.gerrit.extensions.api.changes.Changes;
 import com.google.gerrit.extensions.api.changes.ReviewInput;
@@ -30,8 +31,6 @@
 import com.google.gerrit.reviewdb.client.AccountGroup;
 import com.google.gerrit.server.account.externalids.ExternalIds;
 import com.google.inject.Inject;
-import java.util.Arrays;
-import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -45,6 +44,7 @@
   private TestAccount botUser;
   private TestAccount regularUser;
   @Inject ExternalIds extIds;
+  @Inject RequestScopeOperations requestScopeOperations;
 
   @Before
   public void setup() throws Exception {
@@ -60,28 +60,29 @@
   @Test
   @GerritConfig(name = "automerge.botEmail", value = "botuser@mycompany.com")
   public void changeReviewedShouldNotBeAutomaticallyMergedIfNotApproved() throws Exception {
-    int changeNum = createChangeNum(user);
+    String changeId = createChange(user);
 
-    assertThat(changesApi().id(changeNum).get().status).isEqualTo(ChangeStatus.NEW);
+    assertThat(changesApi().id(changeId).get().status).isEqualTo(ChangeStatus.NEW);
   }
 
   @Test
   @GerritConfig(name = "automerge.botEmail", value = "botuser@mycompany.com")
   public void changeReviewedShouldBeAutomaticallyMergedOnceApproved() throws Exception {
-    int changeNum = createChangeNum(user);
-    changesApi().id(changeNum).current().review(ReviewInput.approve());
+    String changeId = createChange(user);
+    changesApi().id(changeId).current().review(ReviewInput.approve());
 
-    assertThat(changesApi().id(changeNum).get().status).isEqualTo(ChangeStatus.MERGED);
+    assertThat(changesApi().id(changeId).get().status).isEqualTo(ChangeStatus.MERGED);
   }
 
   @Test
   @GerritConfig(name = "automerge.botEmail", value = "botuser@mycompany.com")
   public void changeShouldBeAutomaticallyMergedByBotUser() throws Exception {
-    int changeNum = createChangeNum(user);
-    ChangeApi changeApi = changesApi().id(changeNum);
+    requestScopeOperations.setApiUser(regularUser.id);
+    String changeId = createChange(user);
+    ChangeApi changeApi = changesApi().id(changeId);
     changeApi.current().review(ReviewInput.approve());
 
-    ChangeInfo changeInfo = changeApi.get();
+    ChangeInfo changeInfo = gApi.changes().id(changeId).get();
     assertThat(changeInfo.submitter).isNotNull();
     assertThat(changeInfo.submitter._accountId).isEqualTo(new Integer(botUser.id.get()));
     assertThat(changeInfo.submitter.email).isEqualTo(botUser.email);
@@ -92,19 +93,15 @@
   }
 
   private Changes changesApi() {
-    setApiUser(regularUser);
     return gApi.changes();
   }
 
-  private int createChangeNum(TestAccount user) throws Exception {
-    List<String> msgs =
-        Arrays.asList(createChangeAsUser("refs/for/master", user).getMessage().split("\n"));
-    String changeUrl = msgs.get(msgs.size() - 1).trim().split(" ")[0];
-    return Integer.parseInt(changeUrl.substring(changeUrl.lastIndexOf('/') + 1));
+  private String createChange(TestAccount user) throws Exception {
+    return createChangeAsUser("refs/for/master", user).getChangeId();
   }
 
   protected PushOneCommit.Result createChangeAsUser(String ref, TestAccount user) throws Exception {
-    PushOneCommit.Result result = pushFactory.create(db, user.getIdent(), testRepo).to(ref);
+    PushOneCommit.Result result = pushFactory.create(user.getIdent(), testRepo).to(ref);
     result.assertOkStatus();
     return result;
   }