- 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 TransportVersionReference to the current transport versionfinal intstatic final TransportVersionReference to the earliest compatible transport version to this version of the codebasestatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersion -
Method Summary
Modifier and TypeMethodDescriptionbooleanafter(TransportVersion version) booleanbefore(TransportVersion version) Deprecated, for removal: This API element is subject to removal in a future version.intcompareTo(TransportVersion other) booleanstatic TransportVersionfromId(int id) static Collection<TransportVersion>returns a sorted collection of declared transport version constantsinthashCode()booleanisCompatible(TransportVersion version) Deprecated, for removal: This API element is subject to removal in a future version.static TransportVersionmax(TransportVersion version1, TransportVersion version2) Returns the maximum version ofversion1andversion2static TransportVersionmin(TransportVersion version1, TransportVersion version2) Returns the minimum version ofversion1andversion2Deprecated, for removal: This API element is subject to removal in a future version.booleanonOrAfter(TransportVersion version) booleanonOrBefore(TransportVersion version) static TransportVersiontoString()static voidwriteVersion(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 ofversion1andversion2 -
max
Returns the maximum version ofversion1andversion2 -
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 callingminimumCompatibilityVersionon arbitrary Version instances. Code calling this should be refactored to not do this. -
after
-
onOrAfter
-
before
-
onOrBefore
-
compareTo
- Specified by:
compareToin interfaceComparable<TransportVersion>
-
toString
-
equals
-
hashCode
public int hashCode()
-