Merge pull request #5 from ugodiggi/master
Upgrade to gerrit v2.10
diff --git a/common.defs b/common.defs
index 17f4c86..a717515 100644
--- a/common.defs
+++ b/common.defs
@@ -1,44 +1,14 @@
include_defs('//lib/maven.defs')
include_defs('//lib/prolog/prolog.defs')
-JACKSON_REV = '2.1.1'
-maven_jar(
- name = 'jackson-core',
- id = 'com.fasterxml.jackson.core:jackson-core:%s' % JACKSON_REV,
- license = 'Apache2.0',
-)
-
-maven_jar(
- name = 'jackson-databind',
- id = 'com.fasterxml.jackson.core:jackson-databind:%s' % JACKSON_REV,
- license = 'Apache2.0',
-)
-
-maven_jar(
- name = 'jackson-annotations',
- id = 'com.fasterxml.jackson.core:jackson-annotations:%s' % JACKSON_REV,
- license = 'Apache2.0',
-)
-
-maven_jar(
- name = 'jackson-dataformat-yaml',
- id = 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:%s' % JACKSON_REV,
- license = 'Apache2.0',
-)
-
-maven_jar(
- name = 'gitective-core',
- id = 'org.gitective:gitective-core:0.9.9',
- license = 'Apache2.0',
-)
-
EXTERNAL_DEPS = [
- ':gitective-core',
- ':jackson-core',
- ':jackson-databind',
- ':jackson-annotations',
- ':jackson-dataformat-yaml',
-]
+ '//plugins/gerrit-owners/gerrit-owners-common' + i for i in [
+ ':gitective-core',
+ ':jackson-core',
+ ':jackson-databind',
+ ':jackson-annotations',
+ ':jackson-dataformat-yaml',
+ ]]
# These are dependencies that must be made available to the plugins' libraries at compilation
# time, but should not be included in the plugins' jar files since they will be provided
@@ -46,6 +16,15 @@
# For this reason all the intermediate java libraries that we build are java_library2 targets
# rather than java_library.
COMPILE_DEPS = [
- '//:plugin-lib',
+ '//lib:guava',
+ '//lib/guice:guice',
+ '//lib:gwtorm',
+ '//lib/jgit:jgit',
+ '//lib/log:api',
+ '//gerrit-plugin-api:plugin-api',
+ '//gerrit-reviewdb:client',
+ '//gerrit-reviewdb:server',
+ '//gerrit-server:server',
+ '//gerrit-extension-api:lib',
'//lib/prolog:prolog-cafe',
]
diff --git a/gerrit-owners-autoassign/BUCK b/gerrit-owners-autoassign/BUCK
index 18d0393..516426f 100644
--- a/gerrit-owners-autoassign/BUCK
+++ b/gerrit-owners-autoassign/BUCK
@@ -1,4 +1,6 @@
include_defs('//plugins/gerrit-owners/common.defs')
+include_defs('//lib/maven.defs')
+include_defs('//lib/prolog/prolog.defs')
gerrit_plugin(
name = 'owners-autoassign',
@@ -9,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-common/BUCK b/gerrit-owners-common/BUCK
index ea5fb6a..61f5e60 100644
--- a/gerrit-owners-common/BUCK
+++ b/gerrit-owners-common/BUCK
@@ -1,14 +1,44 @@
include_defs('//plugins/gerrit-owners/common.defs')
+include_defs('//lib/maven.defs')
+include_defs('//lib/prolog/prolog.defs')
+
+JACKSON_REV = '2.1.1'
+maven_jar(
+ name = 'jackson-core',
+ id = 'com.fasterxml.jackson.core:jackson-core:%s' % JACKSON_REV,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jackson-databind',
+ id = 'com.fasterxml.jackson.core:jackson-databind:%s' % JACKSON_REV,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jackson-annotations',
+ id = 'com.fasterxml.jackson.core:jackson-annotations:%s' % JACKSON_REV,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jackson-dataformat-yaml',
+ id = 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:%s' % JACKSON_REV,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'gitective-core',
+ id = 'org.gitective:gitective-core:0.9.9',
+ license = 'Apache2.0',
+)
# see common.defs on why this is a java_library2 rather than java_library
-java_library2(
+java_library(
name = 'common',
srcs = glob([
'src/main/java/**/*.java',
]),
- deps = [],
- # Notice that we put EXTERNAL_DEPS as compile_deps to prevent double inclusion in the owners
- # plugin.
- compile_deps = COMPILE_DEPS + EXTERNAL_DEPS,
+ deps = COMPILE_DEPS + EXTERNAL_DEPS,
visibility = ['PUBLIC'],
)
diff --git a/gerrit-owners/BUCK b/gerrit-owners/BUCK
index 0ef0040..009de04 100644
--- a/gerrit-owners/BUCK
+++ b/gerrit-owners/BUCK
@@ -1,21 +1,20 @@
include_defs('//plugins/gerrit-owners/common.defs')
+include_defs('//lib/maven.defs')
+include_defs('//lib/prolog/prolog.defs')
# buck is unhappy to build a gerrit_plugin with no source files.
# On the other side, gerrit-owners-prolog-rules needs to be built after all the java files have been
# compiled. For this reason we have a stub class that has no content and just makes buck happy.
COMPILE_STUB = ['src/main/java/com/vmware/gerrit/owners/CompileStub.java']
-java_library2(
+java_library(
name = 'gerrit-owners-lib',
srcs = glob([
'src/main/java/**/*.java',
], excludes=COMPILE_STUB),
deps = [
'//plugins/gerrit-owners/gerrit-owners-common:common',
- ],
- # Notice that we put EXTERNAL_DEPS as compile_deps to prevent double inclusion in the owners
- # plugin.
- compile_deps = COMPILE_DEPS + EXTERNAL_DEPS,
+ ] + COMPILE_DEPS + EXTERNAL_DEPS,
)
prolog_cafe_library(
@@ -34,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);
+ }
+}