Moved the BGP Route Intent synchronization mechanism from the Router class
to the new class IntentSynchronizer.

Also, minor cleanup in some of the method names and access scope.

Change-Id: I38257cd1d9516ef3b3dd50f23c28015054c73d70
diff --git a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/IntentSyncTest.java b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/IntentSyncTest.java
index 7be7d11..4b29ba8 100644
--- a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/IntentSyncTest.java
+++ b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/IntentSyncTest.java
@@ -54,7 +54,8 @@
 import com.googlecode.concurrenttrees.radixinverted.InvertedRadixTree;
 
 /**
- * This class tests the intent synchronization function in Router class.
+ * This class tests the intent synchronization function in the
+ * IntentSynchronizer class.
  */
 public class IntentSyncTest {
 
@@ -74,6 +75,7 @@
             DeviceId.deviceId("of:0000000000000003"),
             PortNumber.portNumber(1));
 
+    private IntentSynchronizer intentSynchronizer;
     private Router router;
 
     private static final ApplicationId APPID = new ApplicationId() {
@@ -94,7 +96,8 @@
         setUpHostService();
         intentService = createMock(IntentService.class);
 
-        router = new Router(APPID, intentService,
+        intentSynchronizer = new IntentSynchronizer(APPID, intentService);
+        router = new Router(APPID, intentSynchronizer,
                 hostService, null, interfaceService);
     }
 
@@ -260,7 +263,7 @@
         // Compose a intent, which is equal to intent5 but the id is different.
         MultiPointToSinglePointIntent intent5New =
                 staticIntentBuilder(intent5, routeEntry5, "00:00:00:00:00:01");
-        assertTrue(TestUtils.callMethod(router,
+        assertTrue(TestUtils.callMethod(intentSynchronizer,
                 "compareMultiPointToSinglePointIntents",
                 new Class<?>[] {MultiPointToSinglePointIntent.class,
                 MultiPointToSinglePointIntent.class},
@@ -296,7 +299,8 @@
         pushedRouteIntents.put(routeEntry5.prefix(), intent5New);
         pushedRouteIntents.put(routeEntry6.prefix(), intent6);
         pushedRouteIntents.put(routeEntry7.prefix(), intent7);
-        TestUtils.setField(router, "pushedRouteIntents", pushedRouteIntents);
+        TestUtils.setField(intentSynchronizer, "pushedRouteIntents",
+                           pushedRouteIntents);
 
         // Set up expectation
         reset(intentService);
@@ -327,8 +331,9 @@
         replay(intentService);
 
         // Start the test
-        router.leaderChanged(true);
-        TestUtils.callMethod(router, "syncIntents", new Class<?>[] {});
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.callMethod(intentSynchronizer, "syncIntents",
+                             new Class<?>[] {});
 
         // Verify
         assertEquals(router.getRoutes().size(), 6);
@@ -338,12 +343,12 @@
         assertTrue(router.getRoutes().contains(routeEntry5));
         assertTrue(router.getRoutes().contains(routeEntry6));
 
-        assertEquals(router.getPushedRouteIntents().size(), 6);
-        assertTrue(router.getPushedRouteIntents().contains(intent1));
-        assertTrue(router.getPushedRouteIntents().contains(intent3));
-        assertTrue(router.getPushedRouteIntents().contains(intent4Update));
-        assertTrue(router.getPushedRouteIntents().contains(intent5));
-        assertTrue(router.getPushedRouteIntents().contains(intent6));
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 6);
+        assertTrue(intentSynchronizer.getPushedRouteIntents().contains(intent1));
+        assertTrue(intentSynchronizer.getPushedRouteIntents().contains(intent3));
+        assertTrue(intentSynchronizer.getPushedRouteIntents().contains(intent4Update));
+        assertTrue(intentSynchronizer.getPushedRouteIntents().contains(intent5));
+        assertTrue(intentSynchronizer.getPushedRouteIntents().contains(intent6));
 
         verify(intentService);
     }
diff --git a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTest.java b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTest.java
index b4b0551..b5beb4a 100644
--- a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTest.java
+++ b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTest.java
@@ -102,6 +102,7 @@
         }
     };
 
+    private IntentSynchronizer intentSynchronizer;
     private Router router;
 
     @Before
@@ -113,7 +114,8 @@
 
         intentService = createMock(IntentService.class);
 
-        router = new Router(APPID, intentService,
+        intentSynchronizer = new IntentSynchronizer(APPID, intentService);
+        router = new Router(APPID, intentSynchronizer,
                 hostService, sdnIpConfigService, interfaceService);
     }
 
@@ -258,15 +260,15 @@
         replay(intentService);
 
         // Call the processRouteAdd() method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteAdd(routeEntry);
 
         // Verify
         assertEquals(router.getRoutes().size(), 1);
         assertTrue(router.getRoutes().contains(routeEntry));
-        assertEquals(router.getPushedRouteIntents().size(), 1);
-        assertEquals(router.getPushedRouteIntents().iterator().next(),
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 1);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().iterator().next(),
                 intent);
         verify(intentService);
     }
@@ -338,15 +340,15 @@
         replay(intentService);
 
         // Call the processRouteAdd() method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteAdd(routeEntryUpdate);
 
         // Verify
         assertEquals(router.getRoutes().size(), 1);
         assertTrue(router.getRoutes().contains(routeEntryUpdate));
-        assertEquals(router.getPushedRouteIntents().size(), 1);
-        assertEquals(router.getPushedRouteIntents().iterator().next(),
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 1);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().iterator().next(),
                 intentNew);
         verify(intentService);
     }
@@ -389,13 +391,13 @@
         replay(intentService);
 
         // Call route deleting method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteDelete(routeEntry);
 
         // Verify
         assertEquals(router.getRoutes().size(), 0);
-        assertEquals(router.getPushedRouteIntents().size(), 0);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 0);
         verify(intentService);
     }
 
@@ -416,14 +418,14 @@
         replay(intentService);
 
         // Call the processRouteAdd() method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteAdd(routeEntry);
 
         // Verify
         assertEquals(router.getRoutes().size(), 1);
         assertTrue(router.getRoutes().contains(routeEntry));
-        assertEquals(router.getPushedRouteIntents().size(), 0);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 0);
         verify(intentService);
     }
 }
diff --git a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTestWithAsyncArp.java b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTestWithAsyncArp.java
index 6798670..3f147cc 100644
--- a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTestWithAsyncArp.java
+++ b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/RouterTestWithAsyncArp.java
@@ -92,6 +92,7 @@
             DeviceId.deviceId("of:0000000000000003"),
             PortNumber.portNumber(1));
 
+    private IntentSynchronizer intentSynchronizer;
     private Router router;
     private InternalHostListener internalHostListener;
 
@@ -114,7 +115,8 @@
         hostService = createMock(HostService.class);
         intentService = createMock(IntentService.class);
 
-        router = new Router(APPID, intentService,
+        intentSynchronizer = new IntentSynchronizer(APPID, intentService);
+        router = new Router(APPID, intentSynchronizer,
                 hostService, sdnIpConfigService, interfaceService);
         internalHostListener = router.new InternalHostListener();
     }
@@ -211,8 +213,8 @@
         replay(intentService);
 
         // Call the processRouteAdd() method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteAdd(routeEntry);
 
         Host host = new DefaultHost(ProviderId.NONE, HostId.NONE,
@@ -227,9 +229,9 @@
         // Verify
         assertEquals(router.getRoutes().size(), 1);
         assertTrue(router.getRoutes().contains(routeEntry));
-        assertEquals(router.getPushedRouteIntents().size(), 1);
-        assertEquals(router.getPushedRouteIntents().iterator().next(),
-                intent);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 1);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().iterator().next(),
+                     intent);
         verify(intentService);
         verify(hostService);
 
@@ -294,8 +296,8 @@
         replay(intentService);
 
         // Call the processRouteAdd() method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteAdd(routeEntryUpdate);
 
         Host host = new DefaultHost(ProviderId.NONE, HostId.NONE,
@@ -310,8 +312,8 @@
         // Verify
         assertEquals(router.getRoutes().size(), 1);
         assertTrue(router.getRoutes().contains(routeEntryUpdate));
-        assertEquals(router.getPushedRouteIntents().size(), 1);
-        assertEquals(router.getPushedRouteIntents().iterator().next(),
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 1);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().iterator().next(),
                 intentNew);
         verify(intentService);
         verify(hostService);
@@ -342,13 +344,13 @@
         replay(intentService);
 
         // Call route deleting method in Router class
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
         router.processRouteDelete(routeEntry);
 
         // Verify
         assertEquals(router.getRoutes().size(), 0);
-        assertEquals(router.getPushedRouteIntents().size(), 0);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(), 0);
         verify(intentService);
     }
 
diff --git a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/SdnIpTest.java b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/SdnIpTest.java
index 348a62fd..0cf706a 100644
--- a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/SdnIpTest.java
+++ b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/SdnIpTest.java
@@ -66,6 +66,7 @@
     private static final int MIN_PREFIX_LENGTH = 1;
     private static final int MAX_PREFIX_LENGTH = 32;
 
+    private IntentSynchronizer intentSynchronizer;
     static Router router;
 
     private SdnIpConfigService sdnIpConfigService;
@@ -111,7 +112,8 @@
         intentService = createMock(IntentService.class);
         random = new Random();
 
-        router = new Router(APPID, intentService, hostService,
+        intentSynchronizer = new IntentSynchronizer(APPID, intentService);
+        router = new Router(APPID, intentSynchronizer, hostService,
                 sdnIpConfigService, interfaceService);
     }
 
@@ -228,8 +230,8 @@
 
         replay(intentService);
 
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
 
         // Add route updates
         for (RouteUpdate update : routeUpdates) {
@@ -239,7 +241,8 @@
         latch.await(5000, TimeUnit.MILLISECONDS);
 
         assertEquals(router.getRoutes().size(), numRoutes);
-        assertEquals(router.getPushedRouteIntents().size(), numRoutes);
+        assertEquals(intentSynchronizer.getPushedRouteIntents().size(),
+                     numRoutes);
 
         verify(intentService);
     }
@@ -295,8 +298,8 @@
 
         replay(intentService);
 
-        router.leaderChanged(true);
-        TestUtils.setField(router, "isActivatedLeader", true);
+        intentSynchronizer.leaderChanged(true);
+        TestUtils.setField(intentSynchronizer, "isActivatedLeader", true);
 
         // Send the add updates first
         for (RouteUpdate update : routeUpdates) {
@@ -314,7 +317,7 @@
         deleteCount.await(5000, TimeUnit.MILLISECONDS);
 
         assertEquals(0, router.getRoutes().size());
-        assertEquals(0, router.getPushedRouteIntents().size());
+        assertEquals(0, intentSynchronizer.getPushedRouteIntents().size());
         verify(intentService);
     }
 
diff --git a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/bgp/BgpSessionManagerTest.java b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/bgp/BgpSessionManagerTest.java
index 5fdd6eb..5f8c075 100644
--- a/apps/sdnip/src/test/java/org/onlab/onos/sdnip/bgp/BgpSessionManagerTest.java
+++ b/apps/sdnip/src/test/java/org/onlab/onos/sdnip/bgp/BgpSessionManagerTest.java
@@ -95,7 +95,7 @@
         //
         bgpSessionManager = new BgpSessionManager(dummyRouteListener);
         // NOTE: We use port 0 to bind on any available port
-        bgpSessionManager.startUp(0);
+        bgpSessionManager.start(0);
 
         // Get the port number the BGP Session Manager is listening on
         Channel serverChannel = TestUtils.getField(bgpSessionManager,
@@ -136,7 +136,7 @@
 
     @After
     public void tearDown() throws Exception {
-        bgpSessionManager.shutDown();
+        bgpSessionManager.stop();
         bgpSessionManager = null;
     }