From 422ac9fbe65c02f942c1fed41ff4aa96545f4224 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 25 Sep 2019 12:45:18 +0200 Subject: [PATCH] Define PayloadVersion.MAGNESIUM This adds the PayloadVersion which uses Magnesium normalized node stream. JIRA: CONTROLLER-1919 Change-Id: Ie43e9932a19bd19c92f14890da13646bf56e2f6f 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 96ab0ca5e6..9e6402cda9 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 @@ -34,6 +34,7 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps return new ShardSnapshotState(readSnapshot(in), true); case NEON_SR2: case SODIUM_SR1: + case MAGNESIUM: return new ShardSnapshotState(readSnapshot(in), false); case TEST_FUTURE_VERSION: case TEST_PAST_VERSION: @@ -78,7 +79,8 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps case BORON: case NEON_SR2: case SODIUM_SR1: - // Boron, NeonSR2 and Sodium snapshots use Java Serialization, but differ in stream format + case MAGNESIUM: + // Boron, NeonSR2, 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 272cc7e80e..921c9fca96 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 @@ -82,6 +82,17 @@ public enum PayloadVersion implements WritableObject { } }, + /** + * 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. */ @@ -150,8 +161,10 @@ public enum PayloadVersion implements WritableObject { return NEON_SR2; case 7: return SODIUM_SR1; + case 8: + return MAGNESIUM; default: - throw new FutureVersionException(version, SODIUM_SR1); + throw new FutureVersionException(version, MAGNESIUM); } } -- 2.36.6