mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 09:28:55 -04:00
Update bundled JDK to Java 22 (again) (#108654)
This commit re-bumps the bundled JDK to Java 22 now that we have a tested workaround for the G1GC bug (https://bugs.openjdk.org/browse/JDK-8329528). relates #108571 relates #106987
This commit is contained in:
parent
12aa1cd78e
commit
2dceafc821
6 changed files with 39 additions and 43 deletions
|
@ -11,7 +11,6 @@ package org.elasticsearch.gradle.internal.toolchain;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import org.apache.commons.compress.utils.Lists;
|
|
||||||
import org.gradle.jvm.toolchain.JavaLanguageVersion;
|
import org.gradle.jvm.toolchain.JavaLanguageVersion;
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainDownload;
|
import org.gradle.jvm.toolchain.JavaToolchainDownload;
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainRequest;
|
import org.gradle.jvm.toolchain.JavaToolchainRequest;
|
||||||
|
@ -21,17 +20,17 @@ import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.stream.StreamSupport;
|
||||||
|
|
||||||
import static org.gradle.jvm.toolchain.JavaToolchainDownload.fromUri;
|
import static org.gradle.jvm.toolchain.JavaToolchainDownload.fromUri;
|
||||||
|
|
||||||
public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToolchainResolver {
|
public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToolchainResolver {
|
||||||
|
|
||||||
// package protected for better testing
|
// package protected for better testing
|
||||||
final Map<AdoptiumVersionRequest, Optional<AdoptiumVersionInfo>> CACHED_SEMVERS = new ConcurrentHashMap<>();
|
final Map<AdoptiumVersionRequest, Optional<String>> CACHED_RELEASES = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<JavaToolchainDownload> resolve(JavaToolchainRequest request) {
|
public Optional<JavaToolchainDownload> resolve(JavaToolchainRequest request) {
|
||||||
|
@ -39,7 +38,7 @@ public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToo
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
AdoptiumVersionRequest versionRequestKey = toVersionRequest(request);
|
AdoptiumVersionRequest versionRequestKey = toVersionRequest(request);
|
||||||
Optional<AdoptiumVersionInfo> versionInfo = CACHED_SEMVERS.computeIfAbsent(
|
Optional<String> versionInfo = CACHED_RELEASES.computeIfAbsent(
|
||||||
versionRequestKey,
|
versionRequestKey,
|
||||||
(r) -> resolveAvailableVersion(versionRequestKey)
|
(r) -> resolveAvailableVersion(versionRequestKey)
|
||||||
);
|
);
|
||||||
|
@ -54,12 +53,12 @@ public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToo
|
||||||
return new AdoptiumVersionRequest(platform, arch, javaLanguageVersion);
|
return new AdoptiumVersionRequest(platform, arch, javaLanguageVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<AdoptiumVersionInfo> resolveAvailableVersion(AdoptiumVersionRequest requestKey) {
|
private Optional<String> resolveAvailableVersion(AdoptiumVersionRequest requestKey) {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
try {
|
try {
|
||||||
int languageVersion = requestKey.languageVersion.asInt();
|
int languageVersion = requestKey.languageVersion.asInt();
|
||||||
URL source = new URL(
|
URL source = new URL(
|
||||||
"https://api.adoptium.net/v3/info/release_versions?architecture="
|
"https://api.adoptium.net/v3/info/release_names?architecture="
|
||||||
+ requestKey.arch
|
+ requestKey.arch
|
||||||
+ "&image_type=jdk&os="
|
+ "&image_type=jdk&os="
|
||||||
+ requestKey.platform
|
+ requestKey.platform
|
||||||
|
@ -71,14 +70,8 @@ public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToo
|
||||||
+ ")"
|
+ ")"
|
||||||
);
|
);
|
||||||
JsonNode jsonNode = mapper.readTree(source);
|
JsonNode jsonNode = mapper.readTree(source);
|
||||||
JsonNode versionsNode = jsonNode.get("versions");
|
JsonNode versionsNode = jsonNode.get("releases");
|
||||||
return Optional.of(
|
return StreamSupport.stream(versionsNode.spliterator(), false).map(JsonNode::textValue).findFirst();
|
||||||
Lists.newArrayList(versionsNode.iterator())
|
|
||||||
.stream()
|
|
||||||
.map(this::toVersionInfo)
|
|
||||||
.max(Comparator.comparing(AdoptiumVersionInfo::semver))
|
|
||||||
.get()
|
|
||||||
);
|
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
// request combo not supported (e.g. aarch64 + windows
|
// request combo not supported (e.g. aarch64 + windows
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
|
@ -87,21 +80,10 @@ public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private AdoptiumVersionInfo toVersionInfo(JsonNode node) {
|
private URI resolveDownloadURI(AdoptiumVersionRequest request, String version) {
|
||||||
return new AdoptiumVersionInfo(
|
|
||||||
node.get("build").asInt(),
|
|
||||||
node.get("major").asInt(),
|
|
||||||
node.get("minor").asInt(),
|
|
||||||
node.get("openjdk_version").asText(),
|
|
||||||
node.get("security").asInt(),
|
|
||||||
node.get("semver").asText()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private URI resolveDownloadURI(AdoptiumVersionRequest request, AdoptiumVersionInfo versionInfo) {
|
|
||||||
return URI.create(
|
return URI.create(
|
||||||
"https://api.adoptium.net/v3/binary/version/jdk-"
|
"https://api.adoptium.net/v3/binary/version/"
|
||||||
+ versionInfo.semver
|
+ version
|
||||||
+ "/"
|
+ "/"
|
||||||
+ request.platform
|
+ request.platform
|
||||||
+ "/"
|
+ "/"
|
||||||
|
@ -118,7 +100,5 @@ public abstract class AdoptiumJdkToolchainResolver extends AbstractCustomJavaToo
|
||||||
return anyVendorOr(request.getJavaToolchainSpec().getVendor().get(), JvmVendorSpec.ADOPTIUM);
|
return anyVendorOr(request.getJavaToolchainSpec().getVendor().get(), JvmVendorSpec.ADOPTIUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
record AdoptiumVersionInfo(int build, int major, int minor, String openjdkVersion, int security, String semver) {}
|
|
||||||
|
|
||||||
record AdoptiumVersionRequest(String platform, String arch, JavaLanguageVersion languageVersion) {}
|
record AdoptiumVersionRequest(String platform, String arch, JavaLanguageVersion languageVersion) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,11 +39,7 @@ public abstract class OracleOpenJdkToolchainResolver extends AbstractCustomJavaT
|
||||||
);
|
);
|
||||||
|
|
||||||
// package private so it can be replaced by tests
|
// package private so it can be replaced by tests
|
||||||
List<JdkBuild> builds = List.of(
|
List<JdkBuild> builds = List.of(getBundledJdkBuild());
|
||||||
getBundledJdkBuild(),
|
|
||||||
// 22 release candidate
|
|
||||||
new JdkBuild(JavaLanguageVersion.of(22), "22", "36", "830ec9fcccef480bb3e73fb7ecafe059")
|
|
||||||
);
|
|
||||||
|
|
||||||
private JdkBuild getBundledJdkBuild() {
|
private JdkBuild getBundledJdkBuild() {
|
||||||
String bundledJdkVersion = VersionProperties.getBundledJdkVersion();
|
String bundledJdkVersion = VersionProperties.getBundledJdkVersion();
|
||||||
|
|
|
@ -11,7 +11,6 @@ package org.elasticsearch.gradle.internal.toolchain
|
||||||
import org.gradle.api.services.BuildServiceParameters
|
import org.gradle.api.services.BuildServiceParameters
|
||||||
import org.gradle.jvm.toolchain.JavaLanguageVersion
|
import org.gradle.jvm.toolchain.JavaLanguageVersion
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainResolver
|
import org.gradle.jvm.toolchain.JavaToolchainResolver
|
||||||
import org.gradle.platform.OperatingSystem
|
|
||||||
|
|
||||||
import static org.elasticsearch.gradle.internal.toolchain.AbstractCustomJavaToolchainResolver.toArchString
|
import static org.elasticsearch.gradle.internal.toolchain.AbstractCustomJavaToolchainResolver.toArchString
|
||||||
import static org.elasticsearch.gradle.internal.toolchain.AbstractCustomJavaToolchainResolver.toOsString
|
import static org.elasticsearch.gradle.internal.toolchain.AbstractCustomJavaToolchainResolver.toOsString
|
||||||
|
@ -38,12 +37,7 @@ class AdoptiumJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
|
||||||
toOsString(it[2], it[1]),
|
toOsString(it[2], it[1]),
|
||||||
toArchString(it[3]),
|
toArchString(it[3]),
|
||||||
languageVersion);
|
languageVersion);
|
||||||
resolver.CACHED_SEMVERS.put(request, Optional.of(new AdoptiumJdkToolchainResolver.AdoptiumVersionInfo(languageVersion.asInt(),
|
resolver.CACHED_RELEASES.put(request, Optional.of('jdk-' + languageVersion.asInt() + '.1.1.1+37.1'))
|
||||||
1,
|
|
||||||
1,
|
|
||||||
"" + languageVersion.asInt() + ".1.1.1+37",
|
|
||||||
0, "" + languageVersion.asInt() + ".1.1.1+37.1"
|
|
||||||
)))
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return resolver
|
return resolver
|
||||||
|
|
|
@ -2,7 +2,7 @@ elasticsearch = 8.15.0
|
||||||
lucene = 9.10.0
|
lucene = 9.10.0
|
||||||
|
|
||||||
bundled_jdk_vendor = openjdk
|
bundled_jdk_vendor = openjdk
|
||||||
bundled_jdk = 21.0.2+13@f2283984656d49d69e91c558476027ac
|
bundled_jdk = 22.0.1+8@c7ec1332f7bb44aeba2eb341ae18aca4
|
||||||
# optional dependencies
|
# optional dependencies
|
||||||
spatial4j = 0.7
|
spatial4j = 0.7
|
||||||
jts = 1.15.0
|
jts = 1.15.0
|
||||||
|
|
5
docs/changelog/108654.yaml
Normal file
5
docs/changelog/108654.yaml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
pr: 108654
|
||||||
|
summary: Update bundled JDK to Java 22 (again)
|
||||||
|
area: Packaging
|
||||||
|
type: upgrade
|
||||||
|
issues: []
|
|
@ -1720,6 +1720,27 @@
|
||||||
<sha256 value="b6c17e747ae78cdd6de4d7532b3164b277daee97c007d3eaa2b39cca99882664" origin="Generated by Gradle"/>
|
<sha256 value="b6c17e747ae78cdd6de4d7532b3164b277daee97c007d3eaa2b39cca99882664" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="openjdk_22" name="linux" version="22.0.1">
|
||||||
|
<artifact name="linux-22.0.1-aarch64.tar.gz">
|
||||||
|
<sha256 value="0887c42b9897f889415a6f7b88549d38af99f6ef2d1117199de012beab0631eb" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="linux-22.0.1-x64.tar.gz">
|
||||||
|
<sha256 value="133c8b65113304904cdef7c9103274d141cfb64b191ff48ceb6528aca25c67b1" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="openjdk_22" name="macos" version="22.0.1">
|
||||||
|
<artifact name="macos-22.0.1-aarch64.tar.gz">
|
||||||
|
<sha256 value="b949a3bc13e3c5152ab55d12e699dfa6c8b00bedeb8302b13be4aec3ee734351" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="macos-22.0.1-x64.tar.gz">
|
||||||
|
<sha256 value="5daa4f9894cc3a617a5f9fe2c48e5391d3a2e672c91e1597041672f57696846f" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="openjdk_22" name="windows" version="22.0.1">
|
||||||
|
<artifact name="windows-22.0.1-x64.zip">
|
||||||
|
<sha256 value="de7f00fd1bd0d3a4c678fff2681dfad19284d74d357218a4be6f623488d040da" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.abego.treelayout" name="org.abego.treelayout.core" version="1.0.3">
|
<component group="org.abego.treelayout" name="org.abego.treelayout.core" version="1.0.3">
|
||||||
<artifact name="org.abego.treelayout.core-1.0.3.jar">
|
<artifact name="org.abego.treelayout.core-1.0.3.jar">
|
||||||
<sha256 value="fa5e31395c39c2e7d46aca0f81f72060931607b2fa41bd36038eb2cb6fb93326" origin="Generated by Gradle"/>
|
<sha256 value="fa5e31395c39c2e7d46aca0f81f72060931607b2fa41bd36038eb2cb6fb93326" origin="Generated by Gradle"/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue