Check-point before refactoring the topology provider stuff.
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManager.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManager.java
index 70f001c..e6e54b8 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManager.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManager.java
@@ -79,19 +79,28 @@
     @Override
     public boolean isLatest(Topology topology) {
         checkNotNull(topology, TOPOLOGY_NULL);
-        return store.isLatest(topology);
+        return store.isLatest(defaultTopology(topology));
+    }
+
+    // Validates the specified topology and returns it as a default
+    private DefaultTopology defaultTopology(Topology topology) {
+        if (topology instanceof DefaultTopology) {
+            return (DefaultTopology) topology;
+        }
+        throw new IllegalArgumentException("Topology class " + topology.getClass() +
+                                                   " not supported");
     }
 
     @Override
     public Set<TopologyCluster> getClusters(Topology topology) {
         checkNotNull(topology, TOPOLOGY_NULL);
-        return store.getClusters(topology);
+        return store.getClusters(defaultTopology(topology));
     }
 
     @Override
     public Graph<TopoVertex, TopoEdge> getGraph(Topology topology) {
         checkNotNull(topology, TOPOLOGY_NULL);
-        return store.getGraph(topology);
+        return store.getGraph(defaultTopology(topology));
     }
 
     @Override
@@ -99,7 +108,7 @@
         checkNotNull(topology, TOPOLOGY_NULL);
         checkNotNull(src, DEVICE_ID_NULL);
         checkNotNull(dst, DEVICE_ID_NULL);
-        return store.getPaths(topology, src, dst);
+        return store.getPaths(defaultTopology(topology), src, dst);
     }
 
     @Override
@@ -108,21 +117,21 @@
         checkNotNull(src, DEVICE_ID_NULL);
         checkNotNull(dst, DEVICE_ID_NULL);
         checkNotNull(weight, "Link weight cannot be null");
-        return store.getPaths(topology, src, dst, weight);
+        return store.getPaths(defaultTopology(topology), src, dst, weight);
     }
 
     @Override
     public boolean isInfrastructure(Topology topology, ConnectPoint connectPoint) {
         checkNotNull(topology, TOPOLOGY_NULL);
         checkNotNull(connectPoint, CONNECTION_POINT_NULL);
-        return store.isInfrastructure(topology, connectPoint);
+        return store.isInfrastructure(defaultTopology(topology), connectPoint);
     }
 
     @Override
     public boolean isInBroadcastTree(Topology topology, ConnectPoint connectPoint) {
         checkNotNull(topology, TOPOLOGY_NULL);
         checkNotNull(connectPoint, CONNECTION_POINT_NULL);
-        return store.isInBroadcastTree(topology, connectPoint);
+        return store.isInBroadcastTree(defaultTopology(topology), connectPoint);
     }
 
     @Override
@@ -156,7 +165,8 @@
 
             log.info("Topology changed due to: {}", // to be removed soon
                      reasons == null ? "initial compute" : reasons);
-            TopologyEvent event = store.updateTopology(topoDescription, reasons);
+            TopologyEvent event = store.updateTopology(provider().id(),
+                                                       topoDescription, reasons);
             if (event != null) {
                 log.info("Topology changed due to: {}",
                          reasons == null ? "initial compute" : reasons);