From d9d6bd044562eb95b4867dd2703bc10a7b3be5d0 Mon Sep 17 00:00:00 2001 From: Bing O'Dowd Date: Mon, 10 Aug 2026 12:12:43 +0200 Subject: [PATCH 1/4] Unify URL logic to simplify the code x64_linux is available under the platform specific url: https://cdn.crate.io/downloads/releases/cratedb/x64_linux/ --- .../java/io/crate/testing/download/VersionDownloadSource.java | 4 +--- .../io/crate/testing/download/VersionDownloadSourceTest.java | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/crate/testing/download/VersionDownloadSource.java b/src/main/java/io/crate/testing/download/VersionDownloadSource.java index 3088ff1..f41eb8b 100644 --- a/src/main/java/io/crate/testing/download/VersionDownloadSource.java +++ b/src/main/java/io/crate/testing/download/VersionDownloadSource.java @@ -28,7 +28,6 @@ class VersionDownloadSource implements DownloadSource { - public static final String RELEASE_URL = "https://cdn.crate.io/downloads/releases/crate-%s.tar.gz"; public static final String RELEASE_PLATFORM_URL = "https://cdn.crate.io/downloads/releases/cratedb/%s/crate-%s.tar.gz"; public static final String NIGHTLY_URL = "https://cdn.crate.io/downloads/releases/nightly/crate-latest.tar.gz"; public static final String NIGHTLY_PLATFORM_URL = "https://cdn.crate.io/downloads/releases/nightly/%s/crate-latest.tar.gz"; @@ -76,9 +75,8 @@ static URL buildDownloadUrl(String version, String platform) throws MalformedURL return new URL(String.format(Locale.ENGLISH, RELEASE_PLATFORM_URL, "x64_mac", version)); case AARCH64_LINUX: case X64_WINDOWS: - return new URL(String.format(Locale.ENGLISH, RELEASE_PLATFORM_URL, platform, version)); case X64_LINUX: - return new URL(String.format(Locale.ENGLISH, RELEASE_URL, version)); + return new URL(String.format(Locale.ENGLISH, RELEASE_PLATFORM_URL, platform, version)); default: throw new MalformedURLException(String.format("Platform %s not supported", platform)); } diff --git a/src/test/java/io/crate/testing/download/VersionDownloadSourceTest.java b/src/test/java/io/crate/testing/download/VersionDownloadSourceTest.java index a468459..1ef4c43 100644 --- a/src/test/java/io/crate/testing/download/VersionDownloadSourceTest.java +++ b/src/test/java/io/crate/testing/download/VersionDownloadSourceTest.java @@ -81,7 +81,7 @@ public static Collection data() { { "6.4.0", "x64_windows", "https://cdn.crate.io/downloads/releases/cratedb/x64_windows/crate-6.4.0.tar.gz" }, { "6.4.0", "x64_linux", - "https://cdn.crate.io/downloads/releases/crate-6.4.0.tar.gz" }, + "https://cdn.crate.io/downloads/releases/cratedb/x64_linux/crate-6.4.0.tar.gz" }, { "latest", "aarch64_mac", "https://cdn.crate.io/downloads/releases/nightly/aarch64_mac/crate-latest.tar.gz" }, { "latest", "aarch64_linux", From 9c0e1ec4bcae3b04d60baa930b7265c38f63ceb5 Mon Sep 17 00:00:00 2001 From: Bing O'Dowd Date: Tue, 11 Aug 2026 13:05:44 +0200 Subject: [PATCH 2/4] Update to the latest version --- .../crate/integrationtests/MultipleDifferentCratesTest.java | 4 ++-- src/test/java/io/crate/testing/Constants.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/io/crate/integrationtests/MultipleDifferentCratesTest.java b/src/test/java/io/crate/integrationtests/MultipleDifferentCratesTest.java index 2355c33..78b9060 100644 --- a/src/test/java/io/crate/integrationtests/MultipleDifferentCratesTest.java +++ b/src/test/java/io/crate/integrationtests/MultipleDifferentCratesTest.java @@ -34,8 +34,8 @@ public class MultipleDifferentCratesTest extends BaseTest { private static final String CLUSTER_NAME_FIRST = "multiples-1"; private static final String CLUSTER_NAME_SECOND = "multiples-2"; - private static final String FIRST_VERSION = "3.0.1"; - private static final String SECOND_VERSION = "3.0.3"; + private static final String FIRST_VERSION = "6.4.1"; + private static final String SECOND_VERSION = "6.4.2"; @ClassRule public static CrateTestCluster FIRST_CLUSTER = CrateTestCluster diff --git a/src/test/java/io/crate/testing/Constants.java b/src/test/java/io/crate/testing/Constants.java index e06df7c..a69b8fd 100644 --- a/src/test/java/io/crate/testing/Constants.java +++ b/src/test/java/io/crate/testing/Constants.java @@ -2,5 +2,5 @@ public final class Constants { - public static final String CRATE_VERSION_FOR_TESTS = "3.0.3"; + public static final String CRATE_VERSION_FOR_TESTS = "6.4.2"; } From 80b42b42526ad24aad8255a52dc83965311b71f1 Mon Sep 17 00:00:00 2001 From: Bing O'Dowd Date: Tue, 11 Aug 2026 13:06:38 +0200 Subject: [PATCH 3/4] Switch to use fromVersion fromVersion now will automatically figure out the correct url to download a release from based on the system platform --- .../java/io/crate/integrationtests/FromLatestUrlTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/io/crate/integrationtests/FromLatestUrlTest.java b/src/test/java/io/crate/integrationtests/FromLatestUrlTest.java index c616f6d..11a8003 100644 --- a/src/test/java/io/crate/integrationtests/FromLatestUrlTest.java +++ b/src/test/java/io/crate/integrationtests/FromLatestUrlTest.java @@ -38,7 +38,7 @@ public class FromLatestUrlTest extends BaseTest { @ClassRule public static CrateTestCluster fromUrlCluster = CrateTestCluster - .fromURL("https://cdn.crate.io/downloads/releases/nightly/crate-latest.tar.gz") + .fromVersion("latest") .clusterName(CLUSTER_NAME) .build(); @@ -46,7 +46,7 @@ public class FromLatestUrlTest extends BaseTest { public void setUp() throws MalformedURLException { prepare(fromUrlCluster); } - + /** * This test uses latest nightly build of crate and CrateDB 4.x requires JDK 11 * and so this might fail if you're using older version of JDK. From bc409c43e1da386524f2c53c2ee928a57d9d3185 Mon Sep 17 00:00:00 2001 From: Bing O'Dowd Date: Tue, 11 Aug 2026 14:02:41 +0200 Subject: [PATCH 4/4] Ensure that the tar.gz file has been downloaded The test can fail if the expected cratedb release's tar.gz has not been downloaded yet. We now make sure that the expected version has been downloaded so that it is available locally for `fromFile` --- .../io/crate/integrationtests/FromFileTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/io/crate/integrationtests/FromFileTest.java b/src/test/java/io/crate/integrationtests/FromFileTest.java index 16bde3c..9c85b30 100644 --- a/src/test/java/io/crate/integrationtests/FromFileTest.java +++ b/src/test/java/io/crate/integrationtests/FromFileTest.java @@ -28,6 +28,8 @@ import org.junit.ClassRule; import org.junit.Test; +import java.io.IOException; +import java.io.UncheckedIOException; import java.net.MalformedURLException; import static io.crate.testing.Constants.CRATE_VERSION_FOR_TESTS; @@ -39,6 +41,19 @@ public class FromFileTest extends BaseTest { private static final String CLUSTER_NAME = "from-file"; + private static final CrateTestCluster dummyCluster = CrateTestCluster + .fromVersion(CRATE_VERSION_FOR_TESTS) + .clusterName("dummy") + .build(); + + static { + try { + dummyCluster.prepareEnvironment(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + private static final String FILE = FromFileTest.class .getResource(String.format("crate-%s.tar.gz", CRATE_VERSION_FOR_TESTS)) .getPath();