[CORD-2937] Improve work partition on Multicast

Change-Id: Ia8761245e7f199721c1228bfd500e0392a20de05
(cherry picked from commit 901851ef9f2a53d6fdd08d0cc1232b125f1e35bf)
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index 1e322f6..eff78e5 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -39,7 +39,7 @@
 import org.onlab.util.Tools;
 import org.onosproject.cfg.ComponentConfigService;
 import org.onosproject.cluster.ClusterService;
-import org.onosproject.cluster.LeadershipService;
+import org.onosproject.cluster.NodeId;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.event.Event;
@@ -75,6 +75,7 @@
 import org.onosproject.net.host.HostLocationProbingService;
 import org.onosproject.net.host.HostService;
 import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.WorkPartitionService;
 import org.onosproject.net.intf.Interface;
 import org.onosproject.net.intf.InterfaceService;
 import org.onosproject.net.link.LinkEvent;
@@ -212,7 +213,7 @@
     public ClusterService clusterService;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    public LeadershipService leadershipService;
+    public WorkPartitionService workPartitionService;
 
     @Property(name = "activeProbing", boolValue = true,
             label = "Enable active probing to discover dual-homed hosts.")
@@ -673,6 +674,11 @@
         return mcastHandler.getMcastPaths(mcastIp);
     }
 
+    @Override
+    public Map<IpAddress, NodeId> getMcastLeaders(IpAddress mcastIp) {
+        return mcastHandler.getMcastLeaders(mcastIp);
+    }
+
     /**
      * Extracts the application ID from the manager.
      *
@@ -1491,10 +1497,10 @@
                 case SINKS_ADDED:
                 case SINKS_REMOVED:
                 case ROUTE_REMOVED:
+                case ROUTE_ADDED:
                     log.trace("Schedule Mcast event {}", event);
                     mcastEventExecutor.execute(new InternalEventHandler(event));
                     break;
-                case ROUTE_ADDED:
                 default:
                     log.warn("Unsupported mcast event type: {}", event.type());
                     break;