From e7a7b3c280a549ecf063de5631b4baee06680e79 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Tue, 18 Mar 2025 19:50:05 +0100 Subject: [PATCH] [Gradle] Autoprovision jvm for gradle daemon (#124071) 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 b1f806b384374..37bb96716b3f6 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 @@ */ 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 4e0697f01d293..5d33d2b7d017e 100644 --- a/build.gradle +++ b/build.gradle @@ -380,6 +380,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 0000000000000..188d373d6bc6f --- /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