Define PayloadVersion.MAGNESIUM
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / persisted / PayloadVersion.java
index 819ede782592945c446feed9eadbe2df32c77b21..921c9fca96cfc505f17a6b3be25564f3cad69163 100644 (file)
@@ -71,6 +71,28 @@ public enum PayloadVersion implements WritableObject {
         }
     },
 
+    /**
+     * Revised payload version. Payloads remain the same as {@link #NEON_SR2}, but messages bearing QNames in any shape
+     * are using {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding.
+     */
+    SODIUM_SR1(7) {
+        @Override
+        public NormalizedNodeStreamVersion getStreamVersion() {
+            return NormalizedNodeStreamVersion.SODIUM_SR1;
+        }
+    },
+
+    /**
+     * Revised payload version. Payloads remain the same as {@link #SODIUM_SR1}, but messages bearing QNames in any
+     * shape are using {@link NormalizedNodeStreamVersion#MAGNESIUM}, which improves encoding.
+     */
+    MAGNESIUM(8) {
+        @Override
+        public NormalizedNodeStreamVersion getStreamVersion() {
+            return NormalizedNodeStreamVersion.MAGNESIUM;
+        }
+    },
+
     /**
      * Version which is newer than any other version. This version exists purely for testing purposes.
      */
@@ -137,8 +159,12 @@ public enum PayloadVersion implements WritableObject {
                 return BORON;
             case 6:
                 return NEON_SR2;
+            case 7:
+                return SODIUM_SR1;
+            case 8:
+                return MAGNESIUM;
             default:
-                throw new FutureVersionException(version, NEON_SR2);
+                throw new FutureVersionException(version, MAGNESIUM);
         }
     }