New ApplicationStore that uses a single ConsistentMap to track all app related state
Change-Id: Ieacc97f213add8ece8f462cd9971fb6ef3d0dde5
diff --git a/core/store/dist/src/main/java/org/onosproject/store/core/impl/DistributedApplicationIdStore.java b/core/store/dist/src/main/java/org/onosproject/store/core/impl/DistributedApplicationIdStore.java
index cc98ac5..2c7b554 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/core/impl/DistributedApplicationIdStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/core/impl/DistributedApplicationIdStore.java
@@ -38,7 +38,6 @@
import org.onosproject.store.service.MapEventListener;
import org.onosproject.store.service.Serializer;
import org.onosproject.store.service.StorageService;
-import org.onosproject.store.service.Versioned;
import org.slf4j.Logger;
@@ -109,8 +108,14 @@
@Override
public ApplicationId registerApplication(String name) {
- return Versioned.valueOrNull(registeredIds.computeIfAbsent(name,
- key -> new DefaultApplicationId((int) appIdCounter.incrementAndGet(), name)));
+ ApplicationId exisitingAppId = registeredIds.asJavaMap().get(name);
+ if (exisitingAppId == null) {
+ ApplicationId newAppId = new DefaultApplicationId((int) appIdCounter.incrementAndGet(), name);
+ exisitingAppId = registeredIds.asJavaMap().putIfAbsent(name, newAppId);
+ return exisitingAppId == null ? newAppId : exisitingAppId;
+ } else {
+ return exisitingAppId;
+ }
}
private void primeIdToAppIdCache() {