From 37ed04d1da0c140ea52838534ed290efdcd664c3 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Sun, 7 Feb 2021 23:43:46 +0100 Subject: [PATCH 1/8] Igmore BwcVersionsTests on aarch64 --- .../java/org/elasticsearch/gradle/BwcVersionsTests.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java b/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java index a9db70d365dfa..31b1a8747e419 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java @@ -1,6 +1,8 @@ package org.elasticsearch.gradle; import org.elasticsearch.gradle.test.GradleUnitTestCase; +import org.junit.Assume; +import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -279,6 +281,10 @@ public class BwcVersionsTests extends GradleUnitTestCase { sampleVersions.put("7.1.0", asList("7_1_0", "7_0_0", "6_7_0", "6_6_1", "6_6_0")); } + @BeforeClass + public static void setupAll() { + Assume.assumeFalse(Architecture.current() == Architecture.AARCH64); + } @Test(expected = IllegalArgumentException.class) public void testExceptionOnEmpty() { new BwcVersions(asList("foo", "bar"), Version.fromString("7.0.0")); From ee800d729c39986f04adf82703a321f0dfd1a41e Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Sun, 7 Feb 2021 23:54:59 +0100 Subject: [PATCH 2/8] Fix spotless --- .../src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java b/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java index 31b1a8747e419..7e340a1682729 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/BwcVersionsTests.java @@ -285,6 +285,7 @@ public class BwcVersionsTests extends GradleUnitTestCase { public static void setupAll() { Assume.assumeFalse(Architecture.current() == Architecture.AARCH64); } + @Test(expected = IllegalArgumentException.class) public void testExceptionOnEmpty() { new BwcVersions(asList("foo", "bar"), Version.fromString("7.0.0")); From 809291d289146bb3042988ad999f66765056a86e Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 8 Feb 2021 10:46:55 +0100 Subject: [PATCH 3/8] Introduce classifier field to Architecture simplifies architecture references in url etc. --- .../gradle/DistributionDownloadPluginFuncTest.groovy | 4 ++-- .../gradle/fixtures/DistributionDownloadFixture.groovy | 3 +-- .../java/org/elasticsearch/gradle/Architecture.java | 10 ++++++++-- .../gradle/DistributionDownloadPlugin.java | 7 ++----- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy index 7ee368fee7687..0c592c13fe269 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy @@ -54,7 +54,7 @@ class DistributionDownloadPluginFuncTest extends AbstractGradleFuncTest { def result = withMockedDistributionDownload(version, platform, runner) { // initial run def firstRun = build() - assertOutputContains(firstRun.output, "Unpacking elasticsearch-${version}-linux-x86_64.tar.gz " + + assertOutputContains(firstRun.output, "Unpacking elasticsearch-${version}-linux-${Architecture.current().classifier}.tar.gz " + "using SymbolicLinkPreservingUntarTransform") // 2nd invocation build() @@ -62,7 +62,7 @@ class DistributionDownloadPluginFuncTest extends AbstractGradleFuncTest { then: result.task(":setupDistro").outcome == TaskOutcome.SUCCESS - assertOutputMissing(result.output, "Unpacking elasticsearch-${version}-linux-x86_64.tar.gz " + + assertOutputMissing(result.output, "Unpacking elasticsearch-${version}-linux-${expectedArch}.tar.gz " + "using SymbolicLinkPreservingUntarTransform") } diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/fixtures/DistributionDownloadFixture.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/fixtures/DistributionDownloadFixture.groovy index df6dab6ca1b3d..c9afcff1394c8 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/fixtures/DistributionDownloadFixture.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/fixtures/DistributionDownloadFixture.groovy @@ -44,8 +44,7 @@ class DistributionDownloadFixture { private static String urlPath(String version,ElasticsearchDistribution.Platform platform) { String fileType = ((platform == ElasticsearchDistribution.Platform.LINUX || platform == ElasticsearchDistribution.Platform.DARWIN)) ? "tar.gz" : "zip" - String arch = Architecture.current() == Architecture.AARCH64 ? "aarch64" : "x86_64" - "/downloads/elasticsearch/elasticsearch-${version}-${platform}-${arch}.$fileType" + "/downloads/elasticsearch/elasticsearch-${version}-${platform}-${Architecture.current().classifier}.$fileType" } private static byte[] filebytes(String urlPath) throws IOException { diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/Architecture.java b/buildSrc/src/main/java/org/elasticsearch/gradle/Architecture.java index c9a7e1eeb8edd..ccc81954aabcb 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/Architecture.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/Architecture.java @@ -10,8 +10,14 @@ public enum Architecture { - X64, - AARCH64; + X64("x86_64"), + AARCH64("aarch64"); + + public final String classifier; + + Architecture(String classifier) { + this.classifier = classifier; + } public static Architecture current() { final String architecture = System.getProperty("os.arch", ""); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java index 32cdfc5ecef96..5772a29d20ec7 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java @@ -166,14 +166,11 @@ private String dependencyNotation(ElasticsearchDistribution distribution) { Version distroVersion = Version.fromString(distribution.getVersion()); String extension = distribution.getType().toString(); - String classifier = ":" + (Architecture.current() == Architecture.AARCH64 ? "aarch64" : "x86_64"); + String classifier = ":" + Architecture.current().classifier; if (distribution.getType() == Type.ARCHIVE) { extension = distribution.getPlatform() == Platform.WINDOWS ? "zip" : "tar.gz"; if (distroVersion.onOrAfter("7.0.0")) { - classifier = ":" - + distribution.getPlatform() - + "-" - + (Architecture.current() == Architecture.AARCH64 ? "aarch64" : "x86_64"); + classifier = ":" + distribution.getPlatform() + "-" + Architecture.current().classifier; } else { classifier = ""; } From c07d16cd636510291ae33689295633a253f24c79 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 8 Feb 2021 10:57:30 +0100 Subject: [PATCH 4/8] Fix more build tools tests on aarch64 --- .../gradle/DistributionDownloadPluginFuncTest.groovy | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy index 0c592c13fe269..c7d775dec85a3 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/DistributionDownloadPluginFuncTest.groovy @@ -51,19 +51,19 @@ class DistributionDownloadPluginFuncTest extends AbstractGradleFuncTest { when: def guh = new File(testProjectDir.getRoot(), "gradle-user-home").absolutePath; def runner = gradleRunner('clean', 'setupDistro', '-i', '-g', guh) + def unpackingMessage = "Unpacking elasticsearch-${version}-linux-${Architecture.current().classifier}.tar.gz " + + "using SymbolicLinkPreservingUntarTransform" def result = withMockedDistributionDownload(version, platform, runner) { // initial run def firstRun = build() - assertOutputContains(firstRun.output, "Unpacking elasticsearch-${version}-linux-${Architecture.current().classifier}.tar.gz " + - "using SymbolicLinkPreservingUntarTransform") + assertOutputContains(firstRun.output, unpackingMessage) // 2nd invocation build() } then: result.task(":setupDistro").outcome == TaskOutcome.SUCCESS - assertOutputMissing(result.output, "Unpacking elasticsearch-${version}-linux-${expectedArch}.tar.gz " + - "using SymbolicLinkPreservingUntarTransform") + assertOutputMissing(result.output, unpackingMessage) } def "transforms are reused across projects"() { @@ -100,7 +100,7 @@ class DistributionDownloadPluginFuncTest extends AbstractGradleFuncTest { then: result.tasks.size() == 3 - result.output.count("Unpacking elasticsearch-${version}-linux-x86_64.tar.gz " + + result.output.count("Unpacking elasticsearch-${version}-linux-${Architecture.current().classifier}.tar.gz " + "using SymbolicLinkPreservingUntarTransform") == 1 } From ceba70886668db5cc600f097af0abc85115d2f86 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 8 Feb 2021 12:05:11 +0100 Subject: [PATCH 5/8] Fix InternalDistributionDownloadPluginFuncTest on aarch64 --- .../InternalDistributionDownloadPluginFuncTest.groovy | 11 +++++------ .../fake_git/remote/.ci/java-versions.properties | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy index 22c8b53213545..32a728c387412 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy @@ -8,14 +8,11 @@ package org.elasticsearch.gradle.internal +import org.elasticsearch.gradle.Architecture import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.fixtures.AbstractGradleFuncTest -import org.gradle.testkit.runner.GradleRunner import org.gradle.testkit.runner.TaskOutcome -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import java.lang.management.ManagementFactory class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest { @@ -159,10 +156,12 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest } private void localDistroSetup() { + def archSuffix = Architecture.current() == Architecture.AARCH64 ? '-aarch64' : '' + def archiveProjectName = "linux${archSuffix}-tar" settingsFile << """ - include ":distribution:archives:linux-tar" + include ":distribution:archives:${archiveProjectName}" """ - def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "archives", "linux-tar") + def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "archives", archiveProjectName) new File(bwcSubProjectFolder, 'current-marker.txt') << "current" new File(bwcSubProjectFolder, 'build.gradle') << """ import org.gradle.api.internal.artifacts.ArtifactAttributes; diff --git a/buildSrc/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/.ci/java-versions.properties b/buildSrc/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/.ci/java-versions.properties index 0ccc6bab285a6..4f728deb42e0c 100644 --- a/buildSrc/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/.ci/java-versions.properties +++ b/buildSrc/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/.ci/java-versions.properties @@ -5,6 +5,6 @@ # in compliance with, at your election, the Elastic License 2.0 or the Server # Side Public License, v 1. # -ES_BUILD_JAVA=openjdk12 -ES_RUNTIME_JAVA=openjdk12 +ES_BUILD_JAVA=openjdk11 +ES_RUNTIME_JAVA=openjdk11 GRADLE_TASK=build From a2879c3cf2f60c852174d52b86e9f415164ee671 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 8 Feb 2021 12:34:43 +0100 Subject: [PATCH 6/8] More aaarch build tools test fixes --- ...alDistributionDownloadPluginFuncTest.groovy | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy index 32a728c387412..9ec1ba47b1138 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy @@ -58,7 +58,7 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest def result = gradleRunner("setupDistro", '-g', testProjectDir.newFolder('GUH').path).build() then: - result.task(":distribution:archives:linux-tar:buildExpanded").outcome == TaskOutcome.SUCCESS + result.task(":distribution:archives:${testArchiveProjectName}:buildExpanded").outcome == TaskOutcome.SUCCESS result.task(":setupDistro").outcome == TaskOutcome.SUCCESS assertExtractedDistroIsCreated("build/distro", 'current-marker.txt') } @@ -137,11 +137,11 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest compression = Compression.GZIP } artifacts { - it.add("linux-tar", buildBwcTask) + it.add("${testArchiveProjectName}", buildBwcTask) } // expanded distro - configurations.create("expanded-linux-tar") + configurations.create("expanded-${testArchiveProjectName}") def expandedTask = tasks.register("buildBwcExpandedTask", Copy) { from('bwc-marker.txt') into('build/install/elastic-distro') @@ -156,12 +156,10 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest } private void localDistroSetup() { - def archSuffix = Architecture.current() == Architecture.AARCH64 ? '-aarch64' : '' - def archiveProjectName = "linux${archSuffix}-tar" settingsFile << """ - include ":distribution:archives:${archiveProjectName}" + include ":distribution:archives:${testArchiveProjectName}" """ - def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "archives", archiveProjectName) + def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "archives", testArchiveProjectName) new File(bwcSubProjectFolder, 'current-marker.txt') << "current" new File(bwcSubProjectFolder, 'build.gradle') << """ import org.gradle.api.internal.artifacts.ArtifactAttributes; @@ -189,10 +187,12 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest it.add("extracted", buildExpanded) } """ - buildFile << """ - """ } + String getTestArchiveProjectName() { + def archSuffix = Architecture.current() == Architecture.AARCH64 ? '-aarch64' : '' + return "linux${archSuffix}-tar" + } boolean assertExtractedDistroIsCreated(String relativeDistroPath, String markerFileName) { File extractedFolder = new File(testProjectDir.root, relativeDistroPath) assert extractedFolder.exists() From cb89ee6bd7444e88e83c48fe78eb0d6d365c7b01 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 8 Feb 2021 12:52:55 +0100 Subject: [PATCH 7/8] More fixes --- .../InternalDistributionDownloadPluginFuncTest.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy index 9ec1ba47b1138..8d0c00fddf01d 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy @@ -130,7 +130,7 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest apply plugin:'base' // packed distro - configurations.create("linux-tar") + configurations.create("${testArchiveProjectName}") tasks.register("buildBwcTask", Tar) { from('bwc-marker.txt') archiveExtension = "tar.gz" @@ -147,7 +147,7 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest into('build/install/elastic-distro') } artifacts { - it.add("expanded-linux-tar", file('build/install')) { + it.add("expanded-${testArchiveProjectName}", file('build/install')) { builtBy expandedTask type = 'directory' } From a042870c3bea712d5b4faba86566a821de047a9b Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Tue, 9 Feb 2021 13:22:35 +0100 Subject: [PATCH 8/8] Add test coverage for downloading adoptjdk aarch64 jdks --- .../gradle/JdkDownloadPluginFuncTest.groovy | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/JdkDownloadPluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/JdkDownloadPluginFuncTest.groovy index c5184a79c7214..e80c9095f69c5 100644 --- a/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/JdkDownloadPluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/elasticsearch/gradle/JdkDownloadPluginFuncTest.groovy @@ -29,6 +29,8 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { private static final String OPENJDK_VERSION_OLD = "1+99" private static final String ADOPT_JDK_VERSION = "12.0.2+10" + private static final String ADOPT_JDK_VERSION_11 = "11.0.10+9" + private static final String ADOPT_JDK_VERSION_15 = "15.0.2+7" private static final String OPEN_JDK_VERSION = "12.0.1+99@123456789123456789123456789abcde" private static final String AZUL_AARCH_VERSION = "15.0.1+99@123456789123456789123456789abcde" private static final Pattern JDK_HOME_LOGLINE = Pattern.compile("JDK HOME: (.*)"); @@ -36,7 +38,7 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { @Unroll def "jdk #jdkVendor for #platform#suffix are downloaded and extracted"() { given: - def mockRepoUrl = urlPath(jdkVendor, jdkVersion, platform); + def mockRepoUrl = urlPath(jdkVendor, jdkVersion, platform, arch); def mockedContent = filebytes(jdkVendor, platform) buildFile.text = """ plugins { @@ -70,20 +72,22 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { assertExtraction(result.output, expectedJavaBin); where: - platform | arch | jdkVendor | jdkVersion | expectedJavaBin | suffix - "linux" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "bin/java" | "" - "linux" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "bin/java" | "" - "linux" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "bin/java" | "(old version)" - "windows" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "bin/java" | "" - "windows" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "bin/java" | "" - "windows" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "bin/java" | "(old version)" - "darwin" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "Contents/Home/bin/java" | "" - "darwin" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "Contents/Home/bin/java" | "" - "darwin" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "Contents/Home/bin/java" | "(old version)" - "mac" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "Contents/Home/bin/java" | "" - "mac" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "Contents/Home/bin/java" | "(old version)" - "darwin" | "aarch64" | VENDOR_AZUL | AZUL_AARCH_VERSION | "Contents/Home/bin/java" | "" - "linux" | "aarch64" | VENDOR_AZUL | AZUL_AARCH_VERSION | "bin/java" | "" + platform | arch | jdkVendor | jdkVersion | expectedJavaBin | suffix + "linux" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "bin/java" | "" + "linux" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "bin/java" | "" + "linux" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "bin/java" | "(old version)" + "windows" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "bin/java" | "" + "windows" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "bin/java" | "" + "windows" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "bin/java" | "(old version)" + "darwin" | "x64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION | "Contents/Home/bin/java" | "" + "darwin" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "Contents/Home/bin/java" | "" + "darwin" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "Contents/Home/bin/java" | "(old version)" + "mac" | "x64" | VENDOR_OPENJDK | OPEN_JDK_VERSION | "Contents/Home/bin/java" | "" + "mac" | "x64" | VENDOR_OPENJDK | OPENJDK_VERSION_OLD | "Contents/Home/bin/java" | "(old version)" + "darwin" | "aarch64" | VENDOR_AZUL | AZUL_AARCH_VERSION | "Contents/Home/bin/java" | "" + "linux" | "aarch64" | VENDOR_AZUL | AZUL_AARCH_VERSION | "bin/java" | "" + "linux" | "aarch64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION_11 | "bin/java" | "(jdk 11)" + "linux" | "aarch64" | VENDOR_ADOPTOPENJDK | ADOPT_JDK_VERSION_15 | "bin/java" | "(jdk 15)" } def "transforms are reused across projects"() { @@ -195,10 +199,13 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { true } - private static String urlPath(final String vendor, final String version, final String platform) { + private static String urlPath(final String vendor, + final String version, + final String platform, + final String arch = 'x64') { if (vendor.equals(VENDOR_ADOPTOPENJDK)) { final String module = isMac(platform) ? "mac" : platform; - return "/jdk-12.0.2+10/" + module + "/x64/jdk/hotspot/normal/adoptopenjdk"; + return "/jdk-" + version + "/" + module + "/${arch}/jdk/hotspot/normal/adoptopenjdk"; } else if (vendor.equals(VENDOR_OPENJDK)) { final String effectivePlatform = isMac(platform) ? "osx" : platform; final boolean isOld = version.equals(OPENJDK_VERSION_OLD); @@ -208,7 +215,7 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { } else if (vendor.equals(VENDOR_AZUL)) { final String module = isMac(platform) ? "macosx" : platform; // we only test zulu 15 darwin aarch64 for now - return "/zulu${module.equals('linux') ? '-embedded' : ''}/bin/zulu15.29.15-ca-jdk15.0.2-${module}_aarch64.tar.gz"; + return "/zulu${module.equals('linux') ? '-embedded' : ''}/bin/zulu15.29.15-ca-jdk15.0.2-${module}_${arch}.tar.gz"; } }