Compaction of discrete resources with range based representation
This resolves ONOS-4281
Change-Id: I0739ba94cc0b3ce617e2db44307fef396dcfb942
(cherry picked from commit 34e2c1c223ec62c85c2613c0d899a0cc06b63f33)
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
index 549675b..dd78e50 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
@@ -23,6 +23,7 @@
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.onlab.util.Tools;
+import org.onlab.util.KryoNamespace;
import org.onosproject.net.resource.ContinuousResource;
import org.onosproject.net.resource.ContinuousResourceId;
import org.onosproject.net.resource.DiscreteResource;
@@ -45,7 +46,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
@@ -70,11 +70,14 @@
implements ResourceStore {
private static final Logger log = LoggerFactory.getLogger(ConsistentResourceStore.class);
- static final Serializer SERIALIZER = Serializer.using(
- Arrays.asList(KryoNamespaces.API),
- UnifiedDiscreteResources.class,
- NonEncodableDiscreteResources.class,
- ContinuousResourceAllocation.class);
+ static final Serializer SERIALIZER = Serializer.using(KryoNamespace.newBuilder()
+ .register(KryoNamespaces.API)
+ .register(UnifiedDiscreteResources.class)
+ .register(new EncodableDiscreteResourcesSerializer(), EncodableDiscreteResources.class)
+ .register(NonEncodableDiscreteResources.class)
+ .register(EmptyDiscreteResources.class)
+ .register(ContinuousResourceAllocation.class)
+ .build());
// TODO: We should provide centralized values for this
static final int MAX_RETRIES = 5;