Removed usage of deprecated ClusterCommunicationService APIs

Change-Id: Id306dadad48d1bad7b3fbde3a40ba3e0fdac4cbc
diff --git a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
index cd42b17..2c682a1 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
@@ -60,8 +60,6 @@
 import org.onosproject.net.group.StoredGroupEntry;
 import org.onosproject.store.AbstractStore;
 import org.onosproject.store.cluster.messaging.ClusterCommunicationService;
-import org.onosproject.store.cluster.messaging.ClusterMessage;
-import org.onosproject.store.cluster.messaging.ClusterMessageHandler;
 import org.onosproject.store.service.MultiValuedTimestamp;
 import org.onosproject.store.serializers.DeviceIdSerializer;
 import org.onosproject.store.serializers.KryoNamespaces;
@@ -198,10 +196,11 @@
                 newFixedThreadPool(MESSAGE_HANDLER_THREAD_POOL_SIZE,
                                    groupedThreads("onos/store/group",
                                                   "message-handlers"));
-        clusterCommunicator.
-            addSubscriber(GroupStoreMessageSubjects.REMOTE_GROUP_OP_REQUEST,
-                          new ClusterGroupMsgHandler(),
-                          messageHandlingExecutor);
+
+        clusterCommunicator.addSubscriber(GroupStoreMessageSubjects.REMOTE_GROUP_OP_REQUEST,
+                kryoBuilder.build()::deserialize,
+                this::process,
+                messageHandlingExecutor);
 
         log.debug("Creating EC map groupstorekeymap");
         EventuallyConsistentMapBuilder<GroupStoreKeyMapKey, StoredGroupEntry>
@@ -970,45 +969,27 @@
             }
         }
     }
-    /**
-     * Message handler to receive messages from group subsystems of
-     * other cluster members.
-     */
-    private final class ClusterGroupMsgHandler
-                    implements ClusterMessageHandler {
-        @Override
-        public void handle(ClusterMessage message) {
-            if (message.subject().equals(
-                    GroupStoreMessageSubjects.REMOTE_GROUP_OP_REQUEST)) {
-                GroupStoreMessage groupOp = kryoBuilder.
-                        build().deserialize(message.payload());
-                log.debug("received remote group operation {} request for device {}",
-                          groupOp.type(),
-                          groupOp.deviceId());
-                if (mastershipService.
-                        getLocalRole(groupOp.deviceId()) !=
-                        MastershipRole.MASTER) {
-                    log.warn("ClusterGroupMsgHandler: This node is not "
-                            + "MASTER for device {}", groupOp.deviceId());
-                    return;
-                }
-                if (groupOp.type() == GroupStoreMessage.Type.ADD) {
-                    storeGroupDescriptionInternal(groupOp.groupDesc());
-                } else if (groupOp.type() == GroupStoreMessage.Type.UPDATE) {
-                    updateGroupDescriptionInternal(groupOp.deviceId(),
-                                                   groupOp.appCookie(),
-                                                   groupOp.updateType(),
-                                                   groupOp.updateBuckets(),
-                                                   groupOp.newAppCookie());
-                } else if (groupOp.type() == GroupStoreMessage.Type.DELETE) {
-                    deleteGroupDescriptionInternal(groupOp.deviceId(),
-                                                   groupOp.appCookie());
-                }
-            } else {
-                log.warn("ClusterGroupMsgHandler: Unknown remote message type {}",
-                         message.subject());
-            }
-        }
+
+    private void process(GroupStoreMessage groupOp) {
+        log.debug("Received remote group operation {} request for device {}",
+                groupOp.type(),
+                groupOp.deviceId());
+      if (!mastershipService.isLocalMaster(groupOp.deviceId())) {
+          log.warn("This node is not MASTER for device {}", groupOp.deviceId());
+          return;
+      }
+      if (groupOp.type() == GroupStoreMessage.Type.ADD) {
+          storeGroupDescriptionInternal(groupOp.groupDesc());
+      } else if (groupOp.type() == GroupStoreMessage.Type.UPDATE) {
+          updateGroupDescriptionInternal(groupOp.deviceId(),
+                                         groupOp.appCookie(),
+                                         groupOp.updateType(),
+                                         groupOp.updateBuckets(),
+                                         groupOp.newAppCookie());
+      } else if (groupOp.type() == GroupStoreMessage.Type.DELETE) {
+          deleteGroupDescriptionInternal(groupOp.deviceId(),
+                                         groupOp.appCookie());
+      }
     }
 
     /**