[Refactoring] factorize getRevisionResource
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 f300fb1..3f3196e 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
@@ -79,9 +79,7 @@
    * @throws OrmException
    */
   public boolean hasDependentReview(final int number) throws IOException, NoSuchChangeException, OrmException {
-    final ChangeControl ctl = changeFactory.controlFor(new Change.Id(number), getBotUser());
-    final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(number));
-    final RevisionResource r = new RevisionResource(collection.parse(ctl), changeData.currentPatchSet());
+    final RevisionResource r = getRevisionResource(number);
     final RelatedInfo related = getRelated.apply(r);
     log.debug(String.format("Checking for related changes on review %d", number));
     return related.changes.size() > 0;
@@ -133,14 +131,18 @@
   public void mergeReview(ChangeInfo info) throws RestApiException, NoSuchChangeException, OrmException, IOException {
     final SubmitInput input = new SubmitInput();
     input.waitForMerge = true;
-    final ChangeControl ctl = changeFactory.controlFor(new Change.Id(info._number), getBotUser());
-    final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(info._number));
-    final RevisionResource r = new RevisionResource(collection.parse(ctl), changeData.currentPatchSet());
-
+    final RevisionResource r = getRevisionResource(info._number);
     submitter.apply(r, input);
   }
 
-  public IdentifiedUser getBotUser() {
+  public RevisionResource getRevisionResource(int changeNumber) throws NoSuchChangeException, OrmException {
+    final ChangeControl ctl = changeFactory.controlFor(new Change.Id(changeNumber), getBotUser());
+    final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(changeNumber));
+    final RevisionResource r = new RevisionResource(collection.parse(ctl), changeData.currentPatchSet());
+    return r;
+  }
+
+  private IdentifiedUser getBotUser() {
     final Set<Account.Id> ids = byEmailCache.get(config.getBotEmail());
     if (ids.isEmpty()) {
       throw new RuntimeException("No user found with email: " + config.getBotEmail());
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java b/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
index 26426c6..ea44f4b 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/ReviewUpdater.java
@@ -4,12 +4,9 @@
 import com.google.common.io.Files;
 import com.google.gerrit.extensions.api.changes.ReviewInput;
 import com.google.gerrit.extensions.restapi.RestApiException;
-import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.change.ChangesCollection;
 import com.google.gerrit.server.change.PostReview;
 import com.google.gerrit.server.change.RevisionResource;
-import com.google.gerrit.server.project.ChangeControl;
 import com.google.gerrit.server.project.NoSuchChangeException;
 import com.google.gerrit.server.query.change.ChangeData;
 import com.google.gwtorm.server.OrmException;
@@ -29,12 +26,6 @@
   ChangeData.Factory changeDataFactory;
 
   @Inject
-  private ChangeControl.GenericFactory changeFactory;
-
-  @Inject
-  private ChangesCollection collection;
-
-  @Inject
   AutomergeConfig config;
 
   @Inject
@@ -49,9 +40,7 @@
   public void commentOnReview(final int number, final String commentTemplate) throws RestApiException, OrmException, IOException, NoSuchChangeException {
     final ReviewInput message = new ReviewInput();
     message.message = getCommentFromFile(commentTemplate);
-    final ChangeControl ctl = changeFactory.controlFor(new Change.Id(number), atomicityHelper.getBotUser());
-    final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(number));
-    final RevisionResource r = new RevisionResource(collection.parse(ctl), changeData.currentPatchSet());
+    final RevisionResource r = atomicityHelper.getRevisionResource(number);
     reviewer.get().apply(r, message);
   }
 
@@ -71,9 +60,7 @@
     final ReviewInput message = new ReviewInput();
     message.message = getCommentFromFile(commentTemplate);
     message.label("Code-Review", -2);
-    final ChangeControl ctl = changeFactory.controlFor(new Change.Id(number), atomicityHelper.getBotUser());
-    final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(number));
-    final RevisionResource r = new RevisionResource(collection.parse(ctl), changeData.currentPatchSet());
+    final RevisionResource r = atomicityHelper.getRevisionResource(number);
     reviewer.get().apply(r, message);
   }