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=c809029a0fbe9c74e4fcd302eaf8e809cf009cd2;hb=refs%2Fchanges%2F73%2F82773%2F2;hp=60f51ddf5e7a94754d96fe3d5fc4f6275c743cb4;hpb=dd16edd5a758f0e51727de511f9868c72b2a1dd0;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 60f51ddf5e..c809029a0f 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 @@ -11,7 +11,9 @@ import java.io.Externalizable; import java.io.IOException; 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; /** * Abstract base class for a versioned Externalizable message. @@ -26,33 +28,37 @@ public abstract class VersionedExternalizableMessage implements Externalizable, public VersionedExternalizableMessage() { } - public VersionedExternalizableMessage(short version) { - this.version = version <= DataStoreVersions.CURRENT_VERSION ? version: DataStoreVersions.CURRENT_VERSION; + public VersionedExternalizableMessage(final short version) { + this.version = version <= DataStoreVersions.CURRENT_VERSION ? version : DataStoreVersions.CURRENT_VERSION; } public short getVersion() { return version; } + protected final @NonNull NormalizedNodeStreamVersion getStreamVersion() { + return version < DataStoreVersions.NEON_SR2_VERSION + ? NormalizedNodeStreamVersion.LITHIUM : NormalizedNodeStreamVersion.NEON_SR2; + } + @Override - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { version = in.readShort(); } @Override - public void writeExternal(ObjectOutput out) throws IOException { + public void writeExternal(final ObjectOutput out) throws IOException { out.writeShort(version); } - /** - * @deprecated Pre-Boron compatibility. - */ - @Deprecated - protected abstract Object newLegacySerializedInstance(); - @Override public final Object toSerializable() { - return getVersion() >= DataStoreVersions.BORON_VERSION ? this : newLegacySerializedInstance(); + if (getVersion() < DataStoreVersions.BORON_VERSION) { + throw new UnsupportedOperationException("Versions prior to " + DataStoreVersions.BORON_VERSION + + " are not supported"); + } + + return this; } @Override