Changing Intent Ids to use explicit id assignment
Change-Id: I5a4bff87842c37a869e7691b353529eaefc929db
diff --git a/core/net/src/main/java/org/onlab/onos/core/impl/CoreManager.java b/core/net/src/main/java/org/onlab/onos/core/impl/CoreManager.java
index ebc4ed6..a2611ed 100644
--- a/core/net/src/main/java/org/onlab/onos/core/impl/CoreManager.java
+++ b/core/net/src/main/java/org/onlab/onos/core/impl/CoreManager.java
@@ -23,6 +23,8 @@
import org.onlab.onos.core.ApplicationId;
import org.onlab.onos.core.ApplicationIdStore;
import org.onlab.onos.core.CoreService;
+import org.onlab.onos.core.IdBlockStore;
+import org.onlab.onos.core.IdGenerator;
import org.onlab.onos.core.Version;
import org.onlab.util.Tools;
@@ -35,7 +37,7 @@
/**
* Core service implementation.
*/
-@Component
+@Component(immediate = true)
@Service
public class CoreManager implements CoreService {
@@ -45,6 +47,9 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected ApplicationIdStore applicationIdStore;
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected IdBlockStore idBlockStore;
+
@Activate
public void activate() {
List<String> versionLines = Tools.slurp(VERSION_FILE);
@@ -74,4 +79,11 @@
return applicationIdStore.registerApplication(name);
}
+ @Override
+ public IdGenerator getIdGenerator(String topic) {
+ // FIXME this should be created lazily (once per topic)
+ IdBlockAllocator allocator = new StoreBasedIdBlockAllocator(topic, idBlockStore);
+ return new BlockAllocatorBasedIdGenerator(allocator);
+ }
+
}