- 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 versionstatic final TransportVersionReference to the minimum transport version that can be used with CCS.static 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 TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersionstatic final TransportVersion -
Constructor Summary
ConstructorsConstructorDescriptionTransportVersion(int id) Creates an instance of aTransportVersionrecord class. -
Method Summary
Modifier and TypeMethodDescriptionbooleanafter(TransportVersion version) booleanbefore(TransportVersion version) intcompareTo(TransportVersion other) final booleanIndicates whether some other object is "equal to" this one.static TransportVersionfromId(int id) static TransportVersionfromString(String str) final inthashCode()Returns a hash code value for this object.intid()Returns the value of theidrecord component.static booleanisCompatible(TransportVersion version) Returnstrueif the specified version is compatible with this running version of Elasticsearch.static TransportVersionmax(TransportVersion version1, TransportVersion version2) Returns the maximum version ofversion1andversion2static TransportVersionmin(TransportVersion version1, TransportVersion version2) Returns the minimum version ofversion1andversion2booleanonOrAfter(TransportVersion version) booleanonOrBefore(TransportVersion version) static TransportVersiontoString()Returns a string representation of this record class.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_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 aTransportVersionrecord class.- Parameters:
id- the value for theidrecord component
-
-
Method Details
-
readVersion
- Throws:
IOException
-
fromId
-
writeVersion
- Throws:
IOException
-
min
Returns the minimum version ofversion1andversion2 -
max
Returns the maximum version ofversion1andversion2 -
isCompatible
Returnstrueif the specified version is compatible with this running version of Elasticsearch. -
after
-
onOrAfter
-
before
-
onOrBefore
-
fromString
-
compareTo
- Specified by:
compareToin 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 theidrecord component.- Returns:
- the value of the
idrecord component
-