From 3f2f311927a45635339201f400652c145318e632 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 25 Sep 2019 12:33:15 +0200 Subject: [PATCH] Define PayloadVersion.SODIUM_SR1 This adds the PayloadVersion which uses Sodium SR1 normalized node stream. JIRA: CONTROLLER-1919 Change-Id: I3dfa6ea053ea356bb68b458f3d6787904b2904c0 Signed-off-by: Robert Varga --- .../AbstractVersionedShardDataTreeSnapshot.java | 4 +++- .../datastore/persisted/PayloadVersion.java | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 2 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 9e8c5f02c2..96ab0ca5e6 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 @@ -33,6 +33,7 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps case BORON: return new ShardSnapshotState(readSnapshot(in), true); case NEON_SR2: + case SODIUM_SR1: return new ShardSnapshotState(readSnapshot(in), false); case TEST_FUTURE_VERSION: case TEST_PAST_VERSION: @@ -76,7 +77,8 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps switch (version) { case BORON: case NEON_SR2: - // Boron and Sodium snapshots use Java Serialization, but differ in stream format + case SODIUM_SR1: + // Boron, NeonSR2 and Sodium 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 819ede7825..272cc7e80e 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 @@ -71,6 +71,17 @@ 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; + } + }, + /** * Version which is newer than any other version. This version exists purely for testing purposes. */ @@ -137,8 +148,10 @@ public enum PayloadVersion implements WritableObject { return BORON; case 6: return NEON_SR2; + case 7: + return SODIUM_SR1; default: - throw new FutureVersionException(version, NEON_SR2); + throw new FutureVersionException(version, SODIUM_SR1); } } -- 2.36.6