Adapt to Gerrit 2.11
Change-Id: Ica1ca7809e3d3d7df14d6b821b972ea273e12917
diff --git a/.travis.yml b/.travis.yml
index 15abc33..4baa578 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,7 +26,7 @@
- ant
- export PATH=$PATH:$TRAVIS_BUILD_DIR/../../build/buck/bin
- cd ..
- - git clone -b stable-2.10 https://gerrit.googlesource.com/gerrit
+ - git clone -b stable-2.11 https://gerrit.googlesource.com/gerrit
- cd gerrit
- ln -s $TRAVIS_BUILD_DIR plugins
- travis_retry tools/download_all.py > download.log
diff --git a/README.md b/README.md
index 7831fb7..cace79e 100644
--- a/README.md
+++ b/README.md
@@ -11,4 +11,4 @@
in different gerrit repositories. They will be merged at the same time,
when all approvals for all reviews are present, and all reviews are mergeable.
-Requires Gerrit 2.10 or later.
+Requires Gerrit 2.11 or later.
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 3f3196e..b910113 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java
@@ -19,6 +19,7 @@
import com.google.gerrit.server.git.MergeUtil;
import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException;
+import com.google.gerrit.server.project.SubmitRuleEvaluator;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
@@ -107,7 +108,7 @@
*/
public boolean isSubmittable(final int change) throws OrmException {
final ChangeData changeData = changeDataFactory.create(db.get(), new Change.Id(change));
- final List<SubmitRecord> cansubmit = changeData.changeControl().canSubmit(db.get(), changeData.currentPatchSet());
+ final List<SubmitRecord> cansubmit = new SubmitRuleEvaluator(changeData).evaluate();
log.debug(String.format("Checking if change %d is submitable.", change));
for (final SubmitRecord submit : cansubmit) {
if (submit.status != SubmitRecord.Status.OK) {
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 4b293a6..b27e7cf 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -15,11 +15,11 @@
package com.criteo.gerrit.plugins.automerge;
import com.google.common.collect.Lists;
-import com.google.gerrit.common.ChangeListener;
+import com.google.gerrit.common.EventListener;
import com.google.gerrit.extensions.api.GerritApi;
import com.google.gerrit.extensions.api.changes.ChangeApi;
import com.google.gerrit.extensions.common.ChangeInfo;
-import com.google.gerrit.extensions.common.ListChangesOption;
+import com.google.gerrit.extensions.client.ListChangesOption;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.reviewdb.server.ReviewDb;
@@ -28,8 +28,8 @@
import com.google.gerrit.server.change.Submit;
import com.google.gerrit.server.data.ApprovalAttribute;
import com.google.gerrit.server.data.ChangeAttribute;
-import com.google.gerrit.server.events.ChangeEvent;
import com.google.gerrit.server.events.CommentAddedEvent;
+import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.PatchSetCreatedEvent;
import com.google.gerrit.server.events.TopicChangedEvent;
import com.google.gerrit.server.git.MergeUtil;
@@ -50,7 +50,7 @@
* Starts at the same time as the gerrit server, and sets up our change hook
* listener.
*/
-public class AutomaticMerger implements ChangeListener, LifecycleListener {
+public class AutomaticMerger implements EventListener, LifecycleListener {
private final static Logger log = LoggerFactory.getLogger(AutomaticMerger.class);
@@ -85,7 +85,7 @@
Submit submitter;
@Override
- synchronized public void onChangeEvent(final ChangeEvent event) {
+ synchronized public void onEvent(final Event event) {
if (event instanceof TopicChangedEvent) {
onTopicChanged((TopicChangedEvent)event);
}
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeModule.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeModule.java
index b5f180e..744bb2d 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeModule.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeModule.java
@@ -14,7 +14,7 @@
package com.criteo.gerrit.plugins.automerge;
-import com.google.gerrit.common.ChangeListener;
+import com.google.gerrit.common.EventListener;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.inject.AbstractModule;
@@ -27,7 +27,7 @@
@Override
protected void configure() {
- DynamicSet.bind(binder(), ChangeListener.class).to(AutomaticMerger.class);
+ DynamicSet.bind(binder(), EventListener.class).to(AutomaticMerger.class);
bind(AutomergeConfig.class).asEagerSingleton();
bind(AtomicityHelper.class);
bind(ReviewUpdater.class);