Skip to content

Commit 524ecc7

Browse files
authored
Adjust version extension signature (#96898)
Now that TransportVersion.current() is lazily evaluated, version extensions can return fully formed TransportVersion objects. This commit adjusts the signature of the extension to return TransportVersion instead of its id. It also adds some validation that the version returned doesn't try to downgrade to a version lower than what is known in server constants.
1 parent a8fbd24 commit 524ecc7

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

server/src/main/java/org/elasticsearch/TransportVersion.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,9 @@ private static TransportVersion findCurrent(TransportVersion fallback) {
152152
if (versionExtension == null) {
153153
return fallback;
154154
}
155-
return new TransportVersion(versionExtension.getCurrentTransportVersionId());
155+
var version = versionExtension.getCurrentTransportVersion();
156+
assert version.onOrAfter(fallback);
157+
return version;
156158
}
157159
}
158160

server/src/main/java/org/elasticsearch/internal/VersionExtension.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,20 @@
88

99
package org.elasticsearch.internal;
1010

11+
import org.elasticsearch.TransportVersion;
12+
1113
import java.util.ServiceLoader;
1214

1315
/**
1416
* Allows plugging in current version elements.
1517
*/
1618
public interface VersionExtension {
1719
/**
18-
* Returns the version id of the current transport version.
19-
* Note this cannot return a TransportVersion object because it needs to be
20-
* called during static initialization of TransportVersion.
20+
* Returns the {@link TransportVersion} that Elasticsearch should use.
21+
* <p>
22+
* This must be at least equal to the latest version found in {@link TransportVersion} V_* constants.
2123
*/
22-
int getCurrentTransportVersionId();
24+
TransportVersion getCurrentTransportVersion();
2325

2426
/**
2527
* Loads a single VersionExtension, or returns {@code null} if none are found.

0 commit comments

Comments
 (0)