X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmessages%2FVersionedExternalizableMessage.java;h=687905d7225991b4bf266987e93bed153368485c;hb=99f80f27bee37bb23e345420bf14bb7bb4793c28;hp=c809029a0fbe9c74e4fcd302eaf8e809cf009cd2;hpb=23fa5a5c2a0748e12b5a704f2dc2ed3bc7169a58;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/VersionedExternalizableMessage.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/VersionedExternalizableMessage.java index c809029a0f..687905d722 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/VersionedExternalizableMessage.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/VersionedExternalizableMessage.java @@ -13,7 +13,7 @@ import java.io.ObjectInput; import java.io.ObjectOutput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeStreamVersion; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; /** * Abstract base class for a versioned Externalizable message. @@ -26,19 +26,25 @@ public abstract class VersionedExternalizableMessage implements Externalizable, private short version = DataStoreVersions.CURRENT_VERSION; public VersionedExternalizableMessage() { + // Required for externalizable } public VersionedExternalizableMessage(final short version) { this.version = version <= DataStoreVersions.CURRENT_VERSION ? version : DataStoreVersions.CURRENT_VERSION; } - public short getVersion() { + public final short getVersion() { return version; } protected final @NonNull NormalizedNodeStreamVersion getStreamVersion() { - return version < DataStoreVersions.NEON_SR2_VERSION - ? NormalizedNodeStreamVersion.LITHIUM : NormalizedNodeStreamVersion.NEON_SR2; + if (version >= DataStoreVersions.PHOSPHORUS_VERSION) { + return NormalizedNodeStreamVersion.MAGNESIUM; + } else if (version == DataStoreVersions.SODIUM_SR1_VERSION) { + return NormalizedNodeStreamVersion.SODIUM_SR1; + } else { + throw new IllegalStateException("Unsupported version " + version); + } } @Override @@ -53,9 +59,10 @@ public abstract class VersionedExternalizableMessage implements Externalizable, @Override public final Object toSerializable() { - if (getVersion() < DataStoreVersions.BORON_VERSION) { - throw new UnsupportedOperationException("Versions prior to " + DataStoreVersions.BORON_VERSION - + " are not supported"); + final short ver = getVersion(); + if (ver < DataStoreVersions.SODIUM_SR1_VERSION) { + throw new UnsupportedOperationException("Version " + ver + + " is older than the oldest version supported version " + DataStoreVersions.SODIUM_SR1_VERSION); } return this;