Remove support for payloads older than Sodium SR1 78/96778/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 2 Jul 2021 11:44:59 +0000 (13:44 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 2 Jul 2021 12:17:41 +0000 (14:17 +0200)
Older payloads are not as efficient, nor can they really support
all our datatypes. Prune supported versions to Sodium SR1-and-newer,
retaining 2 years worth of backwards compatibility.

JIRA: CONTROLLER-1985
Change-Id: I5ebabee1ddff37af7c0e0a5dca91db433ca9d5ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java

index 0667f7c0397d367956742d4affb7b326d52ca50d..5e85434e4aa38bba477a3b64bc470a961be317f8 100644 (file)
@@ -31,8 +31,6 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps
     static @NonNull ShardSnapshotState versionedDeserialize(final ObjectInput in) throws IOException {
         final PayloadVersion version = PayloadVersion.readFrom(in);
         switch (version) {
     static @NonNull ShardSnapshotState versionedDeserialize(final ObjectInput in) throws IOException {
         final PayloadVersion version = PayloadVersion.readFrom(in);
         switch (version) {
-            case BORON:
-            case NEON_SR2:
             case SODIUM_SR1:
                 return new ShardSnapshotState(readSnapshot(in), true);
             case MAGNESIUM:
             case SODIUM_SR1:
                 return new ShardSnapshotState(readSnapshot(in), true);
             case MAGNESIUM:
@@ -42,7 +40,7 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps
                 // These versions are never returned and this code is effectively dead
             default:
                 // Not included as default in above switch to ensure we get warnings when new versions are added
                 // These versions are never returned and this code is effectively dead
             default:
                 // Not included as default in above switch to ensure we get warnings when new versions are added
-                throw new IOException("Encountered unhandled version" + version);
+                throw new IOException("Encountered unhandled version " + version);
         }
     }
 
         }
     }
 
@@ -77,11 +75,9 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps
 
     private void versionedSerialize(final ObjectOutput out, final PayloadVersion version) throws IOException {
         switch (version) {
 
     private void versionedSerialize(final ObjectOutput out, final PayloadVersion version) throws IOException {
         switch (version) {
-            case BORON:
-            case NEON_SR2:
             case SODIUM_SR1:
             case MAGNESIUM:
             case SODIUM_SR1:
             case MAGNESIUM:
-                // Boron, NeonSR2, Sodium and Magnesium snapshots use Java Serialization, but differ in stream format
+                // Sodium and Magnesium snapshots use Java Serialization, but differ in stream format
                 out.writeObject(this);
                 return;
             case TEST_FUTURE_VERSION:
                 out.writeObject(this);
                 return;
             case TEST_FUTURE_VERSION:
index eb94a70bf54ea7330aff5e3242ff20089eb3c766..7d51f4660c58057e3a456ceb4f502cc37a836822 100644 (file)
@@ -50,30 +50,8 @@ public enum PayloadVersion implements WritableObject {
     },
 
     /**
     },
 
     /**
-     * Initial ABI version, as shipped with Boron Simultaneous release.
-     */
-    // We seed the initial version to be the same as DataStoreVersions.BORON_VERSION for compatibility reasons.
-    BORON(5) {
-        @Override
-        public NormalizedNodeStreamVersion getStreamVersion() {
-            return NormalizedNodeStreamVersion.LITHIUM;
-        }
-    },
-
-    /**
-     * Revised payload version. Payloads remain the same as {@link #BORON}, but messages bearing QNames in any shape
-     * are using {@link NormalizedNodeStreamVersion#NEON_SR2}, which improves encoding.
-     */
-    NEON_SR2(6) {
-        @Override
-        public NormalizedNodeStreamVersion getStreamVersion() {
-            return NormalizedNodeStreamVersion.NEON_SR2;
-        }
-    },
-
-    /**
-     * 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.
+     * ABI version as shipped in Sodium SR1 Simultaneous Release. QName-bearing messages are using
+     * {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding.
      */
     SODIUM_SR1(7) {
         @Override
      */
     SODIUM_SR1(7) {
         @Override
@@ -154,11 +132,9 @@ public enum PayloadVersion implements WritableObject {
             case 2:
             case 3:
             case 4:
             case 2:
             case 3:
             case 4:
-                throw new PastVersionException(version, BORON);
             case 5:
             case 5:
-                return BORON;
             case 6:
             case 6:
-                return NEON_SR2;
+                throw new PastVersionException(version, SODIUM_SR1);
             case 7:
                 return SODIUM_SR1;
             case 8:
             case 7:
                 return SODIUM_SR1;
             case 8: