You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2018/03/31 00:38:33 UTC

helix git commit: Fix MessageHandlerFactory incompatible API

Repository: helix
Updated Branches:
  refs/heads/master 8bdfc912f -> 6b6ba3c26


Fix MessageHandlerFactory incompatible API


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/6b6ba3c2
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/6b6ba3c2
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/6b6ba3c2

Branch: refs/heads/master
Commit: 6b6ba3c26ed413f3b35fd3cf10d7713d5d604ca7
Parents: 8bdfc91
Author: Junkai Xue <jx...@linkedin.com>
Authored: Mon Mar 26 11:23:42 2018 -0700
Committer: Junkai Xue <jx...@linkedin.com>
Committed: Fri Mar 30 17:37:52 2018 -0700

----------------------------------------------------------------------
 .../org/apache/helix/examples/BootstrapProcess.java |  3 ++-
 .../helix/manager/zk/ControllerManagerHelper.java   |  7 ++++---
 .../zk/DefaultControllerMessageHandlerFactory.java  |  3 ++-
 ...efaultParticipantErrorMessageHandlerFactory.java |  3 ++-
 .../zk/DefaultSchedulerMessageHandlerFactory.java   |  3 ++-
 .../messaging/handling/AsyncCallbackService.java    |  2 +-
 .../helix/messaging/handling/HelixTaskExecutor.java | 16 +++++++++++-----
 .../messaging/handling/MessageHandlerFactory.java   |  6 +-----
 .../handling/MultiTypeMessageHandlerFactory.java    | 10 ++++++++++
 .../helix/participant/StateMachineEngine.java       |  3 ++-
 .../helix/integration/TestZkSessionExpiry.java      |  3 ++-
 .../integration/messaging/TestMessagingService.java |  3 ++-
 .../integration/messaging/TestSchedulerMessage.java |  5 +++--
 .../messaging/TestDefaultMessagingService.java      |  5 +++--
 .../handling/TestConfigThreadpoolSize.java          |  4 ++--
 .../messaging/handling/TestHelixTaskExecutor.java   |  6 +++---
 16 files changed, 52 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/examples/BootstrapProcess.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/examples/BootstrapProcess.java b/helix-core/src/main/java/org/apache/helix/examples/BootstrapProcess.java
index 04a6c35..e89fdb7 100644
--- a/helix-core/src/main/java/org/apache/helix/examples/BootstrapProcess.java
+++ b/helix-core/src/main/java/org/apache/helix/examples/BootstrapProcess.java
@@ -40,6 +40,7 @@ import org.apache.helix.messaging.AsyncCallback;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.Message;
 import org.apache.helix.model.Message.MessageType;
 import org.apache.helix.participant.StateMachineEngine;
@@ -116,7 +117,7 @@ public class BootstrapProcess {
     manager.connect();
   }
 
-  public static class CustomMessageHandlerFactory implements MessageHandlerFactory {
+  public static class CustomMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
 
     @Override
     public MessageHandler createHandler(Message message, NotificationContext context) {

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManagerHelper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManagerHelper.java b/helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManagerHelper.java
index 554b09a..1df53ec 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManagerHelper.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManagerHelper.java
@@ -28,6 +28,7 @@ import org.apache.helix.PropertyKey;
 import org.apache.helix.controller.GenericHelixController;
 import org.apache.helix.messaging.DefaultMessagingService;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,21 +54,21 @@ public class ControllerManagerHelper {
        * setup controller message listener and register message handlers
        */
       _manager.addControllerMessageListener(_messagingService.getExecutor());
-      MessageHandlerFactory defaultControllerMsgHandlerFactory =
+      MultiTypeMessageHandlerFactory defaultControllerMsgHandlerFactory =
           new DefaultControllerMessageHandlerFactory();
       for (String type : defaultControllerMsgHandlerFactory.getMessageTypes()) {
         _messagingService.getExecutor()
             .registerMessageHandlerFactory(type, defaultControllerMsgHandlerFactory);
       }
 
-      MessageHandlerFactory defaultSchedulerMsgHandlerFactory =
+      MultiTypeMessageHandlerFactory defaultSchedulerMsgHandlerFactory =
           new DefaultSchedulerMessageHandlerFactory(_manager);
       for (String type : defaultSchedulerMsgHandlerFactory.getMessageTypes()) {
         _messagingService.getExecutor()
             .registerMessageHandlerFactory(type, defaultSchedulerMsgHandlerFactory);
       }
 
-      MessageHandlerFactory defaultParticipantErrorMessageHandlerFactory =
+      MultiTypeMessageHandlerFactory defaultParticipantErrorMessageHandlerFactory =
           new DefaultParticipantErrorMessageHandlerFactory(_manager);
 
       for (String type : defaultParticipantErrorMessageHandlerFactory.getMessageTypes()) {

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java
index 2e7f844..bb1101f 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java
@@ -26,6 +26,7 @@ import org.apache.helix.NotificationContext;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.Message;
 import org.apache.helix.model.Message.MessageType;
 import org.slf4j.Logger;
@@ -33,7 +34,7 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
-public class DefaultControllerMessageHandlerFactory implements MessageHandlerFactory {
+public class DefaultControllerMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
   private static Logger _logger = LoggerFactory.getLogger(DefaultControllerMessageHandlerFactory.class);
 
   @Override

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java
index 3875600..255685d 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java
@@ -28,6 +28,7 @@ import org.apache.helix.NotificationContext;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.Message;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,7 +43,7 @@ import com.google.common.collect.ImmutableList;
  * and then disable the corresponding partition or the instance. More configs per resource will
  * be added to customize the controller behavior.
  */
-public class DefaultParticipantErrorMessageHandlerFactory implements MessageHandlerFactory {
+public class DefaultParticipantErrorMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
   public enum ActionOnError {
     DISABLE_PARTITION,
     DISABLE_RESOURCE,

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java
index 443df9f..0d3d86e 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java
@@ -40,6 +40,7 @@ import org.apache.helix.messaging.AsyncCallback;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.Message;
 import org.apache.helix.model.StatusUpdate;
@@ -55,7 +56,7 @@ import com.google.common.collect.ImmutableList;
  * The current implementation supports throttling on STATE-TRANSITION type of message, transition SCHEDULED-COMPLETED.
  *
  */
-public class DefaultSchedulerMessageHandlerFactory implements MessageHandlerFactory {
+public class DefaultSchedulerMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
   public static final String WAIT_ALL = "WAIT_ALL";
   public static final String SCHEDULER_MSG_ID = "SchedulerMessageId";
   public static final String SCHEDULER_TASK_QUEUE = "SchedulerTaskQueue";

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java
index d4167e8..9e02c60 100644
--- a/helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
-public class AsyncCallbackService implements MessageHandlerFactory {
+public class AsyncCallbackService implements MultiTypeMessageHandlerFactory {
   private final ConcurrentHashMap<String, AsyncCallback> _callbackMap =
       new ConcurrentHashMap<String, AsyncCallback>();
   private static Logger _logger = LoggerFactory.getLogger(AsyncCallbackService.class);

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
index 2f0e087..ccd7100 100644
--- a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
@@ -191,15 +191,21 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
   @Override
   public void registerMessageHandlerFactory(String type, MessageHandlerFactory factory,
       int threadpoolSize) {
-    if (!factory.getMessageTypes().contains(type)) {
-      throw new HelixException("Message factory type mismatch. Type: " + type + ", factory: "
-          + factory.getMessageTypes());
+    if (factory instanceof  MultiTypeMessageHandlerFactory) {
+      if (!((MultiTypeMessageHandlerFactory) factory).getMessageTypes().contains(type)) {
+        throw new HelixException("Message factory type mismatch. Type: " + type + ", factory: "
+            + ((MultiTypeMessageHandlerFactory) factory).getMessageTypes());
+      }
+    } else {
+      if (!factory.getMessageType().equals(type)) {
+        throw new HelixException(
+            "Message factory type mismatch. Type: " + type + ", factory: " + factory.getMessageType());
+      }
     }
 
     _isShuttingDown = false;
 
-    MsgHandlerFactoryRegistryItem newItem =
-        new MsgHandlerFactoryRegistryItem(factory, threadpoolSize);
+    MsgHandlerFactoryRegistryItem newItem = new MsgHandlerFactoryRegistryItem(factory, threadpoolSize);
     MsgHandlerFactoryRegistryItem prevItem = _hdlrFtyRegistry.putIfAbsent(type, newItem);
     if (prevItem == null) {
       ExecutorService newPool = Executors.newFixedThreadPool(threadpoolSize, new ThreadFactory() {

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/messaging/handling/MessageHandlerFactory.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/MessageHandlerFactory.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/MessageHandlerFactory.java
index 74ac948..7831657 100644
--- a/helix-core/src/main/java/org/apache/helix/messaging/handling/MessageHandlerFactory.java
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/MessageHandlerFactory.java
@@ -19,18 +19,14 @@ package org.apache.helix.messaging.handling;
  * under the License.
  */
 
-import java.util.List;
-
 import org.apache.helix.NotificationContext;
 import org.apache.helix.model.Message;
 
+@Deprecated
 public interface MessageHandlerFactory {
   MessageHandler createHandler(Message message, NotificationContext context);
 
-  @Deprecated
   String getMessageType();
 
-  List<String> getMessageTypes();
-
   void reset();
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/messaging/handling/MultiTypeMessageHandlerFactory.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/MultiTypeMessageHandlerFactory.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/MultiTypeMessageHandlerFactory.java
new file mode 100644
index 0000000..54bda40
--- /dev/null
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/MultiTypeMessageHandlerFactory.java
@@ -0,0 +1,10 @@
+package org.apache.helix.messaging.handling;
+
+import java.util.List;
+
+
+public interface MultiTypeMessageHandlerFactory extends MessageHandlerFactory {
+
+  List<String> getMessageTypes();
+  
+}

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/main/java/org/apache/helix/participant/StateMachineEngine.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/participant/StateMachineEngine.java b/helix-core/src/main/java/org/apache/helix/participant/StateMachineEngine.java
index ab44e8e..a6be7d9 100644
--- a/helix-core/src/main/java/org/apache/helix/participant/StateMachineEngine.java
+++ b/helix-core/src/main/java/org/apache/helix/participant/StateMachineEngine.java
@@ -20,6 +20,7 @@ package org.apache.helix.participant;
  */
 
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.participant.statemachine.StateModel;
 import org.apache.helix.participant.statemachine.StateModelFactory;
 
@@ -27,7 +28,7 @@ import org.apache.helix.participant.statemachine.StateModelFactory;
  * Helix participant manager uses this class to register/remove state model factory
  * State model factory creates state model that handles state transition messages
  */
-public interface StateMachineEngine extends MessageHandlerFactory {
+public interface StateMachineEngine extends MultiTypeMessageHandlerFactory {
   /**
    * Register a default state model factory for a state model definition
    * A state model definition could be, for example:

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/integration/TestZkSessionExpiry.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestZkSessionExpiry.java b/helix-core/src/test/java/org/apache/helix/integration/TestZkSessionExpiry.java
index 6fa1229..afacb7a 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestZkSessionExpiry.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestZkSessionExpiry.java
@@ -37,6 +37,7 @@ import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.Message;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.testng.Assert;
@@ -71,7 +72,7 @@ public class TestZkSessionExpiry extends ZkUnitTestBase {
 
   }
 
-  static class DummyMessageHandlerFactory implements MessageHandlerFactory {
+  static class DummyMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
     final Set<String> _handledMsgSet;
 
     public DummyMessageHandlerFactory(Set<String> handledMsgSet) {

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessagingService.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessagingService.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessagingService.java
index 9b18420..6d218ef 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessagingService.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestMessagingService.java
@@ -32,6 +32,7 @@ import org.apache.helix.messaging.AsyncCallback;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.Message;
 import org.apache.helix.model.Message.MessageState;
 import org.apache.helix.model.Message.MessageType;
@@ -41,7 +42,7 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableList;
 
 public class TestMessagingService extends ZkStandAloneCMTestBase {
-  public static class TestMessagingHandlerFactory implements MessageHandlerFactory {
+  public static class TestMessagingHandlerFactory implements MultiTypeMessageHandlerFactory {
     public static HashSet<String> _processedMsgIds = new HashSet<String>();
 
     @Override

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/integration/messaging/TestSchedulerMessage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestSchedulerMessage.java b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestSchedulerMessage.java
index 29c8c43..4c2144d 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/messaging/TestSchedulerMessage.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/messaging/TestSchedulerMessage.java
@@ -45,6 +45,7 @@ import org.apache.helix.messaging.AsyncCallback;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.model.ClusterConstraints.ConstraintType;
 import org.apache.helix.model.ConstraintItem;
 import org.apache.helix.model.Message;
@@ -81,7 +82,7 @@ public class TestSchedulerMessage extends ZkStandAloneCMTestBase {
 
   TestMessagingHandlerFactory _factory = new TestMessagingHandlerFactory();
 
-  public static class TestMessagingHandlerFactory implements MessageHandlerFactory {
+  public static class TestMessagingHandlerFactory implements MultiTypeMessageHandlerFactory {
     public Map<String, Set<String>> _results = new ConcurrentHashMap<String, Set<String>>();
 
     @Override
@@ -133,7 +134,7 @@ public class TestSchedulerMessage extends ZkStandAloneCMTestBase {
     }
   }
 
-  public static class TestMessagingHandlerFactoryLatch implements MessageHandlerFactory {
+  public static class TestMessagingHandlerFactoryLatch implements MultiTypeMessageHandlerFactory {
     public volatile CountDownLatch _latch = new CountDownLatch(1);
     public int _messageCount = 0;
     public Map<String, Set<String>> _results = new ConcurrentHashMap<String, Set<String>>();

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/messaging/TestDefaultMessagingService.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/messaging/TestDefaultMessagingService.java b/helix-core/src/test/java/org/apache/helix/messaging/TestDefaultMessagingService.java
index ffad3eb..fa7a092 100644
--- a/helix-core/src/test/java/org/apache/helix/messaging/TestDefaultMessagingService.java
+++ b/helix-core/src/test/java/org/apache/helix/messaging/TestDefaultMessagingService.java
@@ -37,6 +37,7 @@ import org.apache.helix.ZNRecord;
 import org.apache.helix.messaging.handling.HelixTaskResult;
 import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
+import org.apache.helix.messaging.handling.MultiTypeMessageHandlerFactory;
 import org.apache.helix.mock.MockManager;
 import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.LiveInstance.LiveInstanceProperty;
@@ -125,7 +126,7 @@ public class TestDefaultMessagingService {
     }
   }
 
-  class TestMessageHandlerFactory implements MessageHandlerFactory {
+  class TestMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
     class TestMessageHandler extends MessageHandler {
 
       public TestMessageHandler(Message message, NotificationContext context) {
@@ -170,7 +171,7 @@ public class TestDefaultMessagingService {
     }
   }
 
-  class TestStateTransitionHandlerFactory implements MessageHandlerFactory {
+  class TestStateTransitionHandlerFactory implements MultiTypeMessageHandlerFactory {
 
     @Override
     public MessageHandler createHandler(Message message, NotificationContext context) {

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/messaging/handling/TestConfigThreadpoolSize.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/messaging/handling/TestConfigThreadpoolSize.java b/helix-core/src/test/java/org/apache/helix/messaging/handling/TestConfigThreadpoolSize.java
index 4031393..965cf0f 100644
--- a/helix-core/src/test/java/org/apache/helix/messaging/handling/TestConfigThreadpoolSize.java
+++ b/helix-core/src/test/java/org/apache/helix/messaging/handling/TestConfigThreadpoolSize.java
@@ -37,7 +37,7 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableList;
 
 public class TestConfigThreadpoolSize extends ZkStandAloneCMTestBase {
-  public static class TestMessagingHandlerFactory implements MessageHandlerFactory {
+  public static class TestMessagingHandlerFactory implements MultiTypeMessageHandlerFactory {
     public static HashSet<String> _processedMsgIds = new HashSet<String>();
 
     @Override
@@ -61,7 +61,7 @@ public class TestConfigThreadpoolSize extends ZkStandAloneCMTestBase {
 
   }
 
-  public static class TestMessagingHandlerFactory2 implements MessageHandlerFactory {
+  public static class TestMessagingHandlerFactory2 implements MultiTypeMessageHandlerFactory {
     public static HashSet<String> _processedMsgIds = new HashSet<String>();
 
     @Override

http://git-wip-us.apache.org/repos/asf/helix/blob/6b6ba3c2/helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java b/helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java
index 40370d5..f0b50a3 100644
--- a/helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java
+++ b/helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java
@@ -45,7 +45,7 @@ public class TestHelixTaskExecutor {
     }
   }
 
-  class TestMessageHandlerFactory implements MessageHandlerFactory {
+  class TestMessageHandlerFactory implements MultiTypeMessageHandlerFactory {
     int _handlersCreated = 0;
     ConcurrentHashMap<String, String> _processedMsgIds = new ConcurrentHashMap<>();
 
@@ -113,7 +113,7 @@ public class TestHelixTaskExecutor {
 
   }
 
-  class CancellableHandlerFactory implements MessageHandlerFactory {
+  class CancellableHandlerFactory implements MultiTypeMessageHandlerFactory {
 
     int _handlersCreated = 0;
     ConcurrentHashMap<String, String> _processedMsgIds = new ConcurrentHashMap<String, String>();
@@ -191,7 +191,7 @@ public class TestHelixTaskExecutor {
     }
   }
 
-  class TestStateTransitionHandlerFactory implements MessageHandlerFactory {
+  class TestStateTransitionHandlerFactory implements MultiTypeMessageHandlerFactory {
     ConcurrentHashMap<String, String> _processedMsgIds = new ConcurrentHashMap<String, String>();
     private final String _msgType;
     public TestStateTransitionHandlerFactory(String msgType) {