Use allocateNextId when building new NextObjective

In order to avoid nextId collisions, all users of the flow objective
service should use the provided allocateNextId() method when
constructing new NextObjectives. I found one instance where this was not
the case: CordMcast.

Solution: removed private id generator from CordMacst and replaced it
with allocateNextId.

Change-Id: I134931b58c524291ae937dd6f0051ee549236734
diff --git a/src/main/java/org/onosproject/cordmcast/CordMcast.java b/src/main/java/org/onosproject/cordmcast/CordMcast.java
index 0981879..6611414 100644
--- a/src/main/java/org/onosproject/cordmcast/CordMcast.java
+++ b/src/main/java/org/onosproject/cordmcast/CordMcast.java
@@ -77,7 +77,6 @@
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Strings.isNullOrEmpty;
@@ -129,9 +128,6 @@
     //TODO: move this to a ec map
     private Map<IpAddress, Integer> groups = Maps.newConcurrentMap();
 
-    //TODO: move this to distributed atomic long
-    private AtomicInteger channels = new AtomicInteger(0);
-
     private ApplicationId appId;
 
     @Property(name = "mcastVlan", intValue = DEFAULT_MCAST_VLAN,
@@ -331,7 +327,7 @@
         final AtomicBoolean sync = new AtomicBoolean(false);
 
         Integer nextId = groups.computeIfAbsent(route.group(), (g) -> {
-            Integer id = allocateId();
+            Integer id = flowObjectiveService.allocateNextId();
 
             NextObjective next = DefaultNextObjective.builder()
                     .fromApp(appId)
@@ -497,10 +493,6 @@
         mcastRoutes.forEach(this::removeRemoteRoute);
     }
 
-    private Integer allocateId() {
-        return channels.getAndIncrement();
-    }
-
     private WebResource.Builder getClientBuilder(String uri) {
         Client client = Client.create();
         client.setConnectTimeout(DEFAULT_REST_TIMEOUT_MS);