[AETHER-457] Load initial routes from netcfg

Change-Id: I338316ba8836cd4fbd567d25a7e71ff27f27e8e4
diff --git a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
index bad5b92..0e7dd90 100644
--- a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
+++ b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
@@ -30,7 +30,10 @@
 import org.onosproject.net.config.NetworkConfigListener;
 import org.onosproject.net.config.NetworkConfigRegistry;
 import org.onosproject.net.config.basics.SubjectFactories;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -40,6 +43,8 @@
 @Component(immediate = true)
 public class ConfigurationRouteSource {
 
+    private static final Logger log = LoggerFactory.getLogger(ConfigurationRouteSource.class);
+
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected NetworkConfigRegistry netcfgRegistry;
 
@@ -62,6 +67,17 @@
     protected void activate() {
         netcfgRegistry.addListener(netcfgListener);
         netcfgRegistry.registerConfigFactory(routeConfigFactory);
+
+        // Read initial routes in netcfg
+        netcfgRegistry.getSubjects(ApplicationId.class, RouteConfig.class).forEach(subject -> {
+            Optional.ofNullable(netcfgRegistry.getConfig(subject, RouteConfig.class))
+                    .map(RouteConfig::getRoutes)
+                    .ifPresent(routes -> {
+                        log.info("Load initial routes from netcfg: {}", routes);
+                        routeService.update(routes);
+                    });
+        });
+
     }
 
     @Deactivate