- 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 versionstatic final TransportVersion
Reference to the minimum transport version that can be used with CCS.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
static final TransportVersion
static final TransportVersion
static final TransportVersion
static final TransportVersion
-
Constructor Summary
ConstructorsConstructorDescriptionTransportVersion
(int id) Creates an instance of aTransportVersion
record class. -
Method Summary
Modifier and TypeMethodDescriptionboolean
after
(TransportVersion version) boolean
before
(TransportVersion version) int
compareTo
(TransportVersion other) final boolean
Indicates whether some other object is "equal to" this one.static TransportVersion
fromId
(int id) static TransportVersion
fromString
(String str) final int
hashCode()
Returns a hash code value for this object.int
id()
Returns the value of theid
record component.static boolean
isCompatible
(TransportVersion version) Returnstrue
if the specified version is compatible with this running version of Elasticsearch.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
boolean
onOrAfter
(TransportVersion version) boolean
onOrBefore
(TransportVersion version) static TransportVersion
toString()
Returns a string representation of this record class.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_7_17_11
-
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_7_0
-
V_8_7_1
-
V_8_8_0
-
V_8_8_1
-
V_8_8_2
-
CURRENT
Reference to the current transport version -
MINIMUM_COMPATIBLE
Reference to the earliest compatible transport version to this version of the codebase -
MINIMUM_CCS_VERSION
Reference to the minimum transport version that can be used with CCS. This should be the transport version used by the previous minor release.
-
-
Constructor Details
-
TransportVersion
public TransportVersion(int id) Creates an instance of aTransportVersion
record class.- Parameters:
id
- the value for theid
record component
-
-
Method Details
-
readVersion
- Throws:
IOException
-
fromId
-
writeVersion
- Throws:
IOException
-
min
Returns the minimum version ofversion1
andversion2
-
max
Returns the maximum version ofversion1
andversion2
-
isCompatible
Returnstrue
if the specified version is compatible with this running version of Elasticsearch. -
after
-
onOrAfter
-
before
-
onOrBefore
-
fromString
-
compareTo
- Specified by:
compareTo
in interfaceComparable<TransportVersion>
-
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='. -
id
public int id()Returns the value of theid
record component.- Returns:
- the value of the
id
record component
-