Upgrade to gerrit v2.10
Looks like we need to move away from @Listen and have our own guice module.
diff --git a/gerrit-owners-autoassign/BUCK b/gerrit-owners-autoassign/BUCK
index 2678ed9..516426f 100644
--- a/gerrit-owners-autoassign/BUCK
+++ b/gerrit-owners-autoassign/BUCK
@@ -11,6 +11,7 @@
'Implementation-Title: Gerrit OWNERS autoassign plugin',
'Implementation-URL: https://github.com/vadims/gerrit-owners',
'Gerrit-PluginName: owners-autoassign',
+ 'Gerrit-Module: com.vmware.gerrit.owners.common.AutoassignModule',
],
deps = [
'//plugins/gerrit-owners/gerrit-owners-common:common',
diff --git a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java
new file mode 100644
index 0000000..eab2403
--- /dev/null
+++ b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java
@@ -0,0 +1,13 @@
+package com.vmware.gerrit.owners.common;
+
+import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+
+public class AutoassignModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
+ .to(GitRefListener.class);
+ }
+}
diff --git a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
index d7ba7a3..1d2e307 100644
--- a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
+++ b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
@@ -4,11 +4,13 @@
package com.vmware.gerrit.owners.common;
import com.google.gerrit.common.errors.EmailException;
+import com.google.gerrit.extensions.api.changes.AddReviewerInput;
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.CurrentUser;
import com.google.gerrit.server.change.ChangeResource;
+import com.google.gerrit.server.change.ChangesCollection;
import com.google.gerrit.server.change.PostReviewers;
import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException;
@@ -29,25 +31,29 @@
private final ChangeControl.GenericFactory changeControlFactory;
+ private final ChangesCollection changesCollection;
+
@Inject
public ReviewerManager(Provider<CurrentUser> currentUserProvider,
Provider<PostReviewers> postReviewersProvider,
- ChangeControl.GenericFactory changeControlFactory) {
+ ChangeControl.GenericFactory changeControlFactory,
+ ChangesCollection changesCollection) {
this.currentUserProvider = currentUserProvider;
this.postReviewersProvider = postReviewersProvider;
this.changeControlFactory = changeControlFactory;
+ this.changesCollection = changesCollection;
}
public void addReviewers(Change change, Collection<Account.Id> reviewers) throws ReviewerManagerException {
try {
PostReviewers postReviewers = postReviewersProvider.get();
ChangeControl changeControl = changeControlFactory.controlFor(change, currentUserProvider.get());
- ChangeResource changeResource = new ChangeResource(changeControl);
+ ChangeResource changeResource = changesCollection.parse(changeControl);
// HACK(vspivak): Using PostReviewers is probably inefficient here, however it has all the hook/notification
// logic, so it's easier to call it then to mimic/copy the logic here.
for (Account.Id accountId : reviewers) {
- PostReviewers.Input input = new PostReviewers.Input();
+ AddReviewerInput input = new AddReviewerInput();
input.reviewer = accountId.toString();
postReviewers.apply(changeResource, input);
}
diff --git a/gerrit-owners/BUCK b/gerrit-owners/BUCK
index c425c65..009de04 100644
--- a/gerrit-owners/BUCK
+++ b/gerrit-owners/BUCK
@@ -33,6 +33,7 @@
'Implementation-Title: Gerrit OWNERS plugin',
'Implementation-URL: https://github.com/vadims/gerrit-owners',
'Gerrit-PluginName: owners',
+ 'Gerrit-Module: com.vmware.gerrit.owners.OwnersModule',
],
deps = [
':gerrit-owners-lib',
diff --git a/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java b/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
new file mode 100644
index 0000000..e2c90c4
--- /dev/null
+++ b/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
@@ -0,0 +1,14 @@
+package com.vmware.gerrit.owners;
+
+import com.google.gerrit.rules.PredicateProvider;
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+
+
+public class OwnersModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ DynamicSet.bind(binder(), PredicateProvider.class)
+ .to(OwnerPredicateProvider.class);
+ }
+}