Add TopoRouteService to the list of modules to be loaded on startup.
diff --git a/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java b/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
index ec5e7e3..5c847b7 100644
--- a/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
+++ b/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
@@ -10,6 +10,7 @@
 import net.floodlightcontroller.core.module.FloodlightModuleException;
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
+import net.floodlightcontroller.core.INetMapTopologyService.ITopoRouteService;
 import net.floodlightcontroller.counter.ICounterStoreService;
 import net.floodlightcontroller.flowcache.IFlowService;
 import net.floodlightcontroller.mastership.IMastershipService;
@@ -53,6 +54,7 @@
         dependencies.add(IThreadPoolService.class);
         dependencies.add(IMastershipService.class);
         dependencies.add(IFlowService.class);
+        dependencies.add(ITopoRouteService.class);
         return dependencies;
     }
 
@@ -70,6 +72,7 @@
            context.getServiceImpl(IThreadPoolService.class));
        controller.setMastershipService(context.getServiceImpl(IMastershipService.class));
        controller.setFlowService(context.getServiceImpl(IFlowService.class));
+       controller.setTopoRouteService(context.getServiceImpl(ITopoRouteService.class));
        controller.init(context.getConfigParams(this));
     }
 
diff --git a/src/main/java/net/floodlightcontroller/core/INetMapTopologyService.java b/src/main/java/net/floodlightcontroller/core/INetMapTopologyService.java
index 937c551..a3eb830 100644
--- a/src/main/java/net/floodlightcontroller/core/INetMapTopologyService.java
+++ b/src/main/java/net/floodlightcontroller/core/INetMapTopologyService.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
 import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
 import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
@@ -29,7 +30,7 @@
 		Iterable<IDeviceObject> getDevicesOnSwitch(String dpid, short port_num);
 	}
 	
-	public interface ITopoRouteService {
+	public interface ITopoRouteService extends IFloodlightService {
 		List<NodePortTuple> getShortestPath(NodePortTuple src, NodePortTuple dest);
 		Boolean routeExists(NodePortTuple src, NodePortTuple dest);
 	}
diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 74e5fcf..cbcd9a0 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -58,6 +58,7 @@
 import net.floodlightcontroller.core.IOFSwitch;
 import net.floodlightcontroller.core.IOFSwitchFilter;
 import net.floodlightcontroller.core.IOFSwitchListener;
+import net.floodlightcontroller.core.INetMapTopologyService.ITopoRouteService;
 import net.floodlightcontroller.core.ISwitchStorage.SwitchState;
 import net.floodlightcontroller.core.annotations.LogMessageDoc;
 import net.floodlightcontroller.core.annotations.LogMessageDocs;
@@ -192,6 +193,7 @@
     protected IThreadPoolService threadPool;
     protected IMastershipService masterHelper;
     protected IFlowService flowService;
+    protected ITopoRouteService topoRouteService;
     
     // Configuration options
     protected int openFlowPort = 6633;
@@ -401,6 +403,10 @@
     public void setFlowService(IFlowService serviceImpl) {
 	this.flowService = serviceImpl;		
     }
+
+    public void setTopoRouteService(ITopoRouteService serviceImpl) {
+	this.topoRouteService = serviceImpl;		
+    }
 	
     @Override
     public Role getRole() {
diff --git a/src/main/java/net/floodlightcontroller/flowcache/FlowManager.java b/src/main/java/net/floodlightcontroller/flowcache/FlowManager.java
index d9f19ba..12ed505 100644
--- a/src/main/java/net/floodlightcontroller/flowcache/FlowManager.java
+++ b/src/main/java/net/floodlightcontroller/flowcache/FlowManager.java
@@ -26,7 +26,7 @@
 
     /** The logger. */
     private static Logger logger =
-	LoggerFactory.getLogger(FlowReconcileManager.class);
+	LoggerFactory.getLogger(FlowManager.class);
 
     @Override
     public Collection<Class<? extends IFloodlightService>> getModuleServices() {
diff --git a/src/main/java/net/floodlightcontroller/routing/TopoRouteService.java b/src/main/java/net/floodlightcontroller/routing/TopoRouteService.java
index 2c50d29..ba3c2ef 100644
--- a/src/main/java/net/floodlightcontroller/routing/TopoRouteService.java
+++ b/src/main/java/net/floodlightcontroller/routing/TopoRouteService.java
@@ -1,10 +1,17 @@
 package net.floodlightcontroller.routing;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import net.floodlightcontroller.core.internal.SwitchStorageImpl;
+import net.floodlightcontroller.core.module.FloodlightModuleContext;
+import net.floodlightcontroller.core.module.FloodlightModuleException;
+import net.floodlightcontroller.core.module.IFloodlightModule;
+import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.core.INetMapTopologyService.ITopoRouteService;
 import net.floodlightcontroller.topology.NodePortTuple;
 
@@ -18,7 +25,54 @@
 import javax.script.ScriptException;
 import com.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine;
 
-public class TopoRouteService implements ITopoRouteService {
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TopoRouteService implements IFloodlightModule, ITopoRouteService {
+
+    /** The logger. */
+    private static Logger logger =
+	LoggerFactory.getLogger(TopoRouteService.class);
+
+    @Override
+    public Collection<Class<? extends IFloodlightService>> getModuleServices() {
+        Collection<Class<? extends IFloodlightService>> l = 
+            new ArrayList<Class<? extends IFloodlightService>>();
+        l.add(ITopoRouteService.class);
+        return l;
+    }
+
+    @Override
+    public Map<Class<? extends IFloodlightService>, IFloodlightService> 
+			       getServiceImpls() {
+        Map<Class<? extends IFloodlightService>,
+        IFloodlightService> m = 
+            new HashMap<Class<? extends IFloodlightService>,
+                IFloodlightService>();
+        m.put(ITopoRouteService.class, this);
+        return m;
+    }
+
+    @Override
+    public Collection<Class<? extends IFloodlightService>> 
+                                                    getModuleDependencies() {
+	Collection<Class<? extends IFloodlightService>> l =
+	    new ArrayList<Class<? extends IFloodlightService>>();
+	// TODO: Add the appropriate dependencies
+	// l.add(IRestApiService.class);
+        return l;
+    }
+
+    @Override
+    public void init(FloodlightModuleContext context)
+	throws FloodlightModuleException {
+	// TODO: Add the appropriate initialization
+    }
+
+    @Override
+    public void startUp(FloodlightModuleContext context) {
+	// TODO: Add the approprate setup
+    }
 
 	ThreadLocal<SwitchStorageImpl> store = new ThreadLocal<SwitchStorageImpl>() {
 	    @Override
diff --git a/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java b/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
index fd9d201..3fa7510 100644
--- a/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
+++ b/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
@@ -2,11 +2,10 @@
 
 import java.util.List;
 
+import net.floodlightcontroller.core.INetMapTopologyService.ITopoRouteService;
 import net.floodlightcontroller.routing.IRoutingService;
 import net.floodlightcontroller.routing.Route;
-import net.floodlightcontroller.routing.TopoRouteService;
 import net.floodlightcontroller.topology.NodePortTuple;
-import net.floodlightcontroller.core.INetMapTopologyService.ITopoRouteService;
 
 import org.openflow.util.HexString;
 import org.restlet.resource.Get;
@@ -20,14 +19,11 @@
 
     @Get("json")
     public List<NodePortTuple> retrieve() {
-	/*
-        IRoutingService routing = 
-                (IRoutingService)getContext().getAttributes().
-                    get(IRoutingService.class.getCanonicalName());
-	*/
-	ITopoRouteService onos_routing = new TopoRouteService();
-	if (onos_routing == null) {
-	    log.debug("ONOS Route Service not found");
+        ITopoRouteService topoRouteService = 
+                (ITopoRouteService)getContext().getAttributes().
+                    get(ITopoRouteService.class.getCanonicalName());
+	if (topoRouteService == null) {
+	    log.debug("Topology Route Service not found");
 	    return null;
 	}
         
@@ -43,16 +39,9 @@
         long longDstDpid = HexString.toLong(dstDpid);
         short shortDstPort = Short.parseShort(dstPort);
         
-	/*
-        Route result = routing.getRoute(longSrcDpid, shortSrcPort, longDstDpid, shortDstPort);
-        
-        if (result!=null) {
-            return routing.getRoute(longSrcDpid, shortSrcPort, longDstDpid, shortDstPort).getPath();
-        }
-	*/
 	List<NodePortTuple> result =
-	    onos_routing.getShortestPath(new NodePortTuple(longSrcDpid, shortSrcPort),
-					 new NodePortTuple(longDstDpid, shortDstPort));
+	    topoRouteService.getShortestPath(new NodePortTuple(longSrcDpid, shortSrcPort),
+					     new NodePortTuple(longDstDpid, shortDstPort));
 	if ((result != null) && (result.size() > 0)) {
 	    return result;
 	} else {
diff --git a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
index 70ca11d..16deca0 100644
--- a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
+++ b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
@@ -25,3 +25,4 @@
 net.floodlightcontroller.firewall.Firewall
 net.floodlightcontroller.mastership.MastershipManager
 net.floodlightcontroller.flowcache.FlowManager
+net.floodlightcontroller.routing.TopoRouteService