From 599ac55741f8c06ce08ff6002095f53653643573 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Jul 2021 13:44:59 +0200 Subject: [PATCH] Remove support for payloads older than Sodium SR1 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 --- ...bstractVersionedShardDataTreeSnapshot.java | 8 ++--- .../datastore/persisted/PayloadVersion.java | 30 ++----------------- 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java index 0667f7c039..5e85434e4a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java @@ -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) { - case BORON: - case NEON_SR2: 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 - 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) { - case BORON: - case NEON_SR2: 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: diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java index eb94a70bf5..7d51f4660c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java @@ -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 @@ -154,11 +132,9 @@ public enum PayloadVersion implements WritableObject { case 2: case 3: case 4: - throw new PastVersionException(version, BORON); case 5: - return BORON; case 6: - return NEON_SR2; + throw new PastVersionException(version, SODIUM_SR1); case 7: return SODIUM_SR1; case 8: -- 2.36.6