SEBA-1006-Minor version upgrade

Change-Id: I186b1c2d49daa81dea73188e60934755f771981e
diff --git a/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java b/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
index e2f4779..e56118b 100644
--- a/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
+++ b/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
@@ -16,6 +16,7 @@
 package org.opencord.cordmcast.impl;
 
 
+import com.google.common.collect.Lists;
 import org.onlab.packet.VlanId;
 import org.onlab.util.SafeRecurringTask;
 import org.onosproject.cfg.ComponentConfigService;
@@ -35,6 +36,7 @@
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
 import org.slf4j.Logger;
 
 import java.util.Dictionary;
@@ -63,11 +65,14 @@
 public class CordMcastStatisticsManager
         extends AbstractListenerManager<CordMcastStatisticsEvent, CordMcastStatisticsEventListener>
         implements CordMcastStatisticsService {
-
+    private static final String MCAST_NOT_RUNNING = "Multicast is not running.";
     private static final String CORD_MCAST_STATISTICS_LEADERSHIP = "cord-mcast-statistics-leadership";
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY)
-    protected MulticastRouteService mcastService;
+    @Reference(cardinality = ReferenceCardinality.OPTIONAL,
+            bind = "bindMcastRouteService",
+            unbind = "unbindMcastRouteService",
+            policy = ReferencePolicy.DYNAMIC)
+    protected volatile MulticastRouteService mcastService;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected ComponentConfigService componentConfigService;
@@ -127,7 +132,21 @@
         log.info("CordMcastStatisticsManager deactivated.");
     }
 
+    protected void bindMcastRouteService(MulticastRouteService service) {
+        mcastService = service;
+        log.info("Multicast route service binds to onos.");
+    }
+
+    protected void unbindMcastRouteService(MulticastRouteService service) {
+        mcastService = null;
+        log.info("Multicast route service unbinds from onos.");
+    }
+
     public List<CordMcastStatistics> getMcastDetails() {
+        if (mcastService == null) {
+            log.warn(MCAST_NOT_RUNNING);
+            return Lists.newArrayList();
+        }
         List<CordMcastStatistics> mcastData = new ArrayList<CordMcastStatistics>();
         Set<McastRoute> routes = mcastService.getRoutes();
         routes.forEach(route -> {