Update from ChangeHooks to EventDispatcher

The event dispatching methods were split out of the ChangeHooks
interface into the EventDispatcher interface.  Since this plugin
uses these methods, it needs to switch to the new interface.

Change-Id: I3983b14a308b701372de1ec46adab41ebf0c2a2c
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/PushResultProcessing.java b/src/main/java/com/googlesource/gerrit/plugins/replication/PushResultProcessing.java
index 3ab48cb..762f069 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/PushResultProcessing.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/PushResultProcessing.java
@@ -14,7 +14,7 @@
 
 package com.googlesource.gerrit.plugins.replication;
 
-import com.google.gerrit.common.ChangeHooks;
+import com.google.gerrit.common.EventDispatcher;
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.PatchSet;
@@ -156,11 +156,12 @@
   public static class GitUpdateProcessing extends PushResultProcessing {
     static final Logger log = LoggerFactory.getLogger(GitUpdateProcessing.class);
 
-    private final ChangeHooks hooks;
+    private final EventDispatcher dispatcher;
     private final SchemaFactory<ReviewDb> schema;
 
-    public GitUpdateProcessing(ChangeHooks hooks, SchemaFactory<ReviewDb> schema) {
-      this.hooks = hooks;
+    public GitUpdateProcessing(EventDispatcher dispatcher,
+        SchemaFactory<ReviewDb> schema) {
+      this.dispatcher = dispatcher;
       this.schema = schema;
     }
 
@@ -190,7 +191,7 @@
           try {
             Change change = retrieveChange(ref, db);
             if (change != null) {
-              hooks.postEvent(change, event, db);
+              dispatcher.postEvent(change, event, db);
             }
           } finally {
             db.close();
@@ -200,7 +201,7 @@
         }
       } else {
         Branch.NameKey branch = new Branch.NameKey(Project.NameKey.parse(project), ref);
-        hooks.postEvent(branch, event);
+        dispatcher.postEvent(branch, event);
       }
     }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
index 003b8a9..4c36eb0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
@@ -16,7 +16,7 @@
 
 import com.google.common.base.Strings;
 import com.google.common.collect.Sets;
-import com.google.gerrit.common.ChangeHooks;
+import com.google.gerrit.common.EventDispatcher;
 import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
 import com.google.gerrit.extensions.events.HeadUpdatedListener;
 import com.google.gerrit.extensions.events.LifecycleListener;
@@ -78,16 +78,16 @@
 
   private final WorkQueue workQueue;
   private final SchemaFactory<ReviewDb> database;
-  private final ChangeHooks changeHooks;
+  private final EventDispatcher dispatcher;
   private final ReplicationConfig config;
   private volatile boolean running;
 
   @Inject
   ReplicationQueue(final WorkQueue wq, final ReplicationConfig rc,
-      final SchemaFactory<ReviewDb> db, final ChangeHooks ch) {
+      final SchemaFactory<ReviewDb> db, final EventDispatcher dis) {
     workQueue = wq;
     database = db;
-    changeHooks = ch;
+    dispatcher = dis;
     config = rc;
   }
 
@@ -126,7 +126,7 @@
 
   @Override
   public void onGitReferenceUpdated(GitReferenceUpdatedListener.Event event) {
-    ReplicationState state = new ReplicationState(new GitUpdateProcessing(changeHooks, database));
+    ReplicationState state = new ReplicationState(new GitUpdateProcessing(dispatcher, database));
     if (!running) {
       stateLog.warn("Replication plugin did not finish startup before event", state);
       return;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/GitUpdateProcessingTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/GitUpdateProcessingTest.java
index 52362fd..a400dca 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/GitUpdateProcessingTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/GitUpdateProcessingTest.java
@@ -24,7 +24,7 @@
 import static org.easymock.EasyMock.reset;
 import static org.easymock.EasyMock.verify;
 
-import com.google.gerrit.common.ChangeHooks;
+import com.google.gerrit.common.EventDispatcher;
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.server.ChangeAccess;
@@ -49,15 +49,15 @@
     KeyUtil.setEncoderImpl(new StandardKeyEncoder());
   }
 
-  private ChangeHooks changeHooksMock;
+  private EventDispatcher dispatcherMock;
   private ChangeAccess changeAccessMock;
   private GitUpdateProcessing gitUpdateProcessing;
 
   @Override
   protected void setUp() throws Exception {
     super.setUp();
-    changeHooksMock = createMock(ChangeHooks.class);
-    replay(changeHooksMock);
+    dispatcherMock = createMock(EventDispatcher.class);
+    replay(dispatcherMock);
     changeAccessMock = createNiceMock(ChangeAccess.class);
     replay(changeAccessMock);
     ReviewDb reviewDbMock = createNiceMock(ReviewDb.class);
@@ -66,22 +66,22 @@
     SchemaFactory<ReviewDb> schemaMock = createMock(SchemaFactory.class);
     expect(schemaMock.open()).andReturn(reviewDbMock).anyTimes();
     replay(schemaMock);
-    gitUpdateProcessing = new GitUpdateProcessing(changeHooksMock, schemaMock);
+    gitUpdateProcessing = new GitUpdateProcessing(dispatcherMock, schemaMock);
   }
 
   public void testHeadRefReplicated() throws URISyntaxException {
-    reset(changeHooksMock);
+    reset(dispatcherMock);
     RefReplicatedEvent expectedEvent =
         new RefReplicatedEvent("someProject", "refs/heads/master", "someHost",
             RefPushResult.SUCCEEDED);
-    changeHooksMock.postEvent(anyObject(Branch.NameKey.class),
+    dispatcherMock.postEvent(anyObject(Branch.NameKey.class),
         RefReplicatedEventEquals.eqEvent(expectedEvent));
     expectLastCall().once();
-    replay(changeHooksMock);
+    replay(dispatcherMock);
 
     gitUpdateProcessing.onRefReplicatedToOneNode("someProject", "refs/heads/master",
         new URIish("git://someHost/someProject.git"), RefPushResult.SUCCEEDED);
-    verify(changeHooksMock);
+    verify(dispatcherMock);
   }
 
   public void testChangeRefReplicated() throws URISyntaxException, OrmException {
@@ -90,32 +90,32 @@
     expect(changeAccessMock.get(anyObject(Change.Id.class))).andReturn(expectedChange);
     replay(changeAccessMock);
 
-    reset(changeHooksMock);
+    reset(dispatcherMock);
     RefReplicatedEvent expectedEvent =
         new RefReplicatedEvent("someProject", "refs/changes/01/1/1", "someHost",
             RefPushResult.FAILED);
-    changeHooksMock.postEvent(eq(expectedChange),
+    dispatcherMock.postEvent(eq(expectedChange),
         RefReplicatedEventEquals.eqEvent(expectedEvent),
         anyObject(ReviewDb.class));
     expectLastCall().once();
-    replay(changeHooksMock);
+    replay(dispatcherMock);
 
     gitUpdateProcessing.onRefReplicatedToOneNode("someProject",
         "refs/changes/01/1/1", new URIish("git://someHost/someProject.git"),
         RefPushResult.FAILED);
-    verify(changeHooksMock);
+    verify(dispatcherMock);
   }
 
   public void testOnAllNodesReplicated() {
-    reset(changeHooksMock);
+    reset(dispatcherMock);
     RefReplicationDoneEvent expectedDoneEvent =
         new RefReplicationDoneEvent("someProject", "refs/heads/master", 5);
-    changeHooksMock.postEvent(anyObject(Branch.NameKey.class),
+    dispatcherMock.postEvent(anyObject(Branch.NameKey.class),
         RefReplicationDoneEventEquals.eqEvent(expectedDoneEvent));
     expectLastCall().once();
-    replay(changeHooksMock);
+    replay(dispatcherMock);
 
     gitUpdateProcessing.onRefReplicatedToAllNodes("someProject", "refs/heads/master", 5);
-    verify(changeHooksMock);
+    verify(dispatcherMock);
   }
 }