Skip to content

Commit d6473e3

Browse files
rjernstsmalyshev
authored andcommitted
Update bundled JDK to Java 24 (elastic#125159)
Bumping bundled JDK to Java 24 since it is now GA.
1 parent bb52cb0 commit d6473e3

File tree

5 files changed

+67
-46
lines changed

5 files changed

+67
-46
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/OracleOpenJdkToolchainResolver.java

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,9 @@ public String url(String os, String arch, String extension) {
5858
}
5959
}
6060

61-
record EarlyAccessJdkBuild(JavaLanguageVersion languageVersion) implements JdkBuild {
61+
record EarlyAccessJdkBuild(JavaLanguageVersion languageVersion, String buildNumber) implements JdkBuild {
6262
@Override
6363
public String url(String os, String arch, String extension) {
64-
String buildNumber = resolveBuildNumber(languageVersion.asInt());
6564
return "https://download.java.net/java/early_access/jdk"
6665
+ languageVersion.asInt()
6766
+ "/"
@@ -77,29 +76,6 @@ public String url(String os, String arch, String extension) {
7776
+ "_bin."
7877
+ extension;
7978
}
80-
81-
private static String resolveBuildNumber(int version) {
82-
String buildNumber = System.getProperty("runtime.java." + version + ".build");
83-
if (buildNumber != null) {
84-
System.out.println("buildNumber = " + buildNumber);
85-
return buildNumber;
86-
}
87-
buildNumber = System.getProperty("runtime.java.build");
88-
if (buildNumber != null) {
89-
System.out.println("buildNumber2 = " + buildNumber);
90-
return buildNumber;
91-
}
92-
93-
switch (version) {
94-
case 24:
95-
// latest explicitly found build number for 24
96-
return "29";
97-
case 25:
98-
return "3";
99-
default:
100-
throw new IllegalArgumentException("Unsupported version " + version);
101-
}
102-
}
10379
}
10480

10581
private static final Pattern VERSION_PATTERN = Pattern.compile(
@@ -114,15 +90,20 @@ private static String resolveBuildNumber(int version) {
11490

11591
// package private so it can be replaced by tests
11692
List<JdkBuild> builds = List.of(
117-
getBundledJdkBuild(),
118-
// release candidate of JDK 24
119-
new ReleaseJdkBuild(JavaLanguageVersion.of(24), "download.java.net", "24", "36", "1f9ff9062db4449d8ca828c504ffae90"),
120-
new EarlyAccessJdkBuild(JavaLanguageVersion.of(25))
93+
getBundledJdkBuild(VersionProperties.getBundledJdkVersion(), VersionProperties.getBundledJdkMajorVersion()),
94+
getEarlyAccessBuild(JavaLanguageVersion.of(25), "3")
12195
);
12296

123-
private JdkBuild getBundledJdkBuild() {
124-
String bundledJdkVersion = VersionProperties.getBundledJdkVersion();
125-
JavaLanguageVersion bundledJdkMajorVersion = JavaLanguageVersion.of(VersionProperties.getBundledJdkMajorVersion());
97+
static EarlyAccessJdkBuild getEarlyAccessBuild(JavaLanguageVersion languageVersion, String buildNumber) {
98+
// first try the unversioned override, then the versioned override which has higher precedence
99+
buildNumber = System.getProperty("runtime.java.build", buildNumber);
100+
buildNumber = System.getProperty("runtime.java." + languageVersion.asInt() + ".build", buildNumber);
101+
102+
return new EarlyAccessJdkBuild(languageVersion, buildNumber);
103+
}
104+
105+
static JdkBuild getBundledJdkBuild(String bundledJdkVersion, String bundledJkdMajorVersionString) {
106+
JavaLanguageVersion bundledJdkMajorVersion = JavaLanguageVersion.of(bundledJkdMajorVersionString);
126107
Matcher jdkVersionMatcher = VERSION_PATTERN.matcher(bundledJdkVersion);
127108
if (jdkVersionMatcher.matches() == false) {
128109
throw new IllegalStateException("Unable to parse bundled JDK version " + bundledJdkVersion);

build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/OracleOpenJdkToolchainResolverSpec.groovy

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,17 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
3030
return null
3131
}
3232
}
33-
toolChain.builds = toolChain.builds + [
33+
toolChain.builds = [
3434
new OracleOpenJdkToolchainResolver.ReleaseJdkBuild(
3535
JavaLanguageVersion.of(20),
3636
"download.oracle.com",
3737
"20",
3838
"36",
3939
"bdc68b4b9cbc4ebcb30745c85038d91d"
40-
)]
40+
),
41+
OracleOpenJdkToolchainResolver.getBundledJdkBuild("24+36@1f9ff9062db4449d8ca828c504ffae90", "24"),
42+
OracleOpenJdkToolchainResolver.getEarlyAccessBuild(JavaLanguageVersion.of(25), "3")
43+
]
4144
toolChain
4245
}
4346

@@ -52,17 +55,28 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
5255
[20, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-x64_bin.tar.gz"],
5356
[20, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-aarch64_bin.tar.gz"],
5457
[20, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_windows-x64_bin.zip"],
55-
// https://download.java.net/java/early_access/jdk23/23/GPL/openjdk-23-ea+23_macos-aarch64_bin.tar.gz
56-
[24, ORACLE, MAC_OS, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
57-
[24, ORACLE, MAC_OS, AARCH64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
58-
[24, ORACLE, LINUX, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
59-
[24, ORACLE, LINUX, AARCH64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
60-
[24, ORACLE, WINDOWS, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"],
61-
[24, anyVendor(), MAC_OS, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
62-
[24, anyVendor(), MAC_OS, AARCH64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
63-
[24, anyVendor(), LINUX, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
64-
[24, anyVendor(), LINUX, AARCH64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
65-
[24, anyVendor(), WINDOWS, X86_64, "https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"]]
58+
// bundled jdk
59+
[24, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
60+
[24, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
61+
[24, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
62+
[24, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
63+
[24, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"],
64+
[24, anyVendor(), MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
65+
[24, anyVendor(), MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
66+
[24, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
67+
[24, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
68+
[24, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"],
69+
// EA build
70+
[25, ORACLE, MAC_OS, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_macos-x64_bin.tar.gz"],
71+
[25, ORACLE, MAC_OS, AARCH64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_macos-aarch64_bin.tar.gz"],
72+
[25, ORACLE, LINUX, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_linux-x64_bin.tar.gz"],
73+
[25, ORACLE, LINUX, AARCH64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_linux-aarch64_bin.tar.gz"],
74+
[25, ORACLE, WINDOWS, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_windows-x64_bin.zip"],
75+
[25, anyVendor(), MAC_OS, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_macos-x64_bin.tar.gz"],
76+
[25, anyVendor(), MAC_OS, AARCH64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_macos-aarch64_bin.tar.gz"],
77+
[25, anyVendor(), LINUX, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_linux-x64_bin.tar.gz"],
78+
[25, anyVendor(), LINUX, AARCH64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_linux-aarch64_bin.tar.gz"],
79+
[25, anyVendor(), WINDOWS, X86_64, "https://download.java.net/java/early_access/jdk25/3/GPL/openjdk-25-ea+3_windows-x64_bin.zip"]]
6680
}
6781

6882
@RestoreSystemProperties

build-tools-internal/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ elasticsearch = 9.1.0
22
lucene = 10.1.0
33

44
bundled_jdk_vendor = openjdk
5-
bundled_jdk = 23+37@3c5b90190c68498b986a97f276efd28a
5+
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
66
# optional dependencies
77
spatial4j = 0.7
88
jts = 1.15.0

docs/changelog/125159.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 125159
2+
summary: Update bundled JDK to Java 24
3+
area: Packaging
4+
type: upgrade
5+
issues: []

gradle/verification-metadata.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,6 +1850,27 @@
18501850
<sha256 value="cba5013874ba50cae543c86fe6423453816c77281e2751a8a9a633d966f1dc04" origin="Generated by Gradle"/>
18511851
</artifact>
18521852
</component>
1853+
<component group="openjdk_24" name="linux" version="24">
1854+
<artifact name="linux-24-aarch64.tar.gz">
1855+
<sha256 value="a03867ed061c7bb661231e62b0967ff5a5a0b1bbaa37bdead3a924bd2ba3215f" origin="Generated by Gradle"/>
1856+
</artifact>
1857+
<artifact name="linux-24-x64.tar.gz">
1858+
<sha256 value="88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef" origin="Generated by Gradle"/>
1859+
</artifact>
1860+
</component>
1861+
<component group="openjdk_24" name="macos" version="24">
1862+
<artifact name="macos-24-aarch64.tar.gz">
1863+
<sha256 value="f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3" origin="Generated by Gradle"/>
1864+
</artifact>
1865+
<artifact name="macos-24-x64.tar.gz">
1866+
<sha256 value="6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321" origin="Generated by Gradle"/>
1867+
</artifact>
1868+
</component>
1869+
<component group="openjdk_24" name="windows" version="24">
1870+
<artifact name="windows-24-x64.zip">
1871+
<sha256 value="11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b" origin="Generated by Gradle"/>
1872+
</artifact>
1873+
</component>
18531874
<component group="org.abego.treelayout" name="org.abego.treelayout.core" version="1.0.3">
18541875
<artifact name="org.abego.treelayout.core-1.0.3.jar">
18551876
<sha256 value="fa5e31395c39c2e7d46aca0f81f72060931607b2fa41bd36038eb2cb6fb93326" origin="Generated by Gradle"/>

0 commit comments

Comments
 (0)