Build gerrit-owners-autoassign plugin against gerrit 2.8
diff --git a/BUCK b/BUCK
index 0fab034..df25896 100644
--- a/BUCK
+++ b/BUCK
@@ -5,7 +5,6 @@
 maven_jar(
   name = 'jackson-core',
   id = 'com.fasterxml.jackson.core:jackson-core:%s' % JACKSON_REV,
-  #bin_sha1 = '82ad1c5f92f6dcc6291f5c46ebacb975eaa844de',
   license = 'Apache2.0',
 )
 
@@ -33,33 +32,46 @@
   license = 'Apache2.0',
 )
 
+EXTERNAL_DEPS = [
+  ':gitective-core',
+  ':jackson-core',
+  ':jackson-databind',
+  ':jackson-annotations',
+  ':jackson-dataformat-yaml',
+]
+
 java_library(
-  name = 'base-prolog-rules',
+  name = 'gerrit-owners-common-lib',
   srcs = glob([
     'gerrit-owners-common/src/main/java/**/*.java',
+  ]),
+  deps = [
+    '//:plugin-lib',
+  ] + EXTERNAL_DEPS,
+)
+
+java_library(
+  name = 'gerrit-owners-lib',
+  srcs = glob([
     'gerrit-owners/src/main/java/**/*.java',
   ]),
   deps = [
+    ':gerrit-owners-common-lib',
+    '//:plugin-lib',
     '//lib/prolog:prolog-cafe',
     '//gerrit-server/src/main/prolog:common',
-    ':gitective-core',
-    ':jackson-core',
-    ':jackson-databind',
-    ':jackson-annotations',
-    ':jackson-dataformat-yaml',
-    '//:plugin-lib',
-  ],
+  ] + EXTERNAL_DEPS,
 )
 
 prolog_cafe_library(
-  name = 'owners-prolog-rules',
+  name = 'gerrit-owners-prolog-rules',
   srcs = glob(['gerrit-owners/src/main/prolog/*.pl']),
   deps = [
     '//gerrit-server/src/main/prolog:common',
-    ':base-prolog-rules',
+    ':gerrit-owners-lib',
   ],
 )
-  
+
 gerrit_plugin(
   name = 'owners',
   srcs = [],
@@ -69,6 +81,21 @@
     'Gerrit-PluginName: owners',
   ],
   deps = [
-    ':owners-prolog-rules',
+    ':gerrit-owners-prolog-rules',
+  ] + EXTERNAL_DEPS,
+)
+
+gerrit_plugin(
+  name = 'owners-autoassign',
+  srcs = glob([
+    'gerrit-owners-autoassign/src/main/java/**/*.java',
+  ]),
+  manifest_entries = [
+    'Implementation-Title: Gerrit OWNERS autoassign plugin',
+    'Implementation-URL: https://github.com/vadims/gerrit-owners',
+    'Gerrit-PluginName: owners-autoassign',
   ],
+  deps = [
+    ':gerrit-owners-common-lib',
+  ] + EXTERNAL_DEPS,
 )
diff --git a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
index 39f07eb..d94b788 100644
--- a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
+++ b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
@@ -63,7 +63,7 @@
     try {
       repository = repositoryManager.openRepository(Project.NameKey.parse(projectName));
       try {
-        processUpdates(repository, event.getUpdates());
+        processEvent(repository, event);
       } finally {
         repository.close();
       }
@@ -72,30 +72,28 @@
     }
   }
 
-  private void processUpdates(Repository repository, List<Update> updates) {
-    for (Update update : updates) {
-      if (update.getRefName().startsWith(CHANGES_REF)) {
-        Change.Id id = Change.Id.fromRef(update.getRefName());
-        try {
-          Change change = db.get().changes().get(id);
-          PatchList patchList = getPatchList(update, change);
-          if (patchList != null) {
-            PathOwners owners = new PathOwners(accountResolver, repository, patchList);
-            reviewerManager.addReviewers(change, owners.get().values());
-          }
-        } catch (OrmException e) {
-          logger.warn("Could not open change: {}", id, e);
-        } catch (ReviewerManagerException e) {
-          logger.warn("Could not add reviewers for change: {}", id, e);
+  private void processEvent(Repository repository, Event event) {
+    if (event.getRefName().startsWith(CHANGES_REF)) {
+      Change.Id id = Change.Id.fromRef(event.getRefName());
+      try {
+        Change change = db.get().changes().get(id);
+        PatchList patchList = getPatchList(event, change);
+        if (patchList != null) {
+          PathOwners owners = new PathOwners(accountResolver, repository, patchList);
+          reviewerManager.addReviewers(change, owners.get().values());
         }
+      } catch (OrmException e) {
+        logger.warn("Could not open change: {}", id, e);
+      } catch (ReviewerManagerException e) {
+        logger.warn("Could not add reviewers for change: {}", id, e);
       }
     }
   }
 
-  private PatchList getPatchList(Update update, Change change) {
+  private PatchList getPatchList(Event event, Change change) {
     ObjectId newId = null;
-    if (update.getNewObjectId() != null) {
-      newId = ObjectId.fromString(update.getNewObjectId());
+    if (event.getNewObjectId() != null) {
+      newId = ObjectId.fromString(event.getNewObjectId());
     }
 
     PatchListKey plKey = new PatchListKey(change.getProject(), null, newId, IGNORE_NONE);
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 571d0b4..d7ba7a3 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
@@ -17,6 +17,7 @@
 import javax.inject.Inject;
 import javax.inject.Provider;
 import javax.inject.Singleton;
+import java.io.IOException;
 import java.util.Collection;
 
 @Singleton
@@ -58,6 +59,8 @@
       throw new ReviewerManagerException(e);
     } catch (OrmException e) {
       throw new ReviewerManagerException(e);
+    } catch (IOException e) {
+      throw new ReviewerManagerException(e);
     }
   }
 }