Route CLI improvements and bug fixes

Change-Id: I4b4547f578cc053dc150066dadb68b6b2cbb82ee
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
index 8833c95..4957dad 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
@@ -25,6 +25,7 @@
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onosproject.event.ListenerService;
+import org.onosproject.incubator.net.routing.NextHop;
 import org.onosproject.incubator.net.routing.ResolvedRoute;
 import org.onosproject.incubator.net.routing.Route;
 import org.onosproject.incubator.net.routing.RouteAdminService;
@@ -146,6 +147,7 @@
      * @param event event
      */
     private void post(RouteEvent event) {
+        log.debug("Sending event {}", event);
         synchronized (this) {
             listeners.values().forEach(l -> l.post(event));
         }
@@ -165,9 +167,22 @@
     }
 
     @Override
+    public Collection<Route> getRoutesForNextHop(IpAddress nextHop) {
+        return routeStore.getRoutesForNextHop(nextHop);
+    }
+
+    @Override
+    public Set<NextHop> getNextHops() {
+        return routeStore.getNextHops().entrySet().stream()
+                .map(entry -> new NextHop(entry.getKey(), entry.getValue()))
+                .collect(Collectors.toSet());
+    }
+
+    @Override
     public void update(Collection<Route> routes) {
         synchronized (this) {
             routes.forEach(route -> {
+                log.debug("Received update {}", route);
                 routeStore.updateRoute(route);
                 resolve(route);
             });
@@ -177,7 +192,10 @@
     @Override
     public void withdraw(Collection<Route> routes) {
         synchronized (this) {
-            routes.forEach(route -> routeStore.removeRoute(route));
+            routes.forEach(route -> {
+                log.debug("Received withdraw {}", routes);
+                routeStore.removeRoute(route);
+            });
         }
     }