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;