Add ABIVersion.CHLORINE_SR2 77/103477/14
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Nov 2022 13:24:23 +0000 (14:24 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 1 Dec 2022 15:45:21 +0000 (16:45 +0100)
We have a fresh set of serialization proxies used when we have a version
newer than MAGNESIUM. This patch defines that new version.

JIRA: CONTROLLER-2051
Change-Id: Id91201652afc9dd55d4b44c73bd2d9d3fa3853d3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/ABIVersion.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java

index 716083156b32aca9fe1e9c0eaf52b4eeddf84e13..b4278f7d7909a6c0f7f3ed9dfe59893b4672e38f 100644 (file)
@@ -76,6 +76,16 @@ public enum ABIVersion implements WritableObject {
             return NormalizedNodeStreamVersion.MAGNESIUM;
         }
     },
+    /**
+     * Revised ABI version. The messages remain the same as {@link #MAGNESIUM}, the serialization proxies in use are
+     * flat objects without any superclasses.
+     */
+    CHLORINE_SR2(9) {
+        @Override
+        public NormalizedNodeStreamVersion getStreamVersion() {
+            return NormalizedNodeStreamVersion.MAGNESIUM;
+        }
+    },
 
     /**
      * Version which is newer than any other version. This version exists purely for testing purposes.
@@ -132,7 +142,8 @@ public enum ABIVersion implements WritableObject {
             case 6 -> NEON_SR2;
             case 7 -> SODIUM_SR1;
             case 8 -> MAGNESIUM;
-            default -> throw new FutureVersionException(value, MAGNESIUM);
+            case 9 -> CHLORINE_SR2;
+            default -> throw new FutureVersionException(value, CHLORINE_SR2);
         };
     }
 
index 86c91ef9553bd421085d079687d049d442e64ae4..54cf40a8b00b625c64fd31ee4d0e616a7157baad 100644 (file)
@@ -151,7 +151,7 @@ public abstract class Message<T extends WritableIdentifier, C extends Message<T,
         }
 
         return switch (toVersion) {
-            case BORON, NEON_SR2, SODIUM_SR1, MAGNESIUM -> verifyNotNull(cloneAsVersion(toVersion));
+            case BORON, NEON_SR2, SODIUM_SR1, MAGNESIUM, CHLORINE_SR2 -> verifyNotNull(cloneAsVersion(toVersion));
             default -> throw new IllegalArgumentException("Unhandled ABI version " + toVersion);
         };
     }