Merge branch 'stable-2.13' into stable-2.14

* stable-2.13:
  Update reviewers on DraftPublishedEvent

Change-Id: I57c8fe5a498ebfa1c82e04aea14ccde7da65efe8
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
index 1716dbd..f0419ab 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
@@ -22,6 +22,7 @@
 import com.google.common.collect.Sets;
 import com.google.gerrit.common.errors.NoSuchGroupException;
 import com.google.gerrit.extensions.common.ChangeInfo;
+import com.google.gerrit.extensions.events.DraftPublishedListener;
 import com.google.gerrit.extensions.events.RevisionCreatedListener;
 import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
 import com.google.gerrit.reviewdb.client.Account;
@@ -58,7 +59,7 @@
 import org.slf4j.LoggerFactory;
 
 @Singleton
-class ChangeEventListener implements RevisionCreatedListener {
+class ChangeEventListener implements RevisionCreatedListener, DraftPublishedListener {
   private static final Logger log = LoggerFactory.getLogger(ChangeEventListener.class);
 
   private final AccountResolver accountResolver;
@@ -109,9 +110,20 @@
   }
 
   @Override
-  public void onRevisionCreated(Event event) {
+  public void onRevisionCreated(
+      com.google.gerrit.extensions.events.RevisionCreatedListener.Event event) {
     ChangeInfo c = event.getChange();
-    Project.NameKey projectName = new Project.NameKey(c.project);
+    onEvent(new Project.NameKey(c.project), c._number, event.getWho().email);
+  }
+
+  @Override
+  public void onDraftPublished(
+      com.google.gerrit.extensions.events.DraftPublishedListener.Event event) {
+    ChangeInfo c = event.getChange();
+    onEvent(new Project.NameKey(c.project), c._number, event.getWho().email);
+  }
+
+  private void onEvent(Project.NameKey projectName, int changeNumber, String email) {
     // TODO(davido): we have to cache per project configuration
     ReviewersConfig config = configFactory.create(projectName);
     List<ReviewerFilterSection> sections = config.getReviewerFilterSections();
@@ -124,7 +136,7 @@
         RevWalk rw = new RevWalk(git);
         ReviewDb reviewDb = schemaFactory.open()) {
       ChangeData changeData =
-          changeDataFactory.create(reviewDb, projectName, new Change.Id(c._number));
+          changeDataFactory.create(reviewDb, projectName, new Change.Id(changeNumber));
       Set<String> reviewers = findReviewers(sections, changeData);
       if (reviewers.isEmpty()) {
         return;
@@ -132,8 +144,7 @@
 
       final Change change = changeData.change();
       final Runnable task =
-          reviewersFactory.create(
-              change, toAccounts(reviewDb, reviewers, projectName, event.getWho().email));
+          reviewersFactory.create(change, toAccounts(reviewDb, reviewers, projectName, email));
 
       workQueue
           .getDefaultQueue()