- All Implemented Interfaces:
Comparable<TransportVersion>
Prior to 8.7.0, the node Version
was used everywhere. This class separates the wire protocol version
from the running node version. Each node version has a reference to a specific transport version used by that node.
Each transport version constant has an id number, which for versions prior to 8.7.0 is the same as the node version for backwards compatibility. There is also a unique id string. This is not actually used in the protocol, but is there to ensure each protocol version is only added to the source file once. This string needs to be unique (here, a UUID, but can be any other unique nonempty string). If two concurrent PRs added the same protocol version, the unique string causes a git conflict, ensuring the second PR to be merged must be updated with the next free version. Without the unique id string, git will happily merge the two versions together, causing problems when you try to upgrade between those two PRs.
When adding new transport versions, it is recommended to leave a gap in the id number (say, 100) to leave space for any intermediate fixes that may be needed in the future.
The earliest compatible version is hardcoded at MINIMUM_COMPATIBLE
. Previously, this was dynamically calculated
from the major/minor versions of Version
, but TransportVersion
does not have separate major/minor version numbers.
So the minimum compatible version needs to be hard-coded as the transport version of the minimum compatible node version.
That variable should be updated appropriately whenever we do a major version release.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final TransportVersion
Reference to the current transport versionfinal int
static final TransportVersion
Reference to the earliest compatible transport version to this version of the codebasestatic final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
-
Method Summary
Modifier and TypeMethodDescriptionboolean
after
(TransportVersion version) boolean
before
(TransportVersion version) Deprecated, for removal: This API element is subject to removal in a future version.int
compareTo
(TransportVersion other) boolean
static TransportVersion
fromId
(int id) static Collection<TransportVersion>
returns a sorted collection of declared transport version constantsint
hashCode()
boolean
isCompatible
(TransportVersion version) Deprecated, for removal: This API element is subject to removal in a future version.static TransportVersion
max
(TransportVersion version1, TransportVersion version2) Returns the maximum version ofversion1
andversion2
static TransportVersion
min
(TransportVersion version1, TransportVersion version2) Returns the minimum version ofversion1
andversion2
Deprecated, for removal: This API element is subject to removal in a future version.boolean
onOrAfter
(TransportVersion version) boolean
onOrBefore
(TransportVersion version) static TransportVersion
toString()
static void
writeVersion
(TransportVersion version, StreamOutput out)
-
Field Details
-
ZERO
-
V_7_0_0
-
V_7_0_1
-
V_7_1_0
-
V_7_1_1
-
V_7_2_0
-
V_7_2_1
-
V_7_3_0
-
V_7_3_1
-
V_7_3_2
-
V_7_4_0
-
V_7_4_1
-
V_7_4_2
-
V_7_5_0
-
V_7_5_1
-
V_7_5_2
-
V_7_6_0
-
V_7_6_1
-
V_7_6_2
-
V_7_7_0
-
V_7_7_1
-
V_7_8_0
-
V_7_8_1
-
V_7_9_0
-
V_7_9_1
-
V_7_9_2
-
V_7_9_3
-
V_7_10_0
-
V_7_10_1
-
V_7_10_2
-
V_7_11_0
-
V_7_11_1
-
V_7_11_2
-
V_7_12_0
-
V_7_12_1
-
V_7_13_0
-
V_7_13_1
-
V_7_13_2
-
V_7_13_3
-
V_7_13_4
-
V_7_14_0
-
V_7_14_1
-
V_7_14_2
-
V_7_15_0
-
V_7_15_1
-
V_7_15_2
-
V_7_16_0
-
V_7_16_1
-
V_7_16_2
-
V_7_16_3
-
V_7_17_0
-
V_7_17_1
-
V_7_17_2
-
V_7_17_3
-
V_7_17_4
-
V_7_17_5
-
V_7_17_6
-
V_7_17_7
-
V_7_17_8
-
V_7_17_9
-
V_7_17_10
-
V_8_0_0
-
V_8_0_1
-
V_8_1_0
-
V_8_1_1
-
V_8_1_2
-
V_8_1_3
-
V_8_2_0
-
V_8_2_1
-
V_8_2_2
-
V_8_2_3
-
V_8_3_0
-
V_8_3_1
-
V_8_3_2
-
V_8_3_3
-
V_8_4_0
-
V_8_4_1
-
V_8_4_2
-
V_8_4_3
-
V_8_5_0
-
V_8_5_1
-
V_8_5_2
-
V_8_5_3
-
V_8_5_4
-
V_8_6_0
-
V_8_6_1
-
V_8_6_2
-
V_8_6_3
-
V_8_7_0
-
CURRENT
Reference to the current transport version -
MINIMUM_COMPATIBLE
Reference to the earliest compatible transport version to this version of the codebase -
id
public final int id
-
-
Method Details
-
readVersion
- Throws:
IOException
-
fromId
-
writeVersion
- Throws:
IOException
-
min
Returns the minimum version ofversion1
andversion2
-
max
Returns the maximum version ofversion1
andversion2
-
getAllVersions
returns a sorted collection of declared transport version constants -
minimumCompatibilityVersion
Deprecated, for removal: This API element is subject to removal in a future version.Placeholder method for code compatibility with code callingCURRENT.minimumCompatibilityVersion
. -
isCompatible
Deprecated, for removal: This API element is subject to removal in a future version. -
calculateMinimumCompatVersion
Deprecated, for removal: This API element is subject to removal in a future version.Placeholder for code callingminimumCompatibilityVersion
on arbitrary Version instances. Code calling this should be refactored to not do this. -
after
-
onOrAfter
-
before
-
onOrBefore
-
compareTo
- Specified by:
compareTo
in interfaceComparable<TransportVersion>
-
toString
-
equals
-
hashCode
public int hashCode()
-