From d2ac44dc79da5e4b61efa09e766e458e52c28f42 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Tue, 18 Mar 2025 21:05:09 +0100 Subject: [PATCH] [Gradle] Autoprovision jvm for gradle daemon (#124071) (#125149) With Gradle 8.13 we can now auto provision the jdk used by the gradle daemon. Our configuration relies on jdk21. With this autoprovisioning enabled each gradle build will use adoptium jdk 21 for gradle jvm --- .../ArchivedOracleJdkToolchainResolver.java | 2 +- build.gradle | 28 +++++++++++++++++++ gradle/gradle-daemon-jvm.properties | 8 ++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 gradle/gradle-daemon-jvm.properties diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java index b1f806b38437..37bb96716b3f 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java @@ -29,7 +29,7 @@ import java.util.Optional; */ public abstract class ArchivedOracleJdkToolchainResolver extends AbstractCustomJavaToolchainResolver { - private static final Map ARCHIVED_BASE_VERSIONS = Maps.of(20, "20.0.2", 19, "19.0.2", 18, "18.0.2.1"); + private static final Map ARCHIVED_BASE_VERSIONS = Maps.of(21, "21.0.6", 20, "20.0.2", 19, "19.0.2", 18, "18.0.2.1"); @Override public Optional resolve(JavaToolchainRequest request) { diff --git a/build.gradle b/build.gradle index 2d3d26a81b77..4df1d75a9141 100644 --- a/build.gradle +++ b/build.gradle @@ -411,6 +411,34 @@ allprojects { apply plugin: 'elasticsearch.formatting' } +tasks.named("updateDaemonJvm") { + def myPlatforms = [ + BuildPlatformFactory.of( + org.gradle.platform.Architecture.AARCH64, + org.gradle.platform.OperatingSystem.MAC_OS + ), + BuildPlatformFactory.of( + org.gradle.platform.Architecture.AARCH64, + org.gradle.platform.OperatingSystem.LINUX + ), + BuildPlatformFactory.of( + org.gradle.platform.Architecture.X86_64, + org.gradle.platform.OperatingSystem.LINUX + ), + BuildPlatformFactory.of( + org.gradle.platform.Architecture.X86_64, + org.gradle.platform.OperatingSystem.WINDOWS + ), + // anyone still using x86 osx? + BuildPlatformFactory.of( + org.gradle.platform.Architecture.X86_64, + org.gradle.platform.OperatingSystem.MAC_OS + ) + ] + toolchainPlatforms.set(myPlatforms) + languageVersion = JavaLanguageVersion.of(21) + vendor = JvmVendorSpec.ADOPTIUM +} tasks.register("verifyBwcTestsEnabled") { doLast { diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 000000000000..188d373d6bc6 --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,8 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.LINUX.AARCH64=https\://api.adoptium.net/v3/binary/version/jdk-21.0.6+7/linux/aarch64/jdk/hotspot/normal/eclipse?project\=jdk +toolchainUrl.LINUX.X86_64=https\://api.adoptium.net/v3/binary/version/jdk-21.0.6+7/linux/x64/jdk/hotspot/normal/eclipse?project\=jdk +toolchainUrl.MAC_OS.AARCH64=https\://api.adoptium.net/v3/binary/version/jdk-21.0.6+7/mac/aarch64/jdk/hotspot/normal/eclipse?project\=jdk +toolchainUrl.MAC_OS.X86_64=https\://api.adoptium.net/v3/binary/version/jdk-21.0.6+7/mac/x64/jdk/hotspot/normal/eclipse?project\=jdk +toolchainUrl.WINDOWS.X86_64=https\://api.adoptium.net/v3/binary/version/jdk-21.0.6+7/windows/x64/jdk/hotspot/normal/eclipse?project\=jdk +toolchainVendor=ADOPTIUM +toolchainVersion=21