Enum Class PayloadVersion
java.lang.Object
java.lang.Enum<PayloadVersion>
org.opendaylight.controller.cluster.datastore.persisted.PayloadVersion
- All Implemented Interfaces:
Serializable
,Comparable<PayloadVersion>
,Constable
,WritableObject
Enumeration of all ABI versions supported by this implementation of persistence. An ABI version has to be bumped
whenever:
- a new event is defined
- serialization format is changed
This version effectively defines the protocol version between actors participating on a particular shard. A shard participant instance should oppose RAFT candidates which produce persistence of an unsupported version. If a follower encounters an unsupported version it must not become fully-operational, as it does not have an accurate view of shard state.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionDeprecated, for removal: This API element is subject to removal in a future version.ABI version shipped enabled2023.09 Potassium
.Version which is newer than any other version.Version which is older than any other version. -
Method Summary
Modifier and TypeMethodDescriptionstatic @NonNull PayloadVersion
current()
Return the codebase-native persistence version.abstract @NonNull NormalizedNodeStreamVersion
Return the NormalizedNode stream version corresponding to this particular ABI.static @NonNull PayloadVersion
Read anPayloadVersion
from aDataInput
.short
Return the unsigned short integer identifying this version.static @NonNull PayloadVersion
valueOf
(short version) Return thePayloadVersion
corresponding to an unsigned short integer.static PayloadVersion
Returns the enum constant of this class with the specified name.static PayloadVersion[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.void
writeTo
(DataOutput out)
-
Enum Constant Details
-
TEST_PAST_VERSION
Version which is older than any other version. This version exists purely for testing purposes. -
CHLORINE_SR2
Deprecated, for removal: This API element is subject to removal in a future version.UsePOTASSIUM
instead.ABI version shipped enabled2022.09 Chlorine SR2
. This version revises the serialization format of payloads proxies to reduce their size. Otherwise this format is equivalent to#MAGNESIUM
. -
POTASSIUM
ABI version shipped enabled2023.09 Potassium
. This version removes Augmentation identifier and nodes. Otherwise this format is equivalent toCHLORINE_SR2
. -
TEST_FUTURE_VERSION
Version which is newer than any other version. This version exists purely for testing purposes.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
shortValue
public short shortValue()Return the unsigned short integer identifying this version.- Returns:
- Unsigned short integer identifying this version
-
getStreamVersion
Return the NormalizedNode stream version corresponding to this particular ABI.- Returns:
- Stream Version to use for this ABI version
-
current
Return the codebase-native persistence version. This version is the default version allocated to messages at runtime. Conversion to previous versions may incur additional overhead (such as object allocation).- Returns:
- Current
PayloadVersion
-
valueOf
public static @NonNull PayloadVersion valueOf(short version) throws FutureVersionException, PastVersionException Return thePayloadVersion
corresponding to an unsigned short integer. This method is provided for callers which provide their own recovery strategy in case of version incompatibility.- Parameters:
version
- Short integer as returned fromshortValue()
- Returns:
PayloadVersion
- Throws:
FutureVersionException
- if the specified integer identifies a future versionPastVersionException
- if the specified integer identifies a past version which is no longer supported
-
writeTo
- Specified by:
writeTo
in interfaceWritableObject
- Throws:
IOException
-
readFrom
Read anPayloadVersion
from aDataInput
. This method is provided for callers which do not have a recovery strategy for dealing with unsupported versions.- Parameters:
in
- Input from which to read- Returns:
- An
PayloadVersion
- Throws:
IOException
- If read fails or an unsupported version is encountered
-
POTASSIUM
instead.