[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);
}