From c348dd03fdcb4c43f55aaae4eb73b3273ceb3f6a Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Thu, 25 Sep 2025 09:28:15 +0200 Subject: [PATCH 1/2] [CI] Handle git snapshot BWC versions correctly when calculating jdk fallback (#135399) In https://github.com/elastic/elasticsearch/pull/135300 we introduced a fallback to use adoptopenjdk17 when running bwc tests with older distributions. This fix handles the calculation of overriding requirement by taken 0.0.0 version into account which is used to represent versions representing git snapshots. --- .../internal/InternalDistributionDownloadPlugin.java | 3 +++ .../gradle/TestClustersPluginFuncTest.groovy | 2 +- .../main/java/org/elasticsearch/gradle/util/OsUtils.java | 2 +- .../test/cluster/local/AbstractLocalClusterFactory.java | 8 ++++++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionDownloadPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionDownloadPlugin.java index 4c0c224aff3f3..f32afa1641e2e 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionDownloadPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionDownloadPlugin.java @@ -113,6 +113,9 @@ private void registerInternalDistributionResolutions(List getEnvironmentVariables() { Map environment = new HashMap<>(spec.resolveEnvironment()); String esFallbackJavaHome = System.getenv("ES_FALLBACK_JAVA_HOME"); - if (spec.getVersion().before(DISTRO_WITH_JDK_LOWER_21) && esFallbackJavaHome != null && esFallbackJavaHome.isEmpty() == false) { + if (jdkIsIncompatible(spec.getVersion()) && esFallbackJavaHome != null && esFallbackJavaHome.isEmpty() == false) { environment.put("ES_JAVA_HOME", esFallbackJavaHome); } environment.put("ES_PATH_CONF", configDir.toString()); @@ -922,6 +922,10 @@ private Map getEnvironmentVariables() { return environment; } + private boolean jdkIsIncompatible(Version version) { + return version.after("0.0.0") && version.before(FIRST_DISTRO_WITH_JDK_21); + } + private record ReplacementKey(String key, String fallback) { ReplacementKey { assert fallback == null || fallback.isEmpty() == false; // no empty fallback, which would match anything From 0276f064229745da5db3e8517495aceae12c8e20 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Thu, 25 Sep 2025 09:54:48 +0200 Subject: [PATCH 2/2] fix typo --- .../org/elasticsearch/gradle/TestClustersPluginFuncTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/src/integTest/groovy/org/elasticsearch/gradle/TestClustersPluginFuncTest.groovy b/build-tools/src/integTest/groovy/org/elasticsearch/gradle/TestClustersPluginFuncTest.groovy index fd51e5552a675..af83fbbd06326 100644 --- a/build-tools/src/integTest/groovy/org/elasticsearch/gradle/TestClustersPluginFuncTest.groovy +++ b/build-tools/src/integTest/groovy/org/elasticsearch/gradle/TestClustersPluginFuncTest.groovy @@ -250,7 +250,7 @@ class TestClustersPluginFuncTest extends AbstractGradleFuncTest { buildFile << """ testClusters { - myCluster1 { + myCluster { testDistribution = 'default' version = '8.10.4' }