ONOS-4326: Focusing on add/remove cluster member. (WIP).

If reviewing this, please refer to http://tinyurl.com/onos-ui-topo-model

Change-Id: Ic6568074ac768ec828f9103e92caab5e9a06ade6
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
index 0a4ce99..48ae42f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
@@ -59,6 +59,7 @@
 import org.onosproject.net.statistic.StatisticService;
 import org.onosproject.net.topology.TopologyService;
 import org.onosproject.ui.impl.topo.UiTopoSession;
+import org.onosproject.ui.model.ServiceBundle;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -122,7 +123,7 @@
 
     @Activate
     protected void activate() {
-        cache = new ModelCache(eventDispatcher);
+        cache = new ModelCache(new DefaultServiceBundle(), eventDispatcher);
 
         eventDispatcher.addSink(UiModelEvent.class, listenerRegistry);
 
@@ -180,6 +181,52 @@
         removeListener(session);
     }
 
+    /**
+     * Default implementation of service bundle to return references to our
+     * dynamically injected services.
+     */
+    private class DefaultServiceBundle implements ServiceBundle {
+        @Override
+        public ClusterService cluster() {
+            return clusterService;
+        }
+
+        @Override
+        public MastershipService mastership() {
+            return mastershipService;
+        }
+
+        @Override
+        public RegionService region() {
+            return regionService;
+        }
+
+        @Override
+        public DeviceService device() {
+            return deviceService;
+        }
+
+        @Override
+        public LinkService link() {
+            return linkService;
+        }
+
+        @Override
+        public HostService host() {
+            return hostService;
+        }
+
+        @Override
+        public IntentService intent() {
+            return intentService;
+        }
+
+        @Override
+        public FlowRuleService flow() {
+            return flowService;
+        }
+    }
+
 
     private class InternalClusterListener implements ClusterEventListener {
         @Override