From dc3ceda03217f034d86ed52d07e91cc35da5b4d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 22:00:46 +0000 Subject: [PATCH 001/269] Bump com.mysql:mysql-connector-j in /modules/jdbc-test Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index a6759030313..25f59574c8c 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -10,6 +10,6 @@ dependencies { api 'org.apache.tomcat:tomcat-jdbc:11.0.11' api 'org.vibur:vibur-dbcp:26.0' - api 'com.mysql:mysql-connector-j:8.2.0' + api 'com.mysql:mysql-connector-j:9.5.0' api 'org.junit.jupiter:junit-jupiter:5.13.4' } From 2e567000615feb51ea3e927b55e0d21dc0d75aca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 22:09:24 +0000 Subject: [PATCH 002/269] Bump io.trino:trino-jdbc from 477 to 478 in /modules/trino Bumps io.trino:trino-jdbc from 477 to 478. --- updated-dependencies: - dependency-name: io.trino:trino-jdbc dependency-version: '478' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/trino/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trino/build.gradle b/modules/trino/build.gradle index 6839d4791aa..004bd38a8b9 100644 --- a/modules/trino/build.gradle +++ b/modules/trino/build.gradle @@ -4,6 +4,6 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'io.trino:trino-jdbc:477' + testRuntimeOnly 'io.trino:trino-jdbc:478' compileOnly 'org.jetbrains:annotations:26.0.2-1' } From 9938949ea23e380b2a6b09f0770acbfcfa4c0d43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 22:21:43 +0000 Subject: [PATCH 003/269] Bump com.oracle.database.jdbc:ojdbc11 in /modules/oracle-free Bumps com.oracle.database.jdbc:ojdbc11 from 23.9.0.25.07 to 23.26.0.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc11 dependency-version: 23.26.0.0.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/oracle-free/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-free/build.gradle b/modules/oracle-free/build.gradle index 769572aaef1..e7cc9669632 100644 --- a/modules/oracle-free/build.gradle +++ b/modules/oracle-free/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.oracle.database.jdbc:ojdbc11:23.9.0.25.07' + testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' From 6b060c7990a4bafeea85fac7bf1176a17a9ac3f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 17:49:10 +0000 Subject: [PATCH 004/269] Bump com.oracle.database.jdbc:ojdbc11 in /modules/oracle-xe Bumps com.oracle.database.jdbc:ojdbc11 from 23.9.0.25.07 to 23.26.0.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc11 dependency-version: 23.26.0.0.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/oracle-xe/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-xe/build.gradle b/modules/oracle-xe/build.gradle index 0f2e76b29b1..6faeeb9367e 100644 --- a/modules/oracle-xe/build.gradle +++ b/modules/oracle-xe/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.oracle.database.jdbc:ojdbc11:23.9.0.25.07' + testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' From ab254863e363799c931d4f0fefbfae52801085b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Wed, 12 Nov 2025 14:32:21 -0600 Subject: [PATCH 005/269] Fix ollama example (#11217) --- .../example/ollamahf/OllamaHuggingFaceContainer.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/examples/ollama-hugging-face/src/test/java/com/example/ollamahf/OllamaHuggingFaceContainer.java b/examples/ollama-hugging-face/src/test/java/com/example/ollamahf/OllamaHuggingFaceContainer.java index 55fd110fa13..58267134a5f 100644 --- a/examples/ollama-hugging-face/src/test/java/com/example/ollamahf/OllamaHuggingFaceContainer.java +++ b/examples/ollama-hugging-face/src/test/java/com/example/ollamahf/OllamaHuggingFaceContainer.java @@ -28,14 +28,7 @@ protected void containerIsStarted(InspectContainerResponse containerInfo, boolea executeCommand("apt-get", "upgrade", "-y"); executeCommand("apt-get", "install", "-y", "python3-pip"); executeCommand("pip", "install", "huggingface-hub"); - executeCommand( - "huggingface-cli", - "download", - huggingFaceModel.repository, - huggingFaceModel.model, - "--local-dir", - "." - ); + executeCommand("hf", "download", huggingFaceModel.repository, huggingFaceModel.model, "--local-dir", "."); executeCommand("sh", "-c", String.format("echo '%s' > Modelfile", huggingFaceModel.modelfileContent)); executeCommand("ollama", "create", huggingFaceModel.model, "-f", "Modelfile"); executeCommand("rm", huggingFaceModel.model); @@ -48,7 +41,7 @@ private void executeCommand(String... command) throws ContainerLaunchException, ExecResult execResult = execInContainer(command); if (execResult.getExitCode() > 0) { throw new ContainerLaunchException( - "Failed to execute " + String.join(" ", command) + ": " + execResult.getStderr() + "Failed to execute " + String.join(" ", command) + ": " + execResult.getStdout() ); } } From 58119ed04d53efc1e5af84700320731eae574917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Wed, 12 Nov 2025 14:55:17 -0600 Subject: [PATCH 006/269] Set default docker API version to 1.44 (#11216) Fixes #11212 --- .../dockerclient/DockerClientProviderStrategy.java | 2 +- .../testcontainers/junit/ComposeContainerWithBuildTest.java | 3 ++- .../junit/DockerComposeContainerWithBuildTest.java | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java index 33f59c78ddb..e16beeb6614 100644 --- a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java +++ b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java @@ -404,7 +404,7 @@ public static DockerClient getClientForConfig(TransportConfig transportConfig) { DefaultDockerClientConfig.Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder(); if (configBuilder.build().getApiVersion() == RemoteApiVersion.UNKNOWN_VERSION) { - configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_32); + configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_44); } Map headers = new HashMap<>(); headers.put("x-tc-sid", DockerClientFactory.SESSION_ID); diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java index 03ced374f70..454dae985be 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java @@ -10,6 +10,7 @@ import org.testcontainers.utility.DockerImageName; import java.io.File; +import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Stream; @@ -97,7 +98,7 @@ private boolean isImagePresent(final String imageName) { .instance() .client() .listImagesCmd() - .withImageNameFilter(imageName) + .withFilter("reference", Collections.singletonList(imageName)) .exec() .stream() .findFirst() diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java index 4c3c69e8d76..f0cbe11cbb9 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java @@ -10,6 +10,7 @@ import org.testcontainers.utility.DockerImageName; import java.io.File; +import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Stream; @@ -102,7 +103,7 @@ private boolean isImagePresent(final String imageName) { .instance() .client() .listImagesCmd() - .withImageNameFilter(imageName) + .withFilter("reference", Collections.singletonList(imageName)) .exec() .stream() .findFirst() From f3e4cd594f255ddbbc0668655dfe4bf318b1ae4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Wed, 12 Nov 2025 21:42:38 -0600 Subject: [PATCH 007/269] Update docker-java version to 3.7.0 (#11218) --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index a31a828d8e6..da9ec1f2a44 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -80,8 +80,8 @@ dependencies { shaded 'org.awaitility:awaitility:4.3.0' - api platform('com.github.docker-java:docker-java-bom:3.6.0') - shaded platform('com.github.docker-java:docker-java-bom:3.6.0') + api platform('com.github.docker-java:docker-java-bom:3.7.0') + shaded platform('com.github.docker-java:docker-java-bom:3.7.0') api "com.github.docker-java:docker-java-api" From a434e357a27238fc043b5891f07c49ae4a5cb588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 13 Nov 2025 09:17:42 -0600 Subject: [PATCH 008/269] Set version to moby-latest workflow --- .github/workflows/moby-latest.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index b6af77feb2a..c948de0c70c 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -14,9 +14,9 @@ jobs: strategy: matrix: include: - - { install-docker-type: "STABLE", channel: stable, rootless: false } - - { install-docker-type: "ROOTLESS", channel: stable, rootless: true } - - { install-docker-type: "ROOTFUL", channel: test, rootless: false } + - { install-docker-type: "STABLE", version: latest, channel: stable, rootless: false } + - { install-docker-type: "ROOTLESS", version: latest, channel: stable, rootless: true } + - { install-docker-type: "ROOTFUL", version: edge, channel: test, rootless: false } name: "Core tests using Docker ${{ matrix.install-docker-type }} (channel ${{ matrix.channel }})" runs-on: ubuntu-22.04 continue-on-error: true @@ -28,6 +28,7 @@ jobs: id: setup_docker uses: docker/setup-docker-action@v4 with: + version: ${{ matrix.version }} channel: ${{ matrix.channel }} rootless: ${{ matrix.rootless }} From 9dcf4f0910b868565637fae29ecff0026a2700a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 13 Nov 2025 10:36:50 -0600 Subject: [PATCH 009/269] Add docker version input in moby-latest workflow --- .github/workflows/moby-latest.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index c948de0c70c..aa6a8afa809 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -2,6 +2,12 @@ name: Tests against recent Docker engine releases on: workflow_dispatch: + inputs: + version: + description: 'Docker version' + required: false + default: 'latest' + type: string schedule: # nightly build, at 23:59 CEST - cron: '59 23 * * *' @@ -14,8 +20,8 @@ jobs: strategy: matrix: include: - - { install-docker-type: "STABLE", version: latest, channel: stable, rootless: false } - - { install-docker-type: "ROOTLESS", version: latest, channel: stable, rootless: true } + - { install-docker-type: "STABLE", version: "${{ inputs.version }}", channel: stable, rootless: false } + - { install-docker-type: "ROOTLESS", version: "${{ inputs.version }}", channel: stable, rootless: true } - { install-docker-type: "ROOTFUL", version: edge, channel: test, rootless: false } name: "Core tests using Docker ${{ matrix.install-docker-type }} (channel ${{ matrix.channel }})" runs-on: ubuntu-22.04 From 623ea96b36ba0eed442f41e1de58bcb37f7cd3e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Thu, 13 Nov 2025 11:44:41 -0600 Subject: [PATCH 010/269] Update docker image version to 25.0.5 (#11219) --- .../ComposeContainerWithServicesTest.java | 18 +++++++++--------- .../junit/ComposeContainerOverrideTest.java | 4 ++-- .../junit/ComposeContainerPortViaEnvTest.java | 2 +- .../junit/ComposeContainerScalingTest.java | 2 +- .../junit/ComposeContainerTest.java | 4 ++-- .../ComposeContainerVolumeRemovalTest.java | 2 +- .../junit/ComposeContainerWithBuildTest.java | 2 +- .../ComposeContainerWithCopyFilesTest.java | 8 ++++---- .../ComposeContainerWithWaitStrategies.java | 4 ++-- .../junit/ComposeErrorHandlingTest.java | 2 +- .../junit/ComposePassthroughTest.java | 2 +- .../junit/ComposeWaitStrategyTest.java | 2 +- .../junit/ComposeWithIdentifierTest.java | 2 +- .../junit/ComposeWithNetworkTest.java | 2 +- .../spock/ComposeContainerIT.groovy | 2 +- .../spock/SharedComposeContainerIT.groovy | 2 +- 16 files changed, 30 insertions(+), 30 deletions(-) diff --git a/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java b/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java index 8b3b3fa8fa5..0e921316bf3 100644 --- a/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java +++ b/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java @@ -31,7 +31,7 @@ class ComposeContainerWithServicesTest { @Test void testDesiredSubsetOfServicesAreStarted() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), SIMPLE_COMPOSE_FILE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE) .withServices("redis") ) { compose.start(); @@ -43,7 +43,7 @@ void testDesiredSubsetOfServicesAreStarted() { @Test void testDesiredSubsetOfScaledServicesAreStarted() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), SIMPLE_COMPOSE_FILE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE) .withScaledService("redis", 2) ) { compose.start(); @@ -55,7 +55,7 @@ void testDesiredSubsetOfScaledServicesAreStarted() { @Test void testDesiredSubsetOfSpecifiedAndScaledServicesAreStarted() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), SIMPLE_COMPOSE_FILE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE) .withServices("redis") .withScaledService("redis", 2) ) { @@ -68,7 +68,7 @@ void testDesiredSubsetOfSpecifiedAndScaledServicesAreStarted() { @Test void testDesiredSubsetOfSpecifiedOrScaledServicesAreStarted() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), SIMPLE_COMPOSE_FILE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE) .withServices("other") .withScaledService("redis", 2) ) { @@ -81,7 +81,7 @@ void testDesiredSubsetOfSpecifiedOrScaledServicesAreStarted() { @Test void testAllServicesAreStartedIfNotSpecified() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), SIMPLE_COMPOSE_FILE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE) ) { compose.start(); @@ -93,7 +93,7 @@ void testAllServicesAreStartedIfNotSpecified() { void testScaleInComposeFileIsRespected() { try ( ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), COMPOSE_FILE_WITH_INLINE_SCALE ) ) { @@ -110,7 +110,7 @@ void testStartupTimeoutSetsTheHighestTimeout() { catchThrowable(() -> { try ( ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), SIMPLE_COMPOSE_FILE ) .withServices("redis") @@ -133,7 +133,7 @@ void testStartupTimeoutSetsTheHighestTimeout() { void testWaitingForHealthcheck() { try ( ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), COMPOSE_FILE_WITH_HEALTHCHECK ) .waitingFor("redis", Wait.forHealthcheck().withStartupTimeout(Duration.ofMinutes(2))) @@ -148,7 +148,7 @@ void testWaitingForHealthcheck() { void testWaitingForHealthcheckWithRestartDoesNotCrash() { try ( ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), COMPOSE_FILE_WITH_HEALTHCHECK ) .waitingFor("redis", Wait.forHealthcheck().withStartupTimeout(Duration.ofMinutes(1))) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java index 028d883b320..bf38af0f929 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java @@ -19,7 +19,7 @@ class ComposeContainerOverrideTest { @Test void readEnvironment() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), BASE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE) .withExposedService("redis", 6379) ) { compose.start(); @@ -34,7 +34,7 @@ void readEnvironment() { @Test void resetEnvironment() { try ( - ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), BASE, OVERRIDE) + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE, OVERRIDE) .withExposedService("redis", 6379) ) { compose.start(); diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java index b45db1a4f8a..f0a8873f8f3 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java @@ -10,7 +10,7 @@ class ComposeContainerPortViaEnvTest extends BaseComposeTest { @AutoClose public ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/v2-compose-test-port-via-env.yml") ) .withExposedService("redis-1", REDIS_PORT) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java index 50c6ef062ef..3ef559bcda3 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java @@ -27,7 +27,7 @@ public static void checkVersion() { @AutoClose public ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/composev2/scaled-compose-test.yml") ) .withScaledService("redis", 3) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java index 9e68c7513df..9f3299ab441 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java @@ -18,7 +18,7 @@ class ComposeContainerTest extends BaseComposeTest { // composeContainerConstructor { public ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/composev2/compose-test.yml") ) .withExposedService("redis-1", REDIS_PORT) @@ -88,7 +88,7 @@ void shouldCreateContainerWhenFileNotPrefixedWithPath() throws IOException { Files.write(filePathNotStartWithDotSlash.toPath(), validYaml.getBytes(StandardCharsets.UTF_8)); final ComposeContainer dockerComposeContainer = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), filePathNotStartWithDotSlash ); assertThat(dockerComposeContainer).as("Container created using docker compose file").isNotNull(); diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java index cebfc2a9706..d194204078f 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java @@ -29,7 +29,7 @@ void performTest(boolean removeVolumes, boolean shouldVolumesBePresentAfterRunni final AtomicReference volumeName = new AtomicReference<>(""); try ( - ComposeContainer environment = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), composeFile) + ComposeContainer environment = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), composeFile) .withExposedService("redis", 6379) .withRemoveVolumes(removeVolumes) .withRemoveImages(ComposeContainer.RemoveImages.ALL) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java index 454dae985be..714767914a0 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java @@ -39,7 +39,7 @@ void performTest( final AtomicReference builtImageName = new AtomicReference<>(""); final AtomicReference pulledImageName = new AtomicReference<>(""); try ( - ComposeContainer environment = new ComposeContainer(DockerImageName.parse("docker:24.0.2"), composeFile) + ComposeContainer environment = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), composeFile) .withExposedService("customredis", 6379) .withBuild(true) .withRemoveImages(removeMode) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java index cc9c2dad594..3568550ca38 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java @@ -18,7 +18,7 @@ class ComposeContainerWithCopyFilesTest { void testShouldCopyAllFilesByDefault() throws IOException { try ( ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/compose-file-copy-inclusions/compose.yml") ) .withExposedService("app", 8080) @@ -34,7 +34,7 @@ void testShouldCopyAllFilesByDefault() throws IOException { void testWithFileCopyInclusionUsingFilePath() throws IOException { try ( ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/compose-file-copy-inclusions/compose-root-only.yml") ) .withExposedService("app", 8080) @@ -54,7 +54,7 @@ void testWithFileCopyInclusionUsingDirectoryPath() throws IOException { try ( // composeContainerWithCopyFiles { ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/compose-file-copy-inclusions/compose-test-only.yml") ) .withExposedService("app", 8080) @@ -73,7 +73,7 @@ void testWithFileCopyInclusionUsingDirectoryPath() throws IOException { void testShouldNotBeAbleToStartIfNeededEnvFileIsNotCopied() { try ( ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/compose-file-copy-inclusions/compose-test-only.yml") ) .withExposedService("app", 8080) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java index 07ce8e41ef1..3330b302ed3 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java @@ -19,7 +19,7 @@ void testComposeContainerConstructor() { try ( // composeContainerWithCombinedWaitStrategies { ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/composev2/compose-test.yml") ) .withExposedService("redis-1", REDIS_PORT, Wait.forSuccessfulCommand("redis-cli ping")) @@ -36,7 +36,7 @@ void testComposeContainerWaitForPortWithTimeout() { try ( // composeContainerWaitForPortWithTimeout { ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/composev2/compose-test.yml") ) .withExposedService( diff --git a/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java b/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java index acabcaf9e87..df4338ec236 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java @@ -16,7 +16,7 @@ void simpleTest() { assertThat( catchThrowable(() -> { ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/invalid-compose.yml") ) .withExposedService("something", 123); diff --git a/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java b/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java index 7bc47d79c9d..38d0139c1cc 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java @@ -27,7 +27,7 @@ public static void checkVersion() { @AutoClose public ComposeContainer compose = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/v2-compose-test-passthrough.yml") ) .withEnv("foo", "bar") diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java index 2bec1aec819..371c70dafac 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java @@ -26,7 +26,7 @@ class ComposeWaitStrategyTest { public final void setUp() { environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/composev2/compose-test.yml") ); } diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java index c02b9874126..0a5c0b868c8 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java @@ -10,7 +10,7 @@ class ComposeWithIdentifierTest extends BaseComposeTest { @AutoClose public ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), "TEST", new File("src/test/resources/v2-compose-test.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java index 1003c3d5404..9fdf55a83a1 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java @@ -10,7 +10,7 @@ class ComposeWithNetworkTest extends BaseComposeTest { @AutoClose public ComposeContainer environment = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/v2-compose-test-with-network.yml") ) .withExposedService("redis-1", REDIS_PORT); diff --git a/modules/spock/src/test/groovy/org/testcontainers/spock/ComposeContainerIT.groovy b/modules/spock/src/test/groovy/org/testcontainers/spock/ComposeContainerIT.groovy index a190f1ea3b6..89de5aed88d 100644 --- a/modules/spock/src/test/groovy/org/testcontainers/spock/ComposeContainerIT.groovy +++ b/modules/spock/src/test/groovy/org/testcontainers/spock/ComposeContainerIT.groovy @@ -11,7 +11,7 @@ import spock.lang.Specification class ComposeContainerIT extends Specification { ComposeContainer composeContainer = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/docker-compose.yml")) .withExposedService("whoami-1", 80, Wait.forHttp("/")) diff --git a/modules/spock/src/test/groovy/org/testcontainers/spock/SharedComposeContainerIT.groovy b/modules/spock/src/test/groovy/org/testcontainers/spock/SharedComposeContainerIT.groovy index 020005f923f..dc71687011f 100644 --- a/modules/spock/src/test/groovy/org/testcontainers/spock/SharedComposeContainerIT.groovy +++ b/modules/spock/src/test/groovy/org/testcontainers/spock/SharedComposeContainerIT.groovy @@ -13,7 +13,7 @@ class SharedComposeContainerIT extends Specification { @Shared ComposeContainer composeContainer = new ComposeContainer( - DockerImageName.parse("docker:24.0.2"), + DockerImageName.parse("docker:25.0.5"), new File("src/test/resources/docker-compose.yml")) .withExposedService("whoami-1", 80, Wait.forHttp("/")) From c331fe6e2696d4d53a97ce044c176bfc03e3944b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 13 Nov 2025 16:47:01 -0600 Subject: [PATCH 011/269] [create-pull-request] automated change (#11221) Co-authored-by: eddumelendez <1810547+eddumelendez@users.noreply.github.com> --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 60e224f9dfa..04842f28fcd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -140,4 +140,4 @@ nav: - bounty.md edit_uri: edit/main/docs/ extra: - latest_version: 2.0.1 + latest_version: 2.0.2 From a3a44ddb0bf0d07a036c6fabb028fe3964f3599f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 13 Nov 2025 16:47:21 -0600 Subject: [PATCH 012/269] [create-pull-request] automated change (#11220) Co-authored-by: eddumelendez <1810547+eddumelendez@users.noreply.github.com> --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ce0f80d957e..ec5fc8fddec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.caching=true org.gradle.configureondemand=true org.gradle.jvmargs=-Xmx2g -testcontainers.version=2.0.1 +testcontainers.version=2.0.2 From 01aad116fc25a96bcb10606cab1ded6c8fb0b286 Mon Sep 17 00:00:00 2001 From: Jack Green Date: Thu, 13 Nov 2025 22:48:16 +0000 Subject: [PATCH 013/269] Fix GitHub-Action Generate PR descriptions (#11129) When `update-docs-version` ran, it created this PR - https://github.com/testcontainers/testcontainers-java/pull/11110: > Update docs version to ${GITHUB_REF##*/} Update docs version to ${GITHUB_REF##*/} The branch name was not expanded in the PR description, it uses Bash syntax not applicable outside of a `run` block Fixed by replacing Bash expansion to derive the branch name with the _actual_ branch name. --- .github/workflows/update-docs-version.yml | 6 +++--- .github/workflows/update-testcontainers-version.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-docs-version.yml b/.github/workflows/update-docs-version.yml index 5bbf47c3484..6e9981b19ac 100644 --- a/.github/workflows/update-docs-version.yml +++ b/.github/workflows/update-docs-version.yml @@ -20,14 +20,14 @@ jobs: ref: main - name: Update latest_version property in mkdocs.yml run: | - sed -i "s/latest_version: .*/latest_version: ${GITHUB_REF##*/}/g" mkdocs.yml + sed -i "s/latest_version: .*/latest_version: ${GITHUB_REF_NAME}/g" mkdocs.yml git diff - name: Create Pull Request uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v3.10.1 with: - title: Update docs version to ${GITHUB_REF##*/} + title: Update docs version to ${{ github.ref_name }} body: | - Update docs version to ${GITHUB_REF##*/} + Update docs version to ${{ github.ref_name }} skip-checks: true branch: update-docs-version delete-branch: true diff --git a/.github/workflows/update-testcontainers-version.yml b/.github/workflows/update-testcontainers-version.yml index 90d249c7d3f..9cf679e8952 100644 --- a/.github/workflows/update-testcontainers-version.yml +++ b/.github/workflows/update-testcontainers-version.yml @@ -20,13 +20,13 @@ jobs: ref: main - name: Update testcontainers.version property in gradle.properties run: | - sed -i "s/^testcontainers\.version=.*/testcontainers\.version=${GITHUB_REF##*/}/g" gradle.properties + sed -i "s/^testcontainers\.version=.*/testcontainers\.version=${GITHUB_REF_NAME}/g" gradle.properties git diff - name: Create Pull Request uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v3.10.1 with: - title: Update testcontainers version to ${GITHUB_REF##*/} + title: Update testcontainers version to ${{ github.ref_name }} body: | - Update testcontainers version to ${GITHUB_REF##*/} + Update testcontainers version to ${{ github.ref_name }} branch: update-tc-version delete-branch: true From 2b53c476a249b58e7f7d827f20dcdb7e6fdf4d0e Mon Sep 17 00:00:00 2001 From: John William Vicente <58832150+JohnWill14@users.noreply.github.com> Date: Thu, 13 Nov 2025 19:49:32 -0300 Subject: [PATCH 014/269] Dead links in CircleCI reference documentation (#10789) --- .../continuous_integration/circle_ci.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/supported_docker_environment/continuous_integration/circle_ci.md b/docs/supported_docker_environment/continuous_integration/circle_ci.md index d6e85a62a79..936192cc799 100644 --- a/docs/supported_docker_environment/continuous_integration/circle_ci.md +++ b/docs/supported_docker_environment/continuous_integration/circle_ci.md @@ -1,7 +1,7 @@ # CircleCI (Cloud, Server v2.x, and Server v3.x) Your CircleCI configuration should use a dedicated VM for Testcontainers to work. You can achieve this by specifying the -executor type in your `.circleci/config.yml` to be `machine` instead of the default `docker` executor (see [Choosing an Executor Type](https://circleci.com/docs/2.0/executor-types/) for more info). +executor type in your `.circleci/config.yml` to be `machine` instead of the default `docker` executor (see [Choosing an Executor Type](https://circleci.com/docs/executor-intro) for more info). Here is a sample CircleCI configuration that does a checkout of a project and runs Maven: From bf039b0019bfdc35834ee931adced6e8ae580e91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 01:23:56 +0000 Subject: [PATCH 015/269] Bump com.clickhouse:clickhouse-jdbc in /modules/clickhouse Bumps [com.clickhouse:clickhouse-jdbc](https://github.com/ClickHouse/clickhouse-java) from 0.9.2 to 0.9.4. - [Release notes](https://github.com/ClickHouse/clickhouse-java/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-java/compare/v0.9.2...v0.9.4) --- updated-dependencies: - dependency-name: com.clickhouse:clickhouse-jdbc dependency-version: 0.9.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/clickhouse/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/clickhouse/build.gradle b/modules/clickhouse/build.gradle index 1579ea834ce..91d80a687d7 100644 --- a/modules/clickhouse/build.gradle +++ b/modules/clickhouse/build.gradle @@ -5,12 +5,12 @@ dependencies { api project(':testcontainers-jdbc') compileOnly project(':testcontainers-r2dbc') - compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.2', classifier: 'http') + compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.2', classifier: 'all') + testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.4', classifier: 'all') - testImplementation 'com.clickhouse:client-v2:0.9.2' + testImplementation 'com.clickhouse:client-v2:0.9.4' testImplementation testFixtures(project(':testcontainers-r2dbc')) - testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.2', classifier: 'http') + testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http') } From 3429129c4aabacd49bd9bb0fcd056df0aeb45319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 02:02:12 +0000 Subject: [PATCH 016/269] Bump org.apache.commons:commons-lang3 in /modules/jdbc-test Bumps org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-lang3 dependency-version: 3.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index a6759030313..907f0760540 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -2,7 +2,7 @@ dependencies { api project(':testcontainers-jdbc') api 'com.google.guava:guava:33.5.0-jre' - api 'org.apache.commons:commons-lang3:3.19.0' + api 'org.apache.commons:commons-lang3:3.20.0' api 'com.zaxxer:HikariCP-java6:2.3.13' api 'commons-dbutils:commons-dbutils:1.8.1' From bbd1bb0dbfcf1c2e3aae210ce47d13d566f76fca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 02:02:25 +0000 Subject: [PATCH 017/269] Bump org.apache.tomcat:tomcat-jdbc in /modules/jdbc Bumps org.apache.tomcat:tomcat-jdbc from 11.0.11 to 11.0.14. --- updated-dependencies: - dependency-name: org.apache.tomcat:tomcat-jdbc dependency-version: 11.0.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc/build.gradle b/modules/jdbc/build.gradle index 958734d33e1..f34c99c0385 100644 --- a/modules/jdbc/build.gradle +++ b/modules/jdbc/build.gradle @@ -6,7 +6,7 @@ dependencies { compileOnly 'org.jetbrains:annotations:26.0.2-1' testImplementation 'commons-dbutils:commons-dbutils:1.8.1' testImplementation 'org.vibur:vibur-dbcp:26.0' - testImplementation 'org.apache.tomcat:tomcat-jdbc:11.0.11' + testImplementation 'org.apache.tomcat:tomcat-jdbc:11.0.14' testImplementation 'com.zaxxer:HikariCP-java6:2.3.13' testImplementation ('org.mockito:mockito-core:4.11.0') { exclude(module: 'hamcrest-core') From b7602dbaeaa8a02ecc080e3c9680f486d1d6611b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 02:02:30 +0000 Subject: [PATCH 018/269] Bump org.apache.tomcat:tomcat-jdbc in /modules/jdbc-test Bumps org.apache.tomcat:tomcat-jdbc from 11.0.11 to 11.0.14. --- updated-dependencies: - dependency-name: org.apache.tomcat:tomcat-jdbc dependency-version: 11.0.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index a6759030313..a8940c591f9 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -8,7 +8,7 @@ dependencies { api 'org.assertj:assertj-core:3.27.6' - api 'org.apache.tomcat:tomcat-jdbc:11.0.11' + api 'org.apache.tomcat:tomcat-jdbc:11.0.14' api 'org.vibur:vibur-dbcp:26.0' api 'com.mysql:mysql-connector-j:8.2.0' api 'org.junit.jupiter:junit-jupiter:5.13.4' From 2cb913cf7047e08671ace70c0d4880e0aa4fb35b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 02:04:57 +0000 Subject: [PATCH 019/269] Bump com.microsoft.sqlserver:mssql-jdbc in /modules/azure Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 13.2.0.jre8 to 13.3.0.jre8-preview. - [Release notes](https://github.com/Microsoft/mssql-jdbc/releases) - [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md) - [Commits](https://github.com/Microsoft/mssql-jdbc/commits) --- updated-dependencies: - dependency-name: com.microsoft.sqlserver:mssql-jdbc dependency-version: 13.3.0.jre8-preview dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/azure/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index 517a981b707..e68cadf8b6e 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -13,5 +13,5 @@ dependencies { testImplementation 'com.azure:azure-data-tables' testImplementation 'com.azure:azure-messaging-eventhubs' testImplementation 'com.azure:azure-messaging-servicebus' - testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.2.0.jre8' + testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' } From 5f96a1b91532af039b118b496d27e6958d48c6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 2 Dec 2025 22:05:53 +0100 Subject: [PATCH 020/269] Exclude JUnit 6 via dependabot --- .github/dependabot.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 72a6d9110b6..01674d35061 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -18,6 +18,10 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" update-types: [ "version-update:semver-minor", "version-update:semver-patch" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit.platform:junit-platform-launcher" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/" allow: @@ -30,6 +34,10 @@ updates: ignore: - dependency-name: "com.gradleup.shadow" update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit.platform:junit-platform-launcher" + update-types: [ "version-update:semver-major" ] # Explicit entry for each module - package-ecosystem: "gradle" @@ -347,6 +355,9 @@ updates: directory: "/modules/spock" schedule: interval: "monthly" + ignore: + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] open-pull-requests-limit: 10 - package-ecosystem: "gradle" directory: "/modules/tidb" @@ -412,6 +423,10 @@ updates: update-types: [ "version-update:semver-major", "version-update:semver-minor" ] - dependency-name: "com.hazelcast:hazelcast" update-types: [ "version-update:semver-minor" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit.platform:junit-platform-launcher" + update-types: [ "version-update:semver-major" ] # Smoke test - package-ecosystem: "gradle" @@ -424,6 +439,10 @@ updates: update-types: [ "version-update:semver-minor" ] - dependency-name: "com.diffplug.spotless" update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit.platform:junit-platform-launcher" + update-types: [ "version-update:semver-major" ] # GitHub Actions - package-ecosystem: "github-actions" From 3b788ccd2f2c36abc363e7f18888f03991efe32d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 21:10:54 +0000 Subject: [PATCH 021/269] Bump com.microsoft.sqlserver:mssql-jdbc in /modules/mssqlserver Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 13.2.0.jre8 to 13.3.0.jre8-preview. - [Release notes](https://github.com/Microsoft/mssql-jdbc/releases) - [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md) - [Commits](https://github.com/Microsoft/mssql-jdbc/commits) --- updated-dependencies: - dependency-name: com.microsoft.sqlserver:mssql-jdbc dependency-version: 13.3.0.jre8-preview dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/mssqlserver/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mssqlserver/build.gradle b/modules/mssqlserver/build.gradle index ca6fd1b66bb..6561dbbe486 100644 --- a/modules/mssqlserver/build.gradle +++ b/modules/mssqlserver/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.2.0.jre8' + testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' testImplementation project(':testcontainers-r2dbc') testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' From bb80763782060a48bf4b2c44b815c6763e267094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 2 Dec 2025 22:16:11 +0100 Subject: [PATCH 022/269] Revert "Skip databend module in CI (#10793)" This reverts commit 15f3c0da97deef1e08593fa40a906873faebd84a. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa2946ea657..8d7f5f65a27 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,7 +98,7 @@ jobs: # we should not push empty results to the cache READ_ONLY_REMOTE_GRADLE_CACHE: true run: | - TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'del(.[] | select(. == ":testcontainers-databend:check" or . == ":testcontainers:check" or startswith(":docs:")))' --compact-output) + TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'del(.[] | select(. == ":testcontainers:check" or startswith(":docs:")))' --compact-output) echo $TASKS echo "matrix={\"gradle_args\":$TASKS}" >> $GITHUB_OUTPUT check: From e1e150ba255ab10cce776591c2d8e57589f85d4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 2 Dec 2025 23:06:46 +0100 Subject: [PATCH 023/269] Exclude com.gradleup.shadow via dependabot --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 01674d35061..1e89c9cb9e3 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -38,6 +38,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] + - dependency-name: "com.gradleup.shadow" + update-types: [ "version-update:semver-major" ] # Explicit entry for each module - package-ecosystem: "gradle" @@ -427,6 +429,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] + - dependency-name: "com.gradleup.shadow" + update-types: [ "version-update:semver-major" ] # Smoke test - package-ecosystem: "gradle" @@ -443,6 +447,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] + - dependency-name: "com.gradleup.shadow" + update-types: [ "version-update:semver-major" ] # GitHub Actions - package-ecosystem: "github-actions" From 786877eac4e5006251248f0a984c16e5ec89dba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 2 Dec 2025 23:16:48 +0100 Subject: [PATCH 024/269] Exclude JUnit 6 via dependabot --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1e89c9cb9e3..2d5826c160a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -153,6 +153,8 @@ updates: ignore: - dependency-name: "org.apache.tomcat:tomcat-jdbc" update-types: [ "version-update:semver-minor" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/junit-jupiter" schedule: From 7d25a3118360271966ab0f378f5039aa1d9da723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Wed, 3 Dec 2025 15:56:10 +0100 Subject: [PATCH 025/269] Fix dependabot --- .github/dependabot.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2d5826c160a..1a71f6e1cb6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -38,8 +38,6 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] - - dependency-name: "com.gradleup.shadow" - update-types: [ "version-update:semver-major" ] # Explicit entry for each module - package-ecosystem: "gradle" From fa9c69a742305a02f839c3aee3c5b2ca54ea1442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 15:50:30 +0000 Subject: [PATCH 026/269] Bump com.databend:databend-jdbc from 0.4.0 to 0.4.1 in /modules/databend Bumps [com.databend:databend-jdbc](https://github.com/databendcloud/databend-jdbc) from 0.4.0 to 0.4.1. - [Release notes](https://github.com/databendcloud/databend-jdbc/releases) - [Commits](https://github.com/databendcloud/databend-jdbc/compare/v0.4.0...v0.4.1) --- updated-dependencies: - dependency-name: com.databend:databend-jdbc dependency-version: 0.4.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/databend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index d9a5655b4ed..9da45a6fab9 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.databend:databend-jdbc:0.4.0' + testRuntimeOnly 'com.databend:databend-jdbc:0.4.1' } From 15b9397a1eb0d72c48d43540afb94ec2f600a7c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 4 Dec 2025 15:06:57 -0600 Subject: [PATCH 027/269] Exclude JUnit 6 via dependabot --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1a71f6e1cb6..5e1b5000846 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -161,6 +161,8 @@ updates: ignore: - dependency-name: "org.mockito:mockito-core" update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/k3s" schedule: @@ -314,6 +316,8 @@ updates: ignore: - dependency-name: "io.r2dbc:r2dbc-spi" update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + - dependency-name: "org.junit.jupiter:junit-jupiter" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/rabbitmq" schedule: From 6385e83974b958c0a380130192e0cbf414711f8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 21:12:01 +0000 Subject: [PATCH 028/269] Bump org.junit.jupiter:junit-jupiter in /modules/r2dbc Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.13.4 to 5.14.1. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.1) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter dependency-version: 5.14.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index 1e777a82d55..ecf02924009 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -13,5 +13,5 @@ dependencies { testFixturesImplementation 'io.projectreactor:reactor-core:3.7.11' testFixturesImplementation 'org.assertj:assertj-core:3.27.6' - testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' + testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.1' } From a8042ffdc9c6058b6f3a698216274077a29abbbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:52:55 +0000 Subject: [PATCH 029/269] Bump com.mysql:mysql-connector-j from 8.2.0 to 9.5.0 in /modules/tidb Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/tidb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tidb/build.gradle b/modules/tidb/build.gradle index 66298ac6635..264d00fc883 100644 --- a/modules/tidb/build.gradle +++ b/modules/tidb/build.gradle @@ -4,6 +4,6 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:8.2.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' } From 57663e027b92816fcdf2c27c271eea80348136c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 01:13:58 +0000 Subject: [PATCH 030/269] Bump com.squareup.okhttp3:okhttp from 5.1.0 to 5.3.2 in /modules/azure Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.1.0 to 5.3.2. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-5.1.0...parent-5.3.2) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.3.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/azure/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index e68cadf8b6e..681a6dc47e6 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') api project(':testcontainers-mssqlserver') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.1.0' + shaded 'com.squareup.okhttp3:okhttp:5.3.2' testImplementation platform("com.azure:azure-sdk-bom:1.2.32") testImplementation 'com.azure:azure-cosmos' From 744538daa0a8dfe532a6fac02075282988715c5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:11:02 +0000 Subject: [PATCH 031/269] Bump org.junit.jupiter:junit-jupiter in /modules/jdbc-test Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.13.4 to 5.14.1. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.1) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter dependency-version: 5.14.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index 5f4e0baafbd..f7b081acf7b 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -11,5 +11,5 @@ dependencies { api 'org.apache.tomcat:tomcat-jdbc:11.0.14' api 'org.vibur:vibur-dbcp:26.0' api 'com.mysql:mysql-connector-j:9.5.0' - api 'org.junit.jupiter:junit-jupiter:5.13.4' + api 'org.junit.jupiter:junit-jupiter:5.14.1' } From 978ae2c1447aaf710cc4d2ec7a8d4972bec1e8ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:17:11 +0000 Subject: [PATCH 032/269] Bump com.squareup.okhttp3:okhttp in /modules/couchbase Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.1.0 to 5.3.2. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-5.1.0...parent-5.3.2) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.3.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/couchbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/couchbase/build.gradle b/modules/couchbase/build.gradle index 251aa918330..e08696a654a 100644 --- a/modules/couchbase/build.gradle +++ b/modules/couchbase/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Couchbase" dependencies { api project(':testcontainers') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.1.0' + shaded 'com.squareup.okhttp3:okhttp:5.3.2' testImplementation 'com.couchbase.client:java-client:3.9.1' testImplementation 'org.awaitility:awaitility:4.3.0' From 801393ba8a9787a3c3a32ed2ec4055b0659f4862 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:17:57 +0000 Subject: [PATCH 033/269] Bump org.apache.tinkerpop:gremlin-driver in /modules/orientdb Bumps [org.apache.tinkerpop:gremlin-driver](https://github.com/apache/tinkerpop) from 3.7.4 to 3.8.0. - [Changelog](https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc) - [Commits](https://github.com/apache/tinkerpop/compare/3.7.4...3.8.0) --- updated-dependencies: - dependency-name: org.apache.tinkerpop:gremlin-driver dependency-version: 3.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index e815c9ff111..c9b492de2f9 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -5,6 +5,6 @@ dependencies { api "com.orientechnologies:orientdb-client:3.2.44" - testImplementation 'org.apache.tinkerpop:gremlin-driver:3.7.4' + testImplementation 'org.apache.tinkerpop:gremlin-driver:3.8.0' testImplementation "com.orientechnologies:orientdb-gremlin:3.2.44" } From 7a362fd8f2731bc07810b10ac74bc048918f641d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:18:01 +0000 Subject: [PATCH 034/269] Bump com.orientechnologies:orientdb-gremlin in /modules/orientdb Bumps [com.orientechnologies:orientdb-gremlin](https://github.com/orientechnologies/orientdb-gremlin) from 3.2.44 to 3.2.46. - [Commits](https://github.com/orientechnologies/orientdb-gremlin/compare/3.2.44...3.2.46) --- updated-dependencies: - dependency-name: com.orientechnologies:orientdb-gremlin dependency-version: 3.2.46 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index e815c9ff111..358acf05d96 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -3,8 +3,8 @@ description = "Testcontainers :: Orientdb" dependencies { api project(":testcontainers") - api "com.orientechnologies:orientdb-client:3.2.44" + api "com.orientechnologies:orientdb-client:3.2.46" testImplementation 'org.apache.tinkerpop:gremlin-driver:3.7.4' - testImplementation "com.orientechnologies:orientdb-gremlin:3.2.44" + testImplementation "com.orientechnologies:orientdb-gremlin:3.2.46" } From d9817d3f76c36d17454867561a6e352bdc5c0337 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:18:06 +0000 Subject: [PATCH 035/269] Bump com.orientechnologies:orientdb-client in /modules/orientdb Bumps [com.orientechnologies:orientdb-client](https://github.com/orientechnologies/orientdb) from 3.2.44 to 3.2.46. - [Release notes](https://github.com/orientechnologies/orientdb/releases) - [Changelog](https://github.com/orientechnologies/orientdb/blob/3.2.46/history.txt) - [Commits](https://github.com/orientechnologies/orientdb/compare/3.2.44...3.2.46) --- updated-dependencies: - dependency-name: com.orientechnologies:orientdb-client dependency-version: 3.2.46 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index e815c9ff111..358acf05d96 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -3,8 +3,8 @@ description = "Testcontainers :: Orientdb" dependencies { api project(":testcontainers") - api "com.orientechnologies:orientdb-client:3.2.44" + api "com.orientechnologies:orientdb-client:3.2.46" testImplementation 'org.apache.tinkerpop:gremlin-driver:3.7.4' - testImplementation "com.orientechnologies:orientdb-gremlin:3.2.44" + testImplementation "com.orientechnologies:orientdb-gremlin:3.2.46" } From a236bee75a0d525a459692e335c425a24b18dd63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:18:16 +0000 Subject: [PATCH 036/269] Bump com.squareup.okhttp3:okhttp from 5.1.0 to 5.3.2 in /modules/solr Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.1.0 to 5.3.2. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-5.1.0...parent-5.3.2) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.3.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/solr/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/solr/build.gradle b/modules/solr/build.gradle index 8340de66f2c..ca44d695421 100644 --- a/modules/solr/build.gradle +++ b/modules/solr/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Solr" dependencies { api project(':testcontainers') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.1.0' + shaded 'com.squareup.okhttp3:okhttp:5.3.2' testImplementation 'org.apache.solr:solr-solrj:8.11.4' } From 2fb02e4e6d57495413158591d3fdee174bf31b51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:19:28 +0000 Subject: [PATCH 037/269] Bump com.mysql:mysql-connector-j in /modules/oceanbase Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/oceanbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oceanbase/build.gradle b/modules/oceanbase/build.gradle index 5758598fb67..1fc1eb82e43 100644 --- a/modules/oceanbase/build.gradle +++ b/modules/oceanbase/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:8.2.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' } From b7b9ff2154d19e349edf968d76cb6ad1d47c2e5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:19:28 +0000 Subject: [PATCH 038/269] Bump com.mysql:mysql-connector-j from 8.2.0 to 9.5.0 in /modules/mysql Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/mysql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mysql/build.gradle b/modules/mysql/build.gradle index 1ec899c424e..4a104559330 100644 --- a/modules/mysql/build.gradle +++ b/modules/mysql/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.asyncer:r2dbc-mysql:1.4.1' testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:8.2.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.asyncer:r2dbc-mysql:1.4.1' From d189c7b148fcf453a6b9ae08ad44cc415a77e8e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:19:42 +0000 Subject: [PATCH 039/269] Bump com.mysql:mysql-connector-j in /modules/junit-jupiter Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 01af88a3aab..a1df33fec98 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -15,5 +15,5 @@ dependencies { } testRuntimeOnly 'org.postgresql:postgresql:42.7.8' - testRuntimeOnly 'com.mysql:mysql-connector-j:8.2.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' } From e5771040b6d27a91cf28403d82642956214b95d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:20:17 +0000 Subject: [PATCH 040/269] Bump com.mysql:mysql-connector-j from 8.2.0 to 9.5.0 in /modules/spock Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 9.5.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...9.5.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.5.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index e2f1ce4554f..25ec090581c 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -16,7 +16,7 @@ dependencies { testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testRuntimeOnly 'org.postgresql:postgresql:42.7.8' - testRuntimeOnly 'com.mysql:mysql-connector-j:8.2.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' testRuntimeOnly platform('org.junit:junit-bom:5.13.4') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-testkit' From 0e64f6933e5bd7a44256d2bada0aef99a01cd1f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 19:52:43 +0000 Subject: [PATCH 041/269] Bump redis.clients:jedis from 6.2.0 to 7.1.0 in /modules/junit-jupiter Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 6.2.0 to 7.1.0. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v6.2.0...v7.1.0) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index a1df33fec98..9569f6f1d30 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -8,7 +8,7 @@ dependencies { testImplementation project(':testcontainers-mysql') testImplementation project(':testcontainers-postgresql') testImplementation 'com.zaxxer:HikariCP:7.0.2' - testImplementation 'redis.clients:jedis:6.2.0' + testImplementation 'redis.clients:jedis:7.1.0' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testImplementation ('org.mockito:mockito-core:4.11.0') { exclude(module: 'hamcrest-core') From f3a28577cb9879173d1224a50db3764e44c7a933 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 19:52:45 +0000 Subject: [PATCH 042/269] Bump org.junit:junit-bom from 5.13.4 to 5.14.1 in /modules/junit-jupiter Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.13.4 to 5.14.1. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.1) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-version: 5.14.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index a1df33fec98..7439ecdae0a 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -2,7 +2,7 @@ description = "Testcontainers :: JUnit Jupiter Extension" dependencies { api project(':testcontainers') - implementation platform('org.junit:junit-bom:5.13.4') + implementation platform('org.junit:junit-bom:5.14.1') implementation 'org.junit.jupiter:junit-jupiter-api' testImplementation project(':testcontainers-mysql') From 79d60e8f2cfebbf780b746bcf2c702e185390f2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 19:52:50 +0000 Subject: [PATCH 043/269] Bump org.junit:junit-bom from 5.13.4 to 5.14.1 in /modules/spock Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.13.4 to 5.14.1. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.1) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-version: 5.14.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index 25ec090581c..53e945c8108 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -17,7 +17,7 @@ dependencies { testRuntimeOnly 'org.postgresql:postgresql:42.7.8' testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' - testRuntimeOnly platform('org.junit:junit-bom:5.13.4') + testRuntimeOnly platform('org.junit:junit-bom:5.14.1') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-testkit' From 38e52bd9e72b15729fdf4f7f04a64d622080e872 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 17:59:18 +0000 Subject: [PATCH 044/269] Bump com.couchbase.client:java-client in /modules/couchbase Bumps [com.couchbase.client:java-client](https://github.com/couchbase/couchbase-jvm-clients) from 3.9.1 to 3.10.0. - [Commits](https://github.com/couchbase/couchbase-jvm-clients/compare/3.9.1...3.10.0) --- updated-dependencies: - dependency-name: com.couchbase.client:java-client dependency-version: 3.10.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/couchbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/couchbase/build.gradle b/modules/couchbase/build.gradle index e08696a654a..a37998f75f0 100644 --- a/modules/couchbase/build.gradle +++ b/modules/couchbase/build.gradle @@ -5,6 +5,6 @@ dependencies { // TODO use JDK's HTTP client and/or Apache HttpClient5 shaded 'com.squareup.okhttp3:okhttp:5.3.2' - testImplementation 'com.couchbase.client:java-client:3.9.1' + testImplementation 'com.couchbase.client:java-client:3.10.0' testImplementation 'org.awaitility:awaitility:4.3.0' } From f96c9d1e28da1e9a6bf85e71c7d3e24cff706edd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:33:46 +0000 Subject: [PATCH 045/269] Bump com.unboundid:unboundid-ldapsdk in /modules/ldap Bumps [com.unboundid:unboundid-ldapsdk](https://github.com/pingidentity/ldapsdk) from 7.0.3 to 7.0.4. - [Release notes](https://github.com/pingidentity/ldapsdk/releases) - [Changelog](https://github.com/pingidentity/ldapsdk/blob/master/docs/release-notes.html) - [Commits](https://github.com/pingidentity/ldapsdk/commits) --- updated-dependencies: - dependency-name: com.unboundid:unboundid-ldapsdk dependency-version: 7.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/ldap/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ldap/build.gradle b/modules/ldap/build.gradle index 62f57581cf3..d357bb9996c 100644 --- a/modules/ldap/build.gradle +++ b/modules/ldap/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: LDAP" dependencies { api project(':testcontainers') - testImplementation 'com.unboundid:unboundid-ldapsdk:7.0.3' + testImplementation 'com.unboundid:unboundid-ldapsdk:7.0.4' } From 3c1fe2ae37abc366909b5cb6b470b885d798d1d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:33:49 +0000 Subject: [PATCH 046/269] Bump software.amazon.awssdk:dynamodb in /modules/scylladb Bumps software.amazon.awssdk:dynamodb from 2.34.8 to 2.40.1. --- updated-dependencies: - dependency-name: software.amazon.awssdk:dynamodb dependency-version: 2.40.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/scylladb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scylladb/build.gradle b/modules/scylladb/build.gradle index 28e91cca882..efa12d591da 100644 --- a/modules/scylladb/build.gradle +++ b/modules/scylladb/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(":testcontainers") testImplementation 'com.scylladb:java-driver-core:4.19.0.1' - testImplementation 'software.amazon.awssdk:dynamodb:2.34.8' + testImplementation 'software.amazon.awssdk:dynamodb:2.40.4' } From ccd2e418ae9238a2e18f44b2f6cb81a00096154d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:33:55 +0000 Subject: [PATCH 047/269] Bump software.amazon.awssdk:bom in /modules/localstack Bumps software.amazon.awssdk:bom from 2.35.0 to 2.40.1. --- updated-dependencies: - dependency-name: software.amazon.awssdk:bom dependency-version: 2.40.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/localstack/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/localstack/build.gradle b/modules/localstack/build.gradle index 5b76d4581ba..130f7cdfef7 100644 --- a/modules/localstack/build.gradle +++ b/modules/localstack/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Localstack" dependencies { api project(':testcontainers') - testImplementation platform("software.amazon.awssdk:bom:2.35.0") + testImplementation platform("software.amazon.awssdk:bom:2.40.4") testImplementation 'software.amazon.awssdk:s3' testImplementation 'software.amazon.awssdk:sqs' testImplementation 'software.amazon.awssdk:cloudwatchlogs' From 48fca06cca11ccb3a6ceee504d53559f1794bae5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:34:05 +0000 Subject: [PATCH 048/269] Bump com.hivemq:hivemq-extension-sdk in /modules/hivemq Bumps [com.hivemq:hivemq-extension-sdk](https://github.com/hivemq/hivemq-extension-sdk) from 4.45.0 to 4.47.0. - [Release notes](https://github.com/hivemq/hivemq-extension-sdk/releases) - [Commits](https://github.com/hivemq/hivemq-extension-sdk/compare/4.45.0...4.47.0) --- updated-dependencies: - dependency-name: com.hivemq:hivemq-extension-sdk dependency-version: 4.47.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 22ad28298a4..dabb35df363 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -12,7 +12,7 @@ dependencies { shaded("net.lingala.zip4j:zip4j:2.11.5") testImplementation(project(":testcontainers-junit-jupiter")) - testImplementation("com.hivemq:hivemq-extension-sdk:4.45.0") + testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.10") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") testImplementation("ch.qos.logback:logback-classic:1.5.19") From 14a6c8c78dfc5b3d1462ff4a40a7c8b81575e411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:34:09 +0000 Subject: [PATCH 049/269] Bump com.rabbitmq:amqp-client from 5.26.0 to 5.28.0 in /modules/rabbitmq Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.26.0 to 5.28.0. - [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases) - [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.26.0...v5.28.0) --- updated-dependencies: - dependency-name: com.rabbitmq:amqp-client dependency-version: 5.28.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/rabbitmq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rabbitmq/build.gradle b/modules/rabbitmq/build.gradle index f83ca738d0b..ce7d5caaa6e 100644 --- a/modules/rabbitmq/build.gradle +++ b/modules/rabbitmq/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: RabbitMQ" dependencies { api project(":testcontainers") - testImplementation 'com.rabbitmq:amqp-client:5.26.0' + testImplementation 'com.rabbitmq:amqp-client:5.28.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' } From f116557469aa87679c263c4229d589afc2e05400 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:34:13 +0000 Subject: [PATCH 050/269] Bump org.typesense:typesense-java in /modules/typesense Bumps [org.typesense:typesense-java](https://github.com/typesense/typesense-java) from 1.3.0 to 2.0.0. - [Release notes](https://github.com/typesense/typesense-java/releases) - [Commits](https://github.com/typesense/typesense-java/compare/v1.3.0...v2.0.0) --- updated-dependencies: - dependency-name: org.typesense:typesense-java dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/typesense/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/typesense/build.gradle b/modules/typesense/build.gradle index 84a5978ba81..17d6135b604 100644 --- a/modules/typesense/build.gradle +++ b/modules/typesense/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: Typesense" dependencies { api project(':testcontainers') - testImplementation 'org.typesense:typesense-java:1.3.0' + testImplementation 'org.typesense:typesense-java:2.0.0' } From b560d7c4361f308fdaf3a4d3b6da446e37576024 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 18:34:19 +0000 Subject: [PATCH 051/269] Bump com.scylladb:java-driver-core in /modules/scylladb Bumps [com.scylladb:java-driver-core](https://github.com/scylladb/java-driver) from 4.19.0.1 to 4.19.0.3. - [Release notes](https://github.com/scylladb/java-driver/releases) - [Commits](https://github.com/scylladb/java-driver/compare/4.19.0.1...4.19.0.3) --- updated-dependencies: - dependency-name: com.scylladb:java-driver-core dependency-version: 4.19.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/scylladb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scylladb/build.gradle b/modules/scylladb/build.gradle index 28e91cca882..883ce486380 100644 --- a/modules/scylladb/build.gradle +++ b/modules/scylladb/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: ScyllaDB" dependencies { api project(":testcontainers") - testImplementation 'com.scylladb:java-driver-core:4.19.0.1' + testImplementation 'com.scylladb:java-driver-core:4.19.0.4' testImplementation 'software.amazon.awssdk:dynamodb:2.34.8' } From 47306dacd2f074abf3443cf76f1d7946b19e2c8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:02 +0000 Subject: [PATCH 052/269] Bump io.opentelemetry:opentelemetry-bom in /modules/grafana Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.54.1 to 1.56.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.54.1...v1.56.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-version: 1.56.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index 4b9092e4786..1a407f66729 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -7,7 +7,7 @@ dependencies { testImplementation 'io.micrometer:micrometer-registry-otlp:1.15.4' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' - testImplementation platform('io.opentelemetry:opentelemetry-bom:1.54.1') + testImplementation platform('io.opentelemetry:opentelemetry-bom:1.57.0') testImplementation 'io.opentelemetry:opentelemetry-api' testImplementation 'io.opentelemetry:opentelemetry-sdk' testImplementation 'io.opentelemetry:opentelemetry-exporter-otlp' From a34e21fd6f6fe9fd10506540a9fcad25ca08c0b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:03 +0000 Subject: [PATCH 053/269] Bump org.elasticsearch.client:elasticsearch-rest-client Bumps [org.elasticsearch.client:elasticsearch-rest-client](https://github.com/elastic/elasticsearch) from 9.1.4 to 9.2.2. - [Release notes](https://github.com/elastic/elasticsearch/releases) - [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md) - [Commits](https://github.com/elastic/elasticsearch/compare/v9.1.4...v9.2.2) --- updated-dependencies: - dependency-name: org.elasticsearch.client:elasticsearch-rest-client dependency-version: 9.2.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/elasticsearch/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elasticsearch/build.gradle b/modules/elasticsearch/build.gradle index e1926d25028..860a7d11526 100644 --- a/modules/elasticsearch/build.gradle +++ b/modules/elasticsearch/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: elasticsearch" dependencies { api project(':testcontainers') - testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.1.4" + testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.2.2" testImplementation "org.elasticsearch.client:transport:7.17.29" } From 5e26c13c5e152977a356bc7a2b18f24bbeffff97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:12 +0000 Subject: [PATCH 054/269] Bump com.ibm.db2:jcc from 12.1.2.0 to 12.1.3.0 in /modules/db2 Bumps com.ibm.db2:jcc from 12.1.2.0 to 12.1.3.0. --- updated-dependencies: - dependency-name: com.ibm.db2:jcc dependency-version: 12.1.3.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/db2/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/db2/build.gradle b/modules/db2/build.gradle index a15081c9614..a0c3bc79e85 100644 --- a/modules/db2/build.gradle +++ b/modules/db2/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.ibm.db2:jcc:12.1.2.0' + testRuntimeOnly 'com.ibm.db2:jcc:12.1.3.0' } From a0003ed9559a1508465caeea1792e814d673e90a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:13 +0000 Subject: [PATCH 055/269] Bump io.micrometer:micrometer-registry-otlp in /modules/grafana Bumps [io.micrometer:micrometer-registry-otlp](https://github.com/micrometer-metrics/micrometer) from 1.15.4 to 1.16.0. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.15.4...v1.16.0) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-registry-otlp dependency-version: 1.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index 4b9092e4786..b8426d43145 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') testImplementation 'io.rest-assured:rest-assured:5.5.6' - testImplementation 'io.micrometer:micrometer-registry-otlp:1.15.4' + testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.1' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' testImplementation platform('io.opentelemetry:opentelemetry-bom:1.54.1') From d2e5882cea02890b8d8e70022621f1a902c425a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:18 +0000 Subject: [PATCH 056/269] Bump commons-io:commons-io from 2.20.0 to 2.21.0 in /modules/hivemq Bumps [commons-io:commons-io](https://github.com/apache/commons-io) from 2.20.0 to 2.21.0. - [Changelog](https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt) - [Commits](https://github.com/apache/commons-io/compare/rel/commons-io-2.20.0...rel/commons-io-2.21.0) --- updated-dependencies: - dependency-name: commons-io:commons-io dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 22ad28298a4..8861b687cf6 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -5,7 +5,7 @@ dependencies { api("org.jetbrains:annotations:26.0.2-1") shaded("org.apache.commons:commons-lang3:3.19.0") - shaded("commons-io:commons-io:2.20.0") + shaded("commons-io:commons-io:2.21.0") shaded("org.javassist:javassist:3.30.2-GA") shaded("org.jboss.shrinkwrap:shrinkwrap-api:1.2.6") shaded("org.jboss.shrinkwrap:shrinkwrap-impl-base:1.2.6") From 6f5a5baf2dcb4bb03c329747869a280f98d3efaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:38 +0000 Subject: [PATCH 057/269] Bump io.kubernetes:client-java in /modules/k3s Bumps [io.kubernetes:client-java](https://github.com/kubernetes-client/java) from 24.0.0-legacy to 25.0.0-legacy. - [Release notes](https://github.com/kubernetes-client/java/releases) - [Changelog](https://github.com/kubernetes-client/java/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes-client/java/compare/v24.0.0-legacy...v25.0.0-legacy) --- updated-dependencies: - dependency-name: io.kubernetes:client-java dependency-version: 25.0.0-legacy dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/k3s/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/k3s/build.gradle b/modules/k3s/build.gradle index aab1a2aa40f..010494fe94c 100644 --- a/modules/k3s/build.gradle +++ b/modules/k3s/build.gradle @@ -7,5 +7,5 @@ dependencies { shaded 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.4' testImplementation 'io.fabric8:kubernetes-client:7.4.0' - testImplementation 'io.kubernetes:client-java:24.0.0-legacy' + testImplementation 'io.kubernetes:client-java:25.0.0-legacy' } From f487f3370841355f83d6b248060464270f0b0c2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:37:54 +0000 Subject: [PATCH 058/269] Bump com.influxdb:influxdb-client-java in /modules/influxdb Bumps [com.influxdb:influxdb-client-java](https://github.com/influxdata/influxdb-client-java) from 7.3.0 to 7.4.0. - [Release notes](https://github.com/influxdata/influxdb-client-java/releases) - [Changelog](https://github.com/influxdata/influxdb-client-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/influxdata/influxdb-client-java/compare/v7.3.0...v7.4.0) --- updated-dependencies: - dependency-name: com.influxdb:influxdb-client-java dependency-version: 7.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/influxdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/influxdb/build.gradle b/modules/influxdb/build.gradle index 53056f2f5bc..bc743e6bbce 100644 --- a/modules/influxdb/build.gradle +++ b/modules/influxdb/build.gradle @@ -6,5 +6,5 @@ dependencies { compileOnly 'org.influxdb:influxdb-java:2.25' testImplementation 'org.influxdb:influxdb-java:2.25' - testImplementation "com.influxdb:influxdb-client-java:7.3.0" + testImplementation "com.influxdb:influxdb-client-java:7.4.0" } From 913faa63f36600dcc10f3a714bb46d95d7d6c2c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:38:02 +0000 Subject: [PATCH 059/269] Bump redis.clients:jedis from 6.2.0 to 7.1.0 in /modules/toxiproxy Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 6.2.0 to 7.1.0. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v6.2.0...v7.1.0) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/toxiproxy/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/toxiproxy/build.gradle b/modules/toxiproxy/build.gradle index d6480227889..261f6c29384 100644 --- a/modules/toxiproxy/build.gradle +++ b/modules/toxiproxy/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') api 'eu.rekawek.toxiproxy:toxiproxy-java:2.1.11' - testImplementation 'redis.clients:jedis:6.2.0' + testImplementation 'redis.clients:jedis:7.1.0' } From 8828f99b9aa9e33e5bc99b67e1de09d76c98e5db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:39:14 +0000 Subject: [PATCH 060/269] Bump io.projectreactor:reactor-core in /modules/r2dbc Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.7.11 to 3.8.0. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.7.11...v3.8.0) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-version: 3.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index ecf02924009..42b422257a8 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' testImplementation project(':testcontainers-postgresql') - testFixturesImplementation 'io.projectreactor:reactor-core:3.7.11' + testFixturesImplementation 'io.projectreactor:reactor-core:3.8.1' testFixturesImplementation 'org.assertj:assertj-core:3.27.6' testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.1' } From 51292fd4a0153cc4e2b657527ae2bc8c00d52833 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:39:44 +0000 Subject: [PATCH 061/269] Bump com.solacesystems:sol-jcsmp in /modules/solace Bumps [com.solacesystems:sol-jcsmp](https://github.com/SolaceDev/solsuite) from 10.28.1 to 10.29.0. - [Commits](https://github.com/SolaceDev/solsuite/commits) --- updated-dependencies: - dependency-name: com.solacesystems:sol-jcsmp dependency-version: 10.29.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/solace/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/solace/build.gradle b/modules/solace/build.gradle index 83583fd5cdf..ab0e9555aae 100644 --- a/modules/solace/build.gradle +++ b/modules/solace/build.gradle @@ -5,7 +5,7 @@ dependencies { shaded 'org.awaitility:awaitility:4.3.0' - testImplementation 'com.solacesystems:sol-jcsmp:10.28.1' + testImplementation 'com.solacesystems:sol-jcsmp:10.29.0' testImplementation 'org.apache.qpid:qpid-jms-client:0.61.0' testImplementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' testImplementation 'org.apache.httpcomponents:fluent-hc:4.5.14' From 5f11ab70bafe2990d25bc4484bd59d08716c650c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:41:03 +0000 Subject: [PATCH 062/269] Bump io.milvus:milvus-sdk-java from 2.6.5 to 2.6.10 in /modules/milvus Bumps [io.milvus:milvus-sdk-java](https://github.com/milvus-io/milvus-sdk-java) from 2.6.5 to 2.6.10. - [Release notes](https://github.com/milvus-io/milvus-sdk-java/releases) - [Changelog](https://github.com/milvus-io/milvus-sdk-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/milvus-io/milvus-sdk-java/compare/v2.6.5...v2.6.10) --- updated-dependencies: - dependency-name: io.milvus:milvus-sdk-java dependency-version: 2.6.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/milvus/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/milvus/build.gradle b/modules/milvus/build.gradle index 2aec7fc1da3..cb4ef3b2145 100644 --- a/modules/milvus/build.gradle +++ b/modules/milvus/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: Milvus" dependencies { api project(':testcontainers') - testImplementation 'io.milvus:milvus-sdk-java:2.6.5' + testImplementation 'io.milvus:milvus-sdk-java:2.6.10' } From 51be1c5c030292ac1fd4f8a18ea72b04bea7f0ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:41:11 +0000 Subject: [PATCH 063/269] Bump org.apache.activemq:activemq-client in /modules/activemq Bumps [org.apache.activemq:activemq-client](https://github.com/apache/activemq) from 6.1.7 to 6.2.0. - [Commits](https://github.com/apache/activemq/compare/activemq-6.1.7...activemq-6.2.0) --- updated-dependencies: - dependency-name: org.apache.activemq:activemq-client dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/activemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/activemq/build.gradle b/modules/activemq/build.gradle index f0ad74ba76b..27dfcf3b852 100644 --- a/modules/activemq/build.gradle +++ b/modules/activemq/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: ActiveMQ" dependencies { api project(':testcontainers') - testImplementation "org.apache.activemq:activemq-client:6.1.7" + testImplementation "org.apache.activemq:activemq-client:6.2.0" testImplementation "org.apache.activemq:artemis-jakarta-client:2.42.0" } From bc55c2ce5ca6cbab386abd33ebadae12d072663b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:41:31 +0000 Subject: [PATCH 064/269] Bump org.apache.activemq:artemis-jakarta-client in /modules/activemq Bumps org.apache.activemq:artemis-jakarta-client from 2.42.0 to 2.44.0. --- updated-dependencies: - dependency-name: org.apache.activemq:artemis-jakarta-client dependency-version: 2.44.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/activemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/activemq/build.gradle b/modules/activemq/build.gradle index f0ad74ba76b..d96cbfa0f8c 100644 --- a/modules/activemq/build.gradle +++ b/modules/activemq/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation "org.apache.activemq:activemq-client:6.1.7" - testImplementation "org.apache.activemq:artemis-jakarta-client:2.42.0" + testImplementation "org.apache.activemq:artemis-jakarta-client:2.44.0" } From 2039c62068f758e2b9311cb847e0899616935a23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:42:10 +0000 Subject: [PATCH 065/269] Bump com.google.cloud:libraries-bom in /modules/gcloud Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.69.0 to 26.72.0. - [Release notes](https://github.com/googleapis/java-cloud-bom/releases) - [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json) - [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.69.0...v26.72.0) --- updated-dependencies: - dependency-name: com.google.cloud:libraries-bom dependency-version: 26.72.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/gcloud/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gcloud/build.gradle b/modules/gcloud/build.gradle index 79b856cf06e..54271098ebc 100644 --- a/modules/gcloud/build.gradle +++ b/modules/gcloud/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: GCloud" dependencies { api project(':testcontainers') - testImplementation platform("com.google.cloud:libraries-bom:26.69.0") + testImplementation platform("com.google.cloud:libraries-bom:26.72.0") testImplementation 'com.google.cloud:google-cloud-bigquery' testImplementation 'com.google.cloud:google-cloud-datastore' testImplementation 'com.google.cloud:google-cloud-firestore' From 5a913c4ad59afb2e1ca738cfe7124af6adab1a07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:44:25 +0000 Subject: [PATCH 066/269] Bump io.qdrant:client from 1.15.0 to 1.16.1 in /modules/qdrant Bumps [io.qdrant:client](https://github.com/qdrant/java-client) from 1.15.0 to 1.16.1. - [Release notes](https://github.com/qdrant/java-client/releases) - [Commits](https://github.com/qdrant/java-client/compare/v1.15.0...v1.16.1) --- updated-dependencies: - dependency-name: io.qdrant:client dependency-version: 1.16.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/qdrant/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qdrant/build.gradle b/modules/qdrant/build.gradle index c67fd6c7f74..849cafeb37f 100644 --- a/modules/qdrant/build.gradle +++ b/modules/qdrant/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Qdrant" dependencies { api project(':testcontainers') - testImplementation 'io.qdrant:client:1.15.0' + testImplementation 'io.qdrant:client:1.16.1' testImplementation platform('io.grpc:grpc-bom:1.75.0') testImplementation 'io.grpc:grpc-stub' testImplementation 'io.grpc:grpc-protobuf' From f8dbdcaad37a22a0686f00036af5898c73f9d713 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:44:52 +0000 Subject: [PATCH 067/269] Bump org.apache.kafka:kafka-clients in /modules/redpanda Bumps org.apache.kafka:kafka-clients from 4.1.0 to 4.1.1. --- updated-dependencies: - dependency-name: org.apache.kafka:kafka-clients dependency-version: 4.1.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/redpanda/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/redpanda/build.gradle b/modules/redpanda/build.gradle index 74e91674c70..3f60fd8db71 100644 --- a/modules/redpanda/build.gradle +++ b/modules/redpanda/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') shaded 'org.freemarker:freemarker:2.3.34' - testImplementation 'org.apache.kafka:kafka-clients:4.1.0' + testImplementation 'org.apache.kafka:kafka-clients:4.1.1' testImplementation 'io.rest-assured:rest-assured:5.5.6' testImplementation 'org.awaitility:awaitility:4.3.0' } From d076f2fea66891f60ce8baee258e19fd713c70b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:45:34 +0000 Subject: [PATCH 068/269] Bump dev.openfga:openfga-sdk from 0.9.0 to 0.9.3 in /modules/openfga Bumps [dev.openfga:openfga-sdk](https://github.com/openfga/java-sdk) from 0.9.0 to 0.9.3. - [Release notes](https://github.com/openfga/java-sdk/releases) - [Changelog](https://github.com/openfga/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/openfga/java-sdk/compare/v0.9.0...v0.9.3) --- updated-dependencies: - dependency-name: dev.openfga:openfga-sdk dependency-version: 0.9.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/openfga/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openfga/build.gradle b/modules/openfga/build.gradle index f681fe841e2..c483eb8e5e6 100644 --- a/modules/openfga/build.gradle +++ b/modules/openfga/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: OpenFGA" dependencies { api project(':testcontainers') - testImplementation 'dev.openfga:openfga-sdk:0.9.0' + testImplementation 'dev.openfga:openfga-sdk:0.9.4' } test { From 0bd9966a3981ff330a3d5338a0bd71271811370a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Thu, 11 Dec 2025 11:46:19 -0600 Subject: [PATCH 069/269] Update questdb/questdb image version to 9.2.2 (#11347) --- .../src/test/java/org/testcontainers/QuestDBTestImages.java | 2 +- .../org/testcontainers/junit/questdb/SimpleQuestDBTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/questdb/src/test/java/org/testcontainers/QuestDBTestImages.java b/modules/questdb/src/test/java/org/testcontainers/QuestDBTestImages.java index 555b56f172c..14e42d72fae 100644 --- a/modules/questdb/src/test/java/org/testcontainers/QuestDBTestImages.java +++ b/modules/questdb/src/test/java/org/testcontainers/QuestDBTestImages.java @@ -3,5 +3,5 @@ import org.testcontainers.utility.DockerImageName; public interface QuestDBTestImages { - DockerImageName QUESTDB_IMAGE = DockerImageName.parse("questdb/questdb:6.5.3"); + DockerImageName QUESTDB_IMAGE = DockerImageName.parse("questdb/questdb:9.2.2"); } diff --git a/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java b/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java index aad4df70c2c..6b0ff6e3107 100644 --- a/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java +++ b/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java @@ -27,7 +27,7 @@ class SimpleQuestDBTest extends AbstractContainerDatabaseTest { @Test void testSimple() throws SQLException { try ( // container { - QuestDBContainer questDB = new QuestDBContainer("questdb/questdb:6.5.3") + QuestDBContainer questDB = new QuestDBContainer("questdb/questdb:9.2.2") // } ) { questDB.start(); From d83653df0f53345e0d8b5404a38b81465b220270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Thu, 11 Dec 2025 12:10:36 -0600 Subject: [PATCH 070/269] Fix compatibility with older Docker Engines by falling back to v1.32 (#11346) Previously, minimum Docker API version was raised to v1.44 to keep compatibility with most recent Docker Enginer API. This commit introduces a fallback to API v1.32, which was used before. Fixes #11232 --- .../DockerClientProviderStrategy.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java index e16beeb6614..7b0aaafc169 100644 --- a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java +++ b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java @@ -401,21 +401,34 @@ public static DockerClient getClientForConfig(TransportConfig transportConfig) { throw new IllegalArgumentException("Unknown transport type '" + transportType + "'"); } - DefaultDockerClientConfig.Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder(); + DefaultDockerClientConfig.Builder configBuilder = DefaultDockerClientConfig + .createDefaultConfigBuilder() + .withDockerHost(transportConfig.getDockerHost().toString()); - if (configBuilder.build().getApiVersion() == RemoteApiVersion.UNKNOWN_VERSION) { - configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_44); - } Map headers = new HashMap<>(); headers.put("x-tc-sid", DockerClientFactory.SESSION_ID); headers.put("User-Agent", String.format("tc-java/%s", DockerClientFactory.TESTCONTAINERS_VERSION)); - return DockerClientImpl.getInstance( - new AuthDelegatingDockerClientConfig( - configBuilder.withDockerHost(transportConfig.getDockerHost().toString()).build() - ), - new HeadersAddingDockerHttpClient(dockerHttpClient, headers) - ); + try { + if (configBuilder.build().getApiVersion() == RemoteApiVersion.UNKNOWN_VERSION) { + configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_44); + } + DockerClient client = DockerClientImpl.getInstance( + new AuthDelegatingDockerClientConfig(configBuilder.build()), + new HeadersAddingDockerHttpClient(dockerHttpClient, headers) + ); + log.debug("Pinging Docker API version 1.44."); + client.pingCmd().exec(); + return client; + } catch (Exception ex) { + log.debug("Fallback to Docker API version 1.32."); + return DockerClientImpl.getInstance( + new AuthDelegatingDockerClientConfig( + configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_32).build() + ), + new HeadersAddingDockerHttpClient(dockerHttpClient, headers) + ); + } } public synchronized String getDockerHostIpAddress() { From c769b20fb2559563930b3295d794665f1a5887e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:48:17 +0000 Subject: [PATCH 071/269] Bump org.questdb:questdb from 9.0.3 to 9.2.2 in /modules/questdb Bumps [org.questdb:questdb](https://github.com/questdb/questdb) from 9.0.3 to 9.2.2. - [Release notes](https://github.com/questdb/questdb/releases) - [Commits](https://github.com/questdb/questdb/compare/9.0.3...9.2.2) --- updated-dependencies: - dependency-name: org.questdb:questdb dependency-version: 9.2.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/questdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/questdb/build.gradle b/modules/questdb/build.gradle index ef90382450b..6403e4cd11d 100644 --- a/modules/questdb/build.gradle +++ b/modules/questdb/build.gradle @@ -7,7 +7,7 @@ dependencies { testRuntimeOnly 'org.postgresql:postgresql:42.7.8' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'org.questdb:questdb:9.0.3' + testImplementation 'org.questdb:questdb:9.2.2' testImplementation 'org.awaitility:awaitility:4.3.0' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' } From b955a3f5fb53fe35ed41148781563a6e1eca4722 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:55:41 +0000 Subject: [PATCH 072/269] Bump org.apache.commons:commons-lang3 in /modules/hivemq Bumps org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-lang3 dependency-version: 3.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index bbf2dd665a0..477c3617aa7 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -4,7 +4,7 @@ dependencies { api(project(":testcontainers")) api("org.jetbrains:annotations:26.0.2-1") - shaded("org.apache.commons:commons-lang3:3.19.0") + shaded("org.apache.commons:commons-lang3:3.20.0") shaded("commons-io:commons-io:2.21.0") shaded("org.javassist:javassist:3.30.2-GA") shaded("org.jboss.shrinkwrap:shrinkwrap-api:1.2.6") From 489e4c51c4efd0264c95a41a3879e1dd8b89f2ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:55:45 +0000 Subject: [PATCH 073/269] Bump ch.qos.logback:logback-classic in /modules/hivemq Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.19 to 1.5.21. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.19...v_1.5.21) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.5.21 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index bbf2dd665a0..9cde8122c21 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.10") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") - testImplementation("ch.qos.logback:logback-classic:1.5.19") + testImplementation("ch.qos.logback:logback-classic:1.5.22") } test { From 38fead21c818d1b188db4ae3d223c3582c668115 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:33:50 +0000 Subject: [PATCH 074/269] Bump org.assertj:assertj-core from 3.27.6 to 3.27.7 in /core Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.6 to 3.27.7. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-version: 3.27.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index da9ec1f2a44..24157ce28fe 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -115,14 +115,14 @@ dependencies { // Synthetic JAR used for MountableFileTest and DirectoryTarResourceTest testImplementation files('testlib/repo/fakejar/fakejar/0/fakejar-0.jar') - testImplementation 'org.assertj:assertj-core:3.27.6' + testImplementation 'org.assertj:assertj-core:3.27.7' testImplementation 'io.rest-assured:rest-assured:5.5.6' jarFileTestCompileOnly "org.projectlombok:lombok:${lombok.version}" jarFileTestAnnotationProcessor "org.projectlombok:lombok:${lombok.version}" jarFileTestRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' jarFileTestImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' - jarFileTestImplementation 'org.assertj:assertj-core:3.27.6' + jarFileTestImplementation 'org.assertj:assertj-core:3.27.7' jarFileTestImplementation 'org.ow2.asm:asm-debug-all:5.2' } From 96c84355c4810e8dea2cc64cca0f3e151aee0ece Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:22:53 +0000 Subject: [PATCH 075/269] Bump com.mysql:mysql-connector-j in /modules/junit-jupiter Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 29b896793a9..b9c2fc7bcee 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -15,5 +15,5 @@ dependencies { } testRuntimeOnly 'org.postgresql:postgresql:42.7.8' - testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' } From 1536650bd6872306b5f10eaf1f27d94e53f7dbb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:23:14 +0000 Subject: [PATCH 076/269] Bump com.mysql:mysql-connector-j from 9.5.0 to 9.6.0 in /modules/spock Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index 53e945c8108..7522d7f697f 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -16,7 +16,7 @@ dependencies { testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testRuntimeOnly 'org.postgresql:postgresql:42.7.8' - testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' testRuntimeOnly platform('org.junit:junit-bom:5.14.1') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-testkit' From f79f6c591791ff34970e9e8fd4cfd994fec8aeab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:23:15 +0000 Subject: [PATCH 077/269] Bump com.mysql:mysql-connector-j from 9.5.0 to 9.6.0 in /modules/mysql Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/mysql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mysql/build.gradle b/modules/mysql/build.gradle index 4a104559330..51cf73b1589 100644 --- a/modules/mysql/build.gradle +++ b/modules/mysql/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.asyncer:r2dbc-mysql:1.4.1' testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.asyncer:r2dbc-mysql:1.4.1' From 3b0f061a2a40c43dcff7e11f64174d7ac8495597 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:27:17 +0000 Subject: [PATCH 078/269] Bump org.assertj:assertj-core from 3.27.6 to 3.27.7 in /modules/r2dbc Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.6 to 3.27.7. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-version: 3.27.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index 42b422257a8..3a2a55c7f0d 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -12,6 +12,6 @@ dependencies { testImplementation project(':testcontainers-postgresql') testFixturesImplementation 'io.projectreactor:reactor-core:3.8.1' - testFixturesImplementation 'org.assertj:assertj-core:3.27.6' + testFixturesImplementation 'org.assertj:assertj-core:3.27.7' testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.1' } From 013db9815bd71cc947fb70e5db64b30851e05aff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:31:42 +0000 Subject: [PATCH 079/269] Bump com.mysql:mysql-connector-j from 9.5.0 to 9.6.0 in /modules/tidb Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/tidb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tidb/build.gradle b/modules/tidb/build.gradle index 264d00fc883..7cf52e57ca9 100644 --- a/modules/tidb/build.gradle +++ b/modules/tidb/build.gradle @@ -4,6 +4,6 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' } From dea972503664ebfed2b74957c740e58bd93d579f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Tue, 3 Feb 2026 15:12:59 -0600 Subject: [PATCH 080/269] Update ryuk version to 0.14.0 (#11486) --- .../src/main/java/org/testcontainers/utility/RyukContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/testcontainers/utility/RyukContainer.java b/core/src/main/java/org/testcontainers/utility/RyukContainer.java index 475a957f344..a0139420cab 100644 --- a/core/src/main/java/org/testcontainers/utility/RyukContainer.java +++ b/core/src/main/java/org/testcontainers/utility/RyukContainer.java @@ -9,7 +9,7 @@ class RyukContainer extends GenericContainer { RyukContainer() { - super("testcontainers/ryuk:0.13.0"); + super("testcontainers/ryuk:0.14.0"); withExposedPorts(8080); withCreateContainerCmdModifier(cmd -> { cmd.withName("testcontainers-ryuk-" + DockerClientFactory.SESSION_ID); From 8da56ffeff9f2b6afd712364e40ecc5b3f6ca34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Thu, 26 Feb 2026 15:35:16 -0600 Subject: [PATCH 081/269] Support apache/activemq in ActiveMQContainer (#11498) --- .../activemq/ActiveMQContainer.java | 8 ++++++-- .../activemq/ActiveMQContainerTest.java | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java b/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java index 14814d95da9..9313efc55d6 100644 --- a/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java +++ b/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java @@ -21,7 +21,11 @@ */ public class ActiveMQContainer extends GenericContainer { - private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq-classic"); + private static final DockerImageName APACHE_ACTIVEMQ_CLASSIC_IMAGE = DockerImageName.parse( + "apache/activemq-classic" + ); + + private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq"); private static final int WEB_CONSOLE_PORT = 8161; @@ -45,7 +49,7 @@ public ActiveMQContainer(String image) { public ActiveMQContainer(DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE, APACHE_ACTIVEMQ_CLASSIC_IMAGE); withExposedPorts(WEB_CONSOLE_PORT, TCP_PORT, AMQP_PORT, STOMP_PORT, MQTT_PORT, WS_PORT); waitingFor(Wait.forLogMessage(".*Apache ActiveMQ.*started.*", 1).withStartupTimeout(Duration.ofMinutes(1))); diff --git a/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java b/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java index 564ee5382e7..cb66ebba864 100644 --- a/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java +++ b/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java @@ -10,6 +10,8 @@ import lombok.SneakyThrows; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import static org.assertj.core.api.Assertions.assertThat; @@ -18,7 +20,7 @@ class ActiveMQContainerTest { @Test void test() { try ( // container { - ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3") + ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7") // } ) { activemq.start(); @@ -29,11 +31,20 @@ void test() { } } + @ParameterizedTest + @ValueSource(strings = { "apache/activemq-classic:5.18.7", "apache/activemq:5.18.7" }) + void compatibility(String image) { + try (ActiveMQContainer activemq = new ActiveMQContainer(image)) { + activemq.start(); + assertFunctionality(activemq, false); + } + } + @Test void customCredentials() { try ( // settingCredentials { - ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3") + ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7") .withUser("testcontainers") .withPassword("testcontainers") // } From d00d339406c3c2f9e962cf8736033fab2c8d8c56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:06 +0000 Subject: [PATCH 082/269] Bump org.jetbrains:annotations in /modules/oracle-xe Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/oracle-xe/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-xe/build.gradle b/modules/oracle-xe/build.gradle index 6faeeb9367e..b87fcbec90a 100644 --- a/modules/oracle-xe/build.gradle +++ b/modules/oracle-xe/build.gradle @@ -9,7 +9,7 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' From b674b8fd4728a4b68ac247a0bfc9c7b3b107d084 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:10 +0000 Subject: [PATCH 083/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/jdbc Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/jdbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc/build.gradle b/modules/jdbc/build.gradle index f34c99c0385..149038f2d98 100644 --- a/modules/jdbc/build.gradle +++ b/modules/jdbc/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: JDBC" dependencies { api project(':testcontainers-database-commons') - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' testImplementation 'commons-dbutils:commons-dbutils:1.8.1' testImplementation 'org.vibur:vibur-dbcp:26.0' testImplementation 'org.apache.tomcat:tomcat-jdbc:11.0.14' From f218aa2a69b16a7f08c87e559c8e02bfc4c6aee9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:10 +0000 Subject: [PATCH 084/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/nginx Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/nginx/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nginx/build.gradle b/modules/nginx/build.gradle index 13bd94d88d2..60d24d863d8 100644 --- a/modules/nginx/build.gradle +++ b/modules/nginx/build.gradle @@ -2,5 +2,5 @@ description = "Testcontainers :: Nginx" dependencies { api project(':testcontainers') - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 12899cffc743169adb46a25ff581f2433e16795f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:15 +0000 Subject: [PATCH 085/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/mysql Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/mysql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mysql/build.gradle b/modules/mysql/build.gradle index 4a104559330..b70f826176d 100644 --- a/modules/mysql/build.gradle +++ b/modules/mysql/build.gradle @@ -12,5 +12,5 @@ dependencies { testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.asyncer:r2dbc-mysql:1.4.1' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 3734df0a42e4825ed8d30b9f12b45d731d1fb0dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:31 +0000 Subject: [PATCH 086/269] Bump org.jetbrains:annotations in /modules/presto Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/presto/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/presto/build.gradle b/modules/presto/build.gradle index 874b532fb85..1d2933dec53 100644 --- a/modules/presto/build.gradle +++ b/modules/presto/build.gradle @@ -5,5 +5,5 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') testRuntimeOnly 'io.prestosql:presto-jdbc:350' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 2ad363b1523731923f44569ff8d1d06c41703580 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:37 +0000 Subject: [PATCH 087/269] Bump org.postgresql:postgresql in /modules/cockroachdb Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/cockroachdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cockroachdb/build.gradle b/modules/cockroachdb/build.gradle index 6d7acda1515..275e69eef3d 100644 --- a/modules/cockroachdb/build.gradle +++ b/modules/cockroachdb/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: JDBC :: CockroachDB" dependencies { api project(':testcontainers-jdbc') - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testImplementation project(':testcontainers-jdbc-test') } From a82249fad876dcab878ff32c5c11510a2692fa46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:22:49 +0000 Subject: [PATCH 088/269] Bump org.jetbrains:annotations in /modules/rabbitmq Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/rabbitmq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rabbitmq/build.gradle b/modules/rabbitmq/build.gradle index ce7d5caaa6e..350adce5a76 100644 --- a/modules/rabbitmq/build.gradle +++ b/modules/rabbitmq/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(":testcontainers") testImplementation 'com.rabbitmq:amqp-client:5.28.0' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From c249352a5216fcf530e108e86fc3b1ce6d653bcd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:26:08 +0000 Subject: [PATCH 089/269] Bump org.jetbrains:annotations in /modules/hivemq Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 1cada0e354d..8c1b2c02034 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -2,7 +2,7 @@ description = "Testcontainers :: HiveMQ" dependencies { api(project(":testcontainers")) - api("org.jetbrains:annotations:26.0.2-1") + api("org.jetbrains:annotations:26.1.0") shaded("org.apache.commons:commons-lang3:3.20.0") shaded("commons-io:commons-io:2.21.0") From 3f66ea79aa5c3b93cd0407c3a633ad10341d3e9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:29:47 +0000 Subject: [PATCH 090/269] Bump org.postgresql:postgresql in /modules/questdb Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/questdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/questdb/build.gradle b/modules/questdb/build.gradle index 6403e4cd11d..5e9da5686d8 100644 --- a/modules/questdb/build.gradle +++ b/modules/questdb/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') api project(':testcontainers-jdbc') - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testImplementation project(':testcontainers-jdbc-test') testImplementation 'org.questdb:questdb:9.2.2' From 0e728cc9129887d1e0f6ce4559e879dc9336a0dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:33:12 +0000 Subject: [PATCH 091/269] Bump org.postgresql:postgresql in /modules/cratedb Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/cratedb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cratedb/build.gradle b/modules/cratedb/build.gradle index be60919c0e3..3a93f97cae8 100644 --- a/modules/cratedb/build.gradle +++ b/modules/cratedb/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: JDBC :: CrateDB" dependencies { api project(':testcontainers-jdbc') - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testImplementation project(':testcontainers-jdbc-test') From 2d1fa5bcd5dabac6bffc21e99c821fa26506de47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:33:25 +0000 Subject: [PATCH 092/269] Bump org.jetbrains:annotations in /modules/oracle-free Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/oracle-free/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-free/build.gradle b/modules/oracle-free/build.gradle index e7cc9669632..b99b1bf8e89 100644 --- a/modules/oracle-free/build.gradle +++ b/modules/oracle-free/build.gradle @@ -9,7 +9,7 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' From 985a145a25e782ec795359155803fe77b165dc79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:38:37 +0000 Subject: [PATCH 093/269] Bump com.mysql:mysql-connector-j in /modules/oceanbase Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/oceanbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oceanbase/build.gradle b/modules/oceanbase/build.gradle index 1fc1eb82e43..f570d741f7b 100644 --- a/modules/oceanbase/build.gradle +++ b/modules/oceanbase/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.mysql:mysql-connector-j:9.5.0' + testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' } From 5323acdeb4d399b2dc1a61eb07012a39f86643e6 Mon Sep 17 00:00:00 2001 From: bramvonk Date: Tue, 3 Mar 2026 00:03:35 +0100 Subject: [PATCH 094/269] Use non-deprecated MSSQLServerContainer in ServiceBusEmulatorContainer (#11223) Fixes #11554 --- modules/azure/build.gradle | 4 ++++ .../testcontainers/azure/ServiceBusEmulatorContainer.java | 6 +++--- .../azure/ServiceBusEmulatorContainerTest.java | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index 681a6dc47e6..796f500410b 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -15,3 +15,7 @@ dependencies { testImplementation 'com.azure:azure-messaging-servicebus' testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' } + +tasks.japicmp { + methodExcludes = ["org.testcontainers.azure.ServiceBusEmulatorContainer#withMsSqlServerContainer(org.testcontainers.containers.MSSQLServerContainer)"] +} diff --git a/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java b/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java index fd055a0d39b..4557b6acb6a 100644 --- a/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java +++ b/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java @@ -1,9 +1,9 @@ package org.testcontainers.azure; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.images.builder.Transferable; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.LicenseAcceptance; @@ -25,7 +25,7 @@ public class ServiceBusEmulatorContainer extends GenericContainer msSqlServerContainer; + private MSSQLServerContainer msSqlServerContainer; /** * @param dockerImageName The specified docker image name to run @@ -51,7 +51,7 @@ public ServiceBusEmulatorContainer(final DockerImageName dockerImageName) { * @param msSqlServerContainer The MS SQL Server container used by Service Bus as a dependency * @return this */ - public ServiceBusEmulatorContainer withMsSqlServerContainer(final MSSQLServerContainer msSqlServerContainer) { + public ServiceBusEmulatorContainer withMsSqlServerContainer(final MSSQLServerContainer msSqlServerContainer) { dependsOn(msSqlServerContainer); this.msSqlServerContainer = msSqlServerContainer; return this; diff --git a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java index 6bf6ac80fae..83cd633c5a9 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java @@ -10,8 +10,8 @@ import com.github.dockerjava.api.model.Capability; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.Network; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import org.testcontainers.utility.MountableFile; import java.util.List; @@ -31,7 +31,7 @@ void testWithClient() { Network network = Network.newNetwork(); // } // sqlContainer { - MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer<>( + MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer( "mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04" ) .acceptLicense() From a756bc6a572cde84fbe429b3a1fcf09ba9559581 Mon Sep 17 00:00:00 2001 From: Meyon Soo Kim <39788337+PreAgile@users.noreply.github.com> Date: Fri, 13 Mar 2026 06:55:09 +0900 Subject: [PATCH 095/269] Improve k6 docs (#11564) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #8780 --------- Co-authored-by: Eddú Meléndez Gonzales --- docs/modules/k6.md | 15 +++++++++++++-- .../org/testcontainers/k6/K6ContainerTests.java | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/modules/k6.md b/docs/modules/k6.md index 4783ca1e5ad..13e0ddc9252 100644 --- a/docs/modules/k6.md +++ b/docs/modules/k6.md @@ -11,12 +11,23 @@ Testcontainers module for [k6](https://registry.hub.docker.com/r/grafana/k6). ## Basic script execution -Execute a simple k6 test script, `test.js`, with commandline options and injected script variable. +You can start a K6 container instance from any Java application by using: + + +[Setup the container](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:standard_k6 + + +The test above uses a simple k6 script, `test.js`, with command line options and an injected script variable. + +Once the container is started, you can wait for the test results to be collected: + + +[Wait for test results](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:wait + Create a simple k6 test script to be executed as part of your tests: -[Setup the container](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:standard_k6 [Content of `scripts/test.js`](../../modules/k6/src/test/resources/scripts/test.js) inside_block:access_script_vars diff --git a/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java b/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java index 255cb376b4f..43b390c4db4 100644 --- a/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java +++ b/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java @@ -23,6 +23,7 @@ void k6StandardTest() throws Exception { ) { container.start(); + // wait { WaitingConsumer consumer = new WaitingConsumer(); container.followOutput(consumer); @@ -34,6 +35,7 @@ void k6StandardTest() throws Exception { 3, TimeUnit.SECONDS ); + // } assertThat(container.getLogs()).contains("k6 tests are cool!"); } From 326987f41a5d23e736bf8e92d7f68f6feaabe515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 12 Mar 2026 16:02:39 -0600 Subject: [PATCH 096/269] Update Pull Request template --- .github/pull_request_template.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 31553ebfff1..6137bf623e3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,8 @@ -[Wait for the exposed port and use a custom timeout](../../core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java) inside_block:composeContainerWaitForPortWithTimeout +[Wait for the exposed port and use a custom timeout](../../core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategiesTest.java) inside_block:composeContainerWaitForPortWithTimeout Needless to say, we can define different strategies for each service in our Docker Compose setup. @@ -81,7 +81,7 @@ For example, our Redis container can wait for a successful redis-cli command, while our db service waits for a specific log message: -[Wait for a custom command and a log message](../../core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java) inside_block:composeContainerWithCombinedWaitStrategies +[Wait for a custom command and a log message](../../core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategiesTest.java) inside_block:composeContainerWithCombinedWaitStrategies From 561c4835c24f9f8f32db7aea44552b6b4aa37923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Tue, 24 Mar 2026 10:30:56 -0600 Subject: [PATCH 106/269] Update LocalStack docs (#11581) Fixes #11568 --- docs/modules/localstack.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/modules/localstack.md b/docs/modules/localstack.md index 72d4fc843a7..ca51979f5a0 100644 --- a/docs/modules/localstack.md +++ b/docs/modules/localstack.md @@ -10,15 +10,21 @@ You can start a LocalStack container instance from any Java application by using [Container creation](../../modules/localstack/src/test/java/org/testcontainers/localstack/LocalStackContainerTest.java) inside_block:container +Environment variables listed in the [LocalStack configuration documentation](https://docs.localstack.cloud/references/configuration/) may be used to customize LocalStack's configuration. +Use the `.withEnv(key, value)` method on `LocalStackContainer` to apply configuration settings. + +!!! note + Starting March 23, 2026, `localstack/localstack` requires authentication via a `LOCALSTACK_AUTH_TOKEN` environment variable. Without it, the container will fail to start. + + Use `.withEnv("LOCALSTACK_AUTH_TOKEN", System.getenv("LOCALSTACK_AUTH_TOKEN"))` to pass the token. + See the [LocalStack blog post](https://blog.localstack.cloud/localstack-single-image-next-steps/) for more details. + ## Creating a client using AWS SDK [AWS SDK V2](../../modules/localstack/src/test/java/org/testcontainers/localstack/LocalStackContainerTest.java) inside_block:with_aws_sdk_v2 -Environment variables listed in [Localstack's README](https://github.com/localstack/localstack#configurations) may be used to customize Localstack's configuration. -Use the `.withEnv(key, value)` method on `LocalStackContainer` to apply configuration settings. - ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: From 96653222a3939ae57d344bfecb1d7ea08f57c77a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C5=A1per=20Kojek?= Date: Tue, 24 Mar 2026 19:55:55 +0100 Subject: [PATCH 107/269] Fix jarFileTest cache relocatability (#11574) The jarFileTest task sets `systemProperty("jarFile", absolutePath)` which embeds an absolute path as a task input, making the task not cache-relocatable across different project locations. Fix by: - Using `inputs.files(shadowJar).withPathSensitivity(RELATIVE)` instead of the bare `file()` call (which doesn't register a proper input) - Passing the jar path as a relative path to the system property The test (AbstractJarFileTest) uses `Paths.get(System.getProperty("jarFile"))` which resolves relative paths against the working directory (project dir), so the test works identically with both absolute and relative paths. --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 9a4d413379f..c44ea7b4761 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -34,8 +34,8 @@ task jarFileTest(type: Test) { testClassesDirs = sourceSets.jarFileTest.output.classesDirs classpath = sourceSets.jarFileTest.runtimeClasspath - file(shadowJar.outputs.files.singleFile) // input for correct caching - systemProperty("jarFile", shadowJar.outputs.files.singleFile) + inputs.files(shadowJar).withPathSensitivity(PathSensitivity.RELATIVE) + systemProperty("jarFile", project.projectDir.toPath().relativize(shadowJar.outputs.files.singleFile.toPath()).toString()) dependsOn(shadowJar) } From 7fe356ec4f28c32cace4f179a423a3163f4f0bf0 Mon Sep 17 00:00:00 2001 From: Konstantin Belinski Date: Tue, 24 Mar 2026 20:34:56 +0100 Subject: [PATCH 108/269] Fix LocalStack javadoc (#11570) --- .../org/testcontainers/localstack/LocalStackContainer.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/localstack/src/main/java/org/testcontainers/localstack/LocalStackContainer.java b/modules/localstack/src/main/java/org/testcontainers/localstack/LocalStackContainer.java index 779f9a1e4ad..31eee4ca5ca 100644 --- a/modules/localstack/src/main/java/org/testcontainers/localstack/LocalStackContainer.java +++ b/modules/localstack/src/main/java/org/testcontainers/localstack/LocalStackContainer.java @@ -168,7 +168,7 @@ public URI getEndpoint() { * The access key can be used to construct AWS SDK v2 clients: *
S3Client s3 = S3Client
              .builder()
-             .endpointOverride(localstack.getEndpointOverride(LocalStackContainer.Service.S3))
+             .endpointOverride(localstack.getEndpoint())
              .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(
              localstack.getAccessKey(), localstack.getSecretKey()
              )))
@@ -187,7 +187,7 @@ public String getAccessKey() {
      * The secret key can be used to construct AWS SDK v2 clients:
      * 
S3Client s3 = S3Client
              .builder()
-             .endpointOverride(localstack.getEndpointOverride(LocalStackContainer.Service.S3))
+             .endpointOverride(localstack.getEndpoint())
              .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(
              localstack.getAccessKey(), localstack.getSecretKey()
              )))
@@ -205,7 +205,7 @@ public String getSecretKey() {
      * The region can be used to construct AWS SDK v2 clients:
      * 
S3Client s3 = S3Client
              .builder()
-             .endpointOverride(localstack.getEndpointOverride(LocalStackContainer.Service.S3))
+             .endpointOverride(localstack.getEndpoint())
              .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(
              localstack.getAccessKey(), localstack.getSecretKey()
              )))

From 87ea1068d17ec63beddbdba58d683969dd2125f1 Mon Sep 17 00:00:00 2001
From: Melissa <65674838+meck-gd@users.noreply.github.com>
Date: Wed, 25 Mar 2026 16:39:10 +0100
Subject: [PATCH 109/269] Add support for !override docker compose tag (#11490)

---
 .../containers/ParsedDockerComposeFile.java   |  2 +-
 .../junit/ComposeContainerOverrideTest.java   | 31 +++++++++++++++++++
 .../compose-override/compose-override.yml     |  2 ++
 .../resources/compose-override/compose.yml    |  2 ++
 4 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java b/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java
index d797a86bfbf..2d3104af6b1 100644
--- a/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java
+++ b/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java
@@ -50,7 +50,7 @@ class ParsedDockerComposeFile {
         SafeConstructor constructor = new SafeConstructor(options) {
             @Override
             protected Object constructObject(Node node) {
-                if (node.getTag().equals(new Tag("!reset"))) {
+                if (node.getTag().equals(new Tag("!reset")) || node.getTag().equals(new Tag("!override"))) {
                     return null;
                 }
                 return super.constructObject(node);
diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java
index bf38af0f929..5065aaf62b2 100644
--- a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java
+++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java
@@ -45,4 +45,35 @@ void resetEnvironment() {
             assertThat(container.getConfig().getEnv()).doesNotContain("foo=bar");
         }
     }
+
+    @Test
+    void readLabel() {
+        try (
+            ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE)
+                .withExposedService("redis", 6379)
+        ) {
+            compose.start();
+            InspectContainerResponse container = compose
+                .getContainerByServiceName("redis-1")
+                .map(ContainerState::getContainerInfo)
+                .get();
+            assertThat(container.getConfig().getLabels()).containsKey("label1");
+        }
+    }
+
+    @Test
+    void readOverriddenLabel() {
+        try (
+            ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE, OVERRIDE)
+                .withExposedService("redis", 6379)
+        ) {
+            compose.start();
+            InspectContainerResponse container = compose
+                .getContainerByServiceName("redis-1")
+                .map(ContainerState::getContainerInfo)
+                .get();
+            assertThat(container.getConfig().getLabels()).doesNotContainKey("label1");
+            assertThat(container.getConfig().getLabels()).containsKey("label2");
+        }
+    }
 }
diff --git a/core/src/test/resources/compose-override/compose-override.yml b/core/src/test/resources/compose-override/compose-override.yml
index f5f457a6236..7dbf6ff5987 100644
--- a/core/src/test/resources/compose-override/compose-override.yml
+++ b/core/src/test/resources/compose-override/compose-override.yml
@@ -5,3 +5,5 @@ services:
       - 6379
     environment:
       foo: !reset null
+    labels: !override
+      label2: value2
diff --git a/core/src/test/resources/compose-override/compose.yml b/core/src/test/resources/compose-override/compose.yml
index a304ae82273..9e4a1e9169a 100644
--- a/core/src/test/resources/compose-override/compose.yml
+++ b/core/src/test/resources/compose-override/compose.yml
@@ -5,3 +5,5 @@ services:
       - 6379
     environment:
       foo: bar
+    labels:
+      label1: value1

From 58e48acaed5bde6778e592ad4cd5bc30b694f834 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Wed, 25 Mar 2026 11:56:29 -0600
Subject: [PATCH 110/269] Fix vault docs

---
 docs/modules/vault.md | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/docs/modules/vault.md b/docs/modules/vault.md
index 45d34844b7f..161efa8ccb0 100644
--- a/docs/modules/vault.md
+++ b/docs/modules/vault.md
@@ -4,7 +4,7 @@ Testcontainers module for [Vault](https://github.com/hashicorp/vault). Vault is
 
 ## Usage example
 
-Start Vault container as a `@ClassRule`:
+You can start a Vault container instance from any Java application by using:
 
 
 [Starting a Vault container](../../modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java) inside_block:vaultContainer
@@ -22,21 +22,6 @@ Use Http API to read data from Vault container:
 [Use Http API to read data](../../modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java) inside_block:readFirstSecretPathOverHttpApi
 
 
-Use client library to read data from Vault container:
-
-
-[Use library to read data](../../modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java) inside_block:readWithLibrary
-
-
-[See full example.](https://github.com/testcontainers/testcontainers-java/blob/master/modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java)
-
-## Why Vault in Junit tests?
-
-With the increasing popularity of Vault and secret management, applications are now needing to source secrets from Vault.
-This can prove challenging in the development phase without a running Vault instance readily on hand. This library 
-aims to solve your apps integration testing with Vault. You can also use it to
-test how your application behaves with Vault by writing different test scenarios in Junit.
-
 ## Adding this module to your project dependencies
 
 Add the following dependency to your `pom.xml`/`build.gradle` file:

From 99791ff3d744dd75f13a37b60991002b5cf27787 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Wed, 25 Mar 2026 11:59:55 -0600
Subject: [PATCH 111/269] Fix hivemq docs

---
 docs/modules/hivemq.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/modules/hivemq.md b/docs/modules/hivemq.md
index 0029204a06c..8bba4c18b36 100644
--- a/docs/modules/hivemq.md
+++ b/docs/modules/hivemq.md
@@ -2,7 +2,7 @@
 
 ![hivemq logo](../modules_logos/hivemq-module.png)
 
-Automatic starting HiveMQ docker containers for JUnit4 and JUnit5 tests.
+Automatic starting HiveMQ docker containers for JUnit5 tests.
 This enables testing MQTT client applications and integration testing of custom HiveMQ extensions.
 
 - Community forum: https://community.hivemq.com/

From b1106296b1e089ac62c7270ab4bdbc515c2c0f8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Wed, 25 Mar 2026 16:28:02 -0600
Subject: [PATCH 112/269] Fix neo4j docs

---
 docs/modules/databases/neo4j.md               |  11 +-
 .../containers/Neo4jExampleTest.java          |   2 -
 .../neo4j/Neo4jContainerTest.java             | 140 ++++++++++--------
 3 files changed, 79 insertions(+), 74 deletions(-)

diff --git a/docs/modules/databases/neo4j.md b/docs/modules/databases/neo4j.md
index 9bfb7fbfca7..c7b06e99fe7 100644
--- a/docs/modules/databases/neo4j.md
+++ b/docs/modules/databases/neo4j.md
@@ -9,19 +9,12 @@ the Testcontainers integration supports also newer 5.x images of Neo4j.
 
 ## Usage example
 
-Declare your Testcontainers as a `@ClassRule` or `@Rule` in a JUnit 4 test or as static or member attribute of a JUnit 5 test annotated with `@Container` as you would with other Testcontainers.
-You can either use call `getBoltUrl()` or `getHttpUrl()` on the Neo4j container.
-`getBoltUrl()` is meant to be used with one of the [official Bolt drivers](https://neo4j.com/developer/language-guides/) while `getHttpUrl()` gives you the HTTP-address of the transactional HTTP endpoint.
-On the JVM you would most likely use the [Java driver](https://github.com/neo4j/neo4j-java-driver).
-
-The following example uses the JUnit 5 extension `@Testcontainers` and demonstrates both the usage of the Java Driver and the REST endpoint:
+You can start a Neo4j container instance from any Java application by using:
 
 
-[JUnit 5 example](../../../examples/neo4j-container/src/test/java/org/testcontainers/containers/Neo4jExampleTest.java) inside_block:junitExample
+[Neo4j container](../../../modules/neo4j/src/test/java/org/testcontainers/neo4j/Neo4jContainerTest.java) inside_block:container
 
 
-You are not limited to Unit tests, and you can use an instance of the Neo4j Testcontainers in vanilla Java code as well.
-
 ## Additional features
 
 ### Custom password
diff --git a/examples/neo4j-container/src/test/java/org/testcontainers/containers/Neo4jExampleTest.java b/examples/neo4j-container/src/test/java/org/testcontainers/containers/Neo4jExampleTest.java
index 38c22a0ff45..bc8770aaef0 100644
--- a/examples/neo4j-container/src/test/java/org/testcontainers/containers/Neo4jExampleTest.java
+++ b/examples/neo4j-container/src/test/java/org/testcontainers/containers/Neo4jExampleTest.java
@@ -22,7 +22,6 @@
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
 
-// junitExample {
 @Testcontainers
 class Neo4jExampleTest {
 
@@ -68,4 +67,3 @@ void testSomethingUsingHttp() throws IOException {
         }
     }
 }
-// }
diff --git a/modules/neo4j/src/test/java/org/testcontainers/neo4j/Neo4jContainerTest.java b/modules/neo4j/src/test/java/org/testcontainers/neo4j/Neo4jContainerTest.java
index 7676450e75a..b880e7b4e8f 100644
--- a/modules/neo4j/src/test/java/org/testcontainers/neo4j/Neo4jContainerTest.java
+++ b/modules/neo4j/src/test/java/org/testcontainers/neo4j/Neo4jContainerTest.java
@@ -30,18 +30,33 @@ class Neo4jContainerTest {
     // See org.testcontainers.utility.LicenseAcceptance#ACCEPTANCE_FILE_NAME
     private static final String ACCEPTANCE_FILE_LOCATION = "/container-license-acceptance.txt";
 
+    @Test
+    void authenticated() {
+        try (
+            // container {
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
+            // }
+        ) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
+                long one = session.run("RETURN 1", Collections.emptyMap()).next().get(0).asLong();
+                assertThat(one).isEqualTo(1L);
+            }
+        }
+    }
+
     @Test
     void shouldDisableAuthentication() {
         try (
             // spotless:off
             // withoutAuthentication {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
                 .withoutAuthentication()
             // }
             // spotless:on
         ) {
-            neo4jContainer.start();
-            try (Driver driver = getDriver(neo4jContainer); Session session = driver.session()) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
                 long one = session.run("RETURN 1", Collections.emptyMap()).next().get(0).asLong();
                 assertThat(one).isEqualTo(1L);
             }
@@ -54,12 +69,12 @@ void shouldCopyDatabase() {
         assumeThat(DockerClientFactory.instance().getInfo().getArchitecture()).isNotEqualTo("aarch64");
         try (
             // copyDatabase {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:3.5.30")
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:3.5.30")
                 .withDatabase(MountableFile.forClasspathResource("/test-graph.db"))
             // }
         ) {
-            neo4jContainer.start();
-            try (Driver driver = getDriver(neo4jContainer); Session session = driver.session()) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
                 Result result = session.run("MATCH (t:Thing) RETURN t");
                 assertThat(result.list().stream().map(r -> r.get("t").get("name").asString()))
                     .containsExactlyInAnyOrder("Thing", "Thing 2", "Thing 3", "A box");
@@ -98,12 +113,12 @@ void shouldFailOnCopyDatabaseForCustomNonSemverNeo4j4Image() {
     void shouldCopyPlugins() {
         try (
             // registerPluginsPath {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
                 .withPlugins(MountableFile.forClasspathResource("/custom-plugins"))
             // }
         ) {
-            neo4jContainer.start();
-            try (Driver driver = getDriver(neo4jContainer); Session session = driver.session()) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
                 assertThatCustomPluginWasCopied(session);
             }
         }
@@ -113,12 +128,12 @@ void shouldCopyPlugins() {
     void shouldCopyPlugin() {
         try (
             // registerPluginsJar {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
                 .withPlugins(MountableFile.forClasspathResource("/custom-plugins/hello-world.jar"))
             // }
         ) {
-            neo4jContainer.start();
-            try (Driver driver = getDriver(neo4jContainer); Session session = driver.session()) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
                 assertThatCustomPluginWasCopied(session);
             }
         }
@@ -137,13 +152,13 @@ void shouldRunEnterprise() {
 
         try (
             // enterpriseEdition {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4-enterprise")
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4-enterprise")
                 .acceptLicense()
                 // }
                 .withAdminPassword("Picard123")
         ) {
-            neo4jContainer.start();
-            try (Driver driver = getDriver(neo4jContainer); Session session = driver.session()) {
+            neo4j.start();
+            try (Driver driver = getDriver(neo4j); Session session = driver.session()) {
                 String edition = session
                     .run("CALL dbms.components() YIELD edition RETURN edition", Collections.emptyMap())
                     .next()
@@ -157,110 +172,109 @@ void shouldRunEnterprise() {
     @Test
     void shouldAddConfigToEnvironment() {
         // neo4jConfiguration {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
             .withNeo4jConfig("dbms.security.procedures.unrestricted", "apoc.*,algo.*")
             .withNeo4jConfig("dbms.tx_log.rotation.size", "42M");
         // }
 
-        assertThat(neo4jContainer.getEnvMap())
-            .containsEntry("NEO4J_dbms_security_procedures_unrestricted", "apoc.*,algo.*");
-        assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4J_dbms_tx__log_rotation_size", "42M");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_dbms_security_procedures_unrestricted", "apoc.*,algo.*");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_dbms_tx__log_rotation_size", "42M");
     }
 
     @Test
     void shouldRespectEnvironmentAuth() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withEnv("NEO4J_AUTH", "neo4j/secret");
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withEnv("NEO4J_AUTH", "neo4j/secret");
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/secret");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/secret");
     }
 
     @Test
     void shouldSetCustomPasswordCorrectly() {
         // withAdminPassword {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withAdminPassword("verySecret");
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withAdminPassword("verySecret");
         // }
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/verySecret");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/verySecret");
     }
 
     @Test
-    void containerAdminPasswordOverrulesEnvironmentAuth() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+    void adminPasswordOverrulesEnvironmentAuth() {
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
             .withEnv("NEO4J_AUTH", "neo4j/secret")
             .withAdminPassword("anotherSecret");
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/anotherSecret");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_AUTH", "neo4j/anotherSecret");
     }
 
     @Test
-    void containerWithoutAuthenticationOverrulesEnvironmentAuth() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4")
+    void shouldWithoutAuthenticationOverrulesEnvironmentAuth() {
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4")
             .withEnv("NEO4J_AUTH", "neo4j/secret")
             .withoutAuthentication();
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4J_AUTH", "none");
+        assertThat(neo4j.getEnvMap()).containsEntry("NEO4J_AUTH", "none");
     }
 
     @Test
     void shouldRespectAlreadyDefinedPortMappingsBolt() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withExposedPorts(7687);
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withExposedPorts(7687);
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getExposedPorts()).containsExactly(7687);
+        assertThat(neo4j.getExposedPorts()).containsExactly(7687);
     }
 
     @Test
     void shouldRespectAlreadyDefinedPortMappingsHttp() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withExposedPorts(7474);
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withExposedPorts(7474);
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getExposedPorts()).containsExactly(7474);
+        assertThat(neo4j.getExposedPorts()).containsExactly(7474);
     }
 
     @Test
     void shouldRespectAlreadyDefinedPortMappingsWithoutHttps() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withExposedPorts(7687, 7474);
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withExposedPorts(7687, 7474);
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getExposedPorts()).containsExactlyInAnyOrder(7474, 7687);
+        assertThat(neo4j.getExposedPorts()).containsExactlyInAnyOrder(7474, 7687);
     }
 
     @Test
     void shouldDefaultExportBoltHttpAndHttps() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4");
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4");
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer.getExposedPorts()).containsExactlyInAnyOrder(7473, 7474, 7687);
+        assertThat(neo4j.getExposedPorts()).containsExactlyInAnyOrder(7473, 7474, 7687);
     }
 
     @Test
     void shouldRespectCustomWaitStrategy() {
-        Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").waitingFor(new CustomDummyWaitStrategy());
+        Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").waitingFor(new CustomDummyWaitStrategy());
 
-        neo4jContainer.configure();
+        neo4j.configure();
 
-        assertThat(neo4jContainer).extracting("waitStrategy").isInstanceOf(CustomDummyWaitStrategy.class);
+        assertThat(neo4j).extracting("waitStrategy").isInstanceOf(CustomDummyWaitStrategy.class);
     }
 
     @Test
     void shouldConfigureSinglePluginByName() {
-        try (Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withPlugins("apoc")) {
+        try (Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withPlugins("apoc")) {
             // needs to get called explicitly for setup
-            neo4jContainer.configure();
+            neo4j.configure();
 
-            assertThat(neo4jContainer.getEnvMap()).containsEntry("NEO4JLABS_PLUGINS", "[\"apoc\"]");
+            assertThat(neo4j.getEnvMap()).containsEntry("NEO4JLABS_PLUGINS", "[\"apoc\"]");
         }
     }
 
@@ -268,14 +282,14 @@ void shouldConfigureSinglePluginByName() {
     void shouldConfigureMultiplePluginsByName() {
         try (
             // configureLabsPlugins {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4") //
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4") //
                 .withPlugins("apoc", "bloom");
             // }
         ) {
             // needs to get called explicitly for setup
-            neo4jContainer.configure();
+            neo4j.configure();
 
-            assertThat(neo4jContainer.getEnvMap().get("NEO4JLABS_PLUGINS"))
+            assertThat(neo4j.getEnvMap().get("NEO4JLABS_PLUGINS"))
                 .containsAnyOf("[\"apoc\",\"bloom\"]", "[\"bloom\",\"apoc\"]");
         }
     }
@@ -284,26 +298,26 @@ void shouldConfigureMultiplePluginsByName() {
     void shouldCreateRandomUuidBasedPasswords() {
         try (
             // withRandomPassword {
-            Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4").withRandomPassword();
+            Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4").withRandomPassword();
             // }
         ) {
             // It will throw an exception if it's not UUID parsable.
-            assertThatNoException().isThrownBy(neo4jContainer::configure);
+            assertThatNoException().isThrownBy(neo4j::configure);
             // This basically is always true at if the random password is UUID-like.
-            assertThat(neo4jContainer.getAdminPassword())
+            assertThat(neo4j.getAdminPassword())
                 .satisfies(password -> assertThat(UUID.fromString(password).toString()).isEqualTo(password));
         }
     }
 
     @Test
     void shouldWarnOnPasswordTooShort() {
-        try (Neo4jContainer neo4jContainer = new Neo4jContainer("neo4j:4.4");) {
+        try (Neo4jContainer neo4j = new Neo4jContainer("neo4j:4.4");) {
             Logger logger = (Logger) DockerLoggerFactory.getLogger("neo4j:4.4");
             TestLogAppender testLogAppender = new TestLogAppender();
             logger.addAppender(testLogAppender);
             testLogAppender.start();
 
-            neo4jContainer.withAdminPassword("short");
+            neo4j.withAdminPassword("short");
 
             testLogAppender.stop();
 
@@ -337,11 +351,11 @@ protected void append(ILoggingEvent eventObject) {
         }
     }
 
-    private static Driver getDriver(Neo4jContainer container) {
+    private static Driver getDriver(Neo4jContainer neo4j) {
         AuthToken authToken = AuthTokens.none();
-        if (container.getAdminPassword() != null) {
-            authToken = AuthTokens.basic("neo4j", container.getAdminPassword());
+        if (neo4j.getAdminPassword() != null) {
+            authToken = AuthTokens.basic("neo4j", neo4j.getAdminPassword());
         }
-        return GraphDatabase.driver(container.getBoltUrl(), authToken);
+        return GraphDatabase.driver(neo4j.getBoltUrl(), authToken);
     }
 }

From de41ece851d57ed6973177ed3f6ce2e29ed2bd74 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Wed, 25 Mar 2026 16:47:21 -0600
Subject: [PATCH 113/269] Fix JUnit 5 docs

---
 docs/test_framework_integration/junit_5.md | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/docs/test_framework_integration/junit_5.md b/docs/test_framework_integration/junit_5.md
index 883adc90af9..aed2d515af9 100644
--- a/docs/test_framework_integration/junit_5.md
+++ b/docs/test_framework_integration/junit_5.md
@@ -1,7 +1,6 @@
 # Jupiter / JUnit 5
 
-While Testcontainers is tightly coupled with the JUnit 4.x rule API, this module provides
-an API that is based on the [JUnit Jupiter](https://junit.org/junit5/) extension model.
+This module provides an API that is based on the [JUnit Jupiter](https://junit.org/junit5/) extension model.
 
 The extension supports two modes:
 
@@ -58,10 +57,6 @@ using JUnit 5.
 
 ## Limitations
 
-Since this module has a dependency onto JUnit Jupiter and on Testcontainers core, which
-has a dependency onto JUnit 4.x, projects using this module will end up with both, JUnit Jupiter
-and JUnit 4.x in the test classpath.
-
 This extension has only been tested with sequential test execution. Using it with parallel test execution is unsupported and may have unintended side effects.
 
 ## Adding Testcontainers JUnit 5 support to your project dependencies

From 990a7dc27a836077a1098a6e5172cf2d57b8ebb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Wed, 25 Mar 2026 16:55:56 -0600
Subject: [PATCH 114/269] Fix docs

---
 docs/features/creating_container.md                    | 10 ++--------
 docs/features/creating_images.md                       |  4 ++--
 .../manual_lifecycle_control.md                        |  3 +--
 3 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/docs/features/creating_container.md b/docs/features/creating_container.md
index 443e04f1a91..baaea5fb36d 100644
--- a/docs/features/creating_container.md
+++ b/docs/features/creating_container.md
@@ -34,14 +34,8 @@ It is suggested that developers treat `DockerImageName`s as you would any other
 A generic container rule can be used with any public docker image; for example:
 
  
-[Creating a Redis container (JUnit 4)](../examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java) inside_block:simple
+[Creating a Redis container](../examples/junit5/redis/src/test/java/quickstart/RedisBackedCacheIntTest.java) inside_block:container
 
 
-Further options may be specified:
-
- 
-[Creating a container with more options (JUnit 4)](../examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java) inside_block:withOptions
-
-
-These containers, as `@ClassRule`s, will be started before any tests in the class run, and will be destroyed after all
+The container, as `@Container`, will be started before any tests in the class run, and will be destroyed after all
 tests have run.
diff --git a/docs/features/creating_images.md b/docs/features/creating_images.md
index 6f1988ed28e..8a239d342cc 100644
--- a/docs/features/creating_images.md
+++ b/docs/features/creating_images.md
@@ -13,9 +13,9 @@ Testcontainers will `docker build` a temporary container image, and will use it
 
 `ImageFromDockerfile` accepts arbitrary files, strings or classpath resources to be used as files in the build context.
 At least one of these needs to be a `Dockerfile`.
+
 ```java
-@Rule
-public GenericContainer dslContainer = new GenericContainer(
+GenericContainer container = new GenericContainer(
     new ImageFromDockerfile()
             .withFileFromString("folder/someFile.txt", "hello")
             .withFileFromClasspath("test.txt", "mappable-resource/test-resource.txt")
diff --git a/docs/test_framework_integration/manual_lifecycle_control.md b/docs/test_framework_integration/manual_lifecycle_control.md
index 6de3cb47196..e1005397c00 100644
--- a/docs/test_framework_integration/manual_lifecycle_control.md
+++ b/docs/test_framework_integration/manual_lifecycle_control.md
@@ -1,7 +1,6 @@
 # Manual container lifecycle control
 
-While Testcontainers was originally built with JUnit 4 integration in mind, it is fully usable with other test 
-frameworks, or with no framework at all.
+Testcontainers is fully usable with any test framework, or with no framework at all.
 
 ## Manually starting/stopping containers
 

From 8e5416d44f272e2db5bae141c299619e58500add Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= 
Date: Mon, 30 Mar 2026 12:21:08 -0600
Subject: [PATCH 115/269] Fix ActiveMQ docs

---
 docs/modules/activemq.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/modules/activemq.md b/docs/modules/activemq.md
index 07cc6e75381..3e925326498 100644
--- a/docs/modules/activemq.md
+++ b/docs/modules/activemq.md
@@ -1,6 +1,6 @@
 # ActiveMQ
 
-Testcontainers module for [ActiveMQ](https://hub.docker.com/r/apache/activemq-classic) and
+Testcontainers module for [ActiveMQ](https://hub.docker.com/r/apache/activemq) and
 [Artemis](https://hub.docker.com/r/apache/activemq-artemis).
 
 ## ActiveMQContainer's usage examples

From 6a02d006010512a35d54c674524216b7b00c5ac4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?=
 
Date: Mon, 30 Mar 2026 13:16:43 -0600
Subject: [PATCH 116/269] Support apache/artemis in ArtemisContainer (#11590)

Fixes #11588
---
 docs/modules/activemq.md                        |  2 +-
 .../activemq/ArtemisContainer.java              |  6 +++++-
 .../activemq/ArtemisContainerTest.java          | 17 ++++++++++++++---
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/docs/modules/activemq.md b/docs/modules/activemq.md
index 3e925326498..7959c47576a 100644
--- a/docs/modules/activemq.md
+++ b/docs/modules/activemq.md
@@ -1,7 +1,7 @@
 # ActiveMQ
 
 Testcontainers module for [ActiveMQ](https://hub.docker.com/r/apache/activemq) and
-[Artemis](https://hub.docker.com/r/apache/activemq-artemis).
+[Artemis](https://hub.docker.com/r/apache/artemis).
 
 ## ActiveMQContainer's usage examples
 
diff --git a/modules/activemq/src/main/java/org/testcontainers/activemq/ArtemisContainer.java b/modules/activemq/src/main/java/org/testcontainers/activemq/ArtemisContainer.java
index 7d4918a9306..82072993b48 100644
--- a/modules/activemq/src/main/java/org/testcontainers/activemq/ArtemisContainer.java
+++ b/modules/activemq/src/main/java/org/testcontainers/activemq/ArtemisContainer.java
@@ -9,6 +9,8 @@
 /**
  * Testcontainers implementation for Apache ActiveMQ Artemis.
  * 

+ * Supported images: {@code apache/artemis}, {@code apache/activemq-artemis} + *

* Exposed ports: *

    *
  • Console: 8161
  • @@ -24,6 +26,8 @@ public class ArtemisContainer extends GenericContainer { private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq-artemis"); + private static final DockerImageName APACHE_ARTEMIS_IMAGE = DockerImageName.parse("apache/artemis"); + private static final int WEB_CONSOLE_PORT = 8161; // CORE,MQTT,AMQP,HORNETQ,STOMP,OPENWIRE @@ -49,7 +53,7 @@ public ArtemisContainer(String image) { public ArtemisContainer(DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE, APACHE_ARTEMIS_IMAGE); withExposedPorts(WEB_CONSOLE_PORT, TCP_PORT, HORNETQ_STOMP_PORT, AMQP_PORT, STOMP_PORT, MQTT_PORT, WS_PORT); waitingFor(Wait.forLogMessage(".*HTTP Server started.*", 1).withStartupTimeout(Duration.ofMinutes(1))); diff --git a/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java b/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java index 6a3c3ecc19c..74cdfa76da7 100644 --- a/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java +++ b/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java @@ -9,6 +9,8 @@ import lombok.SneakyThrows; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import static org.assertj.core.api.Assertions.assertThat; @@ -18,7 +20,7 @@ class ArtemisContainerTest { void defaultCredentials() { try ( // container { - ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.30.0-alpine") + ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.32.0-alpine") // } ) { artemis.start(); @@ -33,7 +35,7 @@ void defaultCredentials() { void customCredentials() { try ( // settingCredentials { - ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.30.0-alpine") + ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.32.0-alpine") .withUser("testcontainers") .withPassword("testcontainers") // } @@ -50,7 +52,7 @@ void customCredentials() { void allowAnonymousLogin() { try ( // enableAnonymousLogin { - ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.30.0-alpine") + ArtemisContainer artemis = new ArtemisContainer("apache/activemq-artemis:2.32.0-alpine") .withEnv("ANONYMOUS_LOGIN", "true") // } ) { @@ -60,6 +62,15 @@ void allowAnonymousLogin() { } } + @ParameterizedTest + @ValueSource(strings = { "apache/activemq-artemis:2.32.0-alpine", "apache/artemis:2.53.0-alpine" }) + void compatibility(String image) { + try (ArtemisContainer artemis = new ArtemisContainer(image)) { + artemis.start(); + assertFunctionality(artemis, false); + } + } + @SneakyThrows private void assertFunctionality(ArtemisContainer artemis, boolean anonymousLogin) { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(artemis.getBrokerUrl()); From 2ea4d7496b2969187f5a50977e0343f63cd68041 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:14 +0000 Subject: [PATCH 117/269] Bump org.apache.pulsar:pulsar-bom from 4.1.1 to 4.2.0 in /modules/pulsar Bumps [org.apache.pulsar:pulsar-bom](https://github.com/apache/pulsar) from 4.1.1 to 4.2.0. - [Release notes](https://github.com/apache/pulsar/releases) - [Commits](https://github.com/apache/pulsar/compare/v4.1.1...v4.2.0) --- updated-dependencies: - dependency-name: org.apache.pulsar:pulsar-bom dependency-version: 4.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/pulsar/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/pulsar/build.gradle b/modules/pulsar/build.gradle index eb8053cc71b..9dee1058aa5 100644 --- a/modules/pulsar/build.gradle +++ b/modules/pulsar/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Pulsar" dependencies { api project(':testcontainers') - testImplementation platform("org.apache.pulsar:pulsar-bom:4.1.1") + testImplementation platform("org.apache.pulsar:pulsar-bom:4.2.0") testImplementation 'org.apache.pulsar:pulsar-client' testImplementation 'org.apache.pulsar:pulsar-client-admin' } From fcbf43b25bcc2c8f608ebb29c208f121cf0a423f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:19 +0000 Subject: [PATCH 118/269] Bump org.mariadb.jdbc:mariadb-java-client in /modules/mariadb Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.5.6 to 3.5.8. - [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases) - [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md) - [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.6...3.5.8) --- updated-dependencies: - dependency-name: org.mariadb.jdbc:mariadb-java-client dependency-version: 3.5.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/mariadb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mariadb/build.gradle b/modules/mariadb/build.gradle index 2cfef8d924c..fd8569f6c36 100644 --- a/modules/mariadb/build.gradle +++ b/modules/mariadb/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'org.mariadb:r2dbc-mariadb:1.0.3' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'org.mariadb.jdbc:mariadb-java-client:3.5.6' + testImplementation 'org.mariadb.jdbc:mariadb-java-client:3.5.8' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'org.mariadb:r2dbc-mariadb:1.0.3' From 06a85b3e498ba7ecff4e49de900dddad46281d7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:24 +0000 Subject: [PATCH 119/269] Bump com.clickhouse:clickhouse-jdbc in /modules/clickhouse Bumps [com.clickhouse:clickhouse-jdbc](https://github.com/ClickHouse/clickhouse-java) from 0.9.4 to 0.9.8. - [Release notes](https://github.com/ClickHouse/clickhouse-java/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-java/compare/v0.9.4...v0.9.8) --- updated-dependencies: - dependency-name: com.clickhouse:clickhouse-jdbc dependency-version: 0.9.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/clickhouse/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/clickhouse/build.gradle b/modules/clickhouse/build.gradle index 91d80a687d7..59ea169583c 100644 --- a/modules/clickhouse/build.gradle +++ b/modules/clickhouse/build.gradle @@ -5,12 +5,12 @@ dependencies { api project(':testcontainers-jdbc') compileOnly project(':testcontainers-r2dbc') - compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http') + compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.8', classifier: 'http') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.4', classifier: 'all') + testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.8', classifier: 'all') - testImplementation 'com.clickhouse:client-v2:0.9.4' + testImplementation 'com.clickhouse:client-v2:0.9.8' testImplementation testFixtures(project(':testcontainers-r2dbc')) - testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http') + testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.8', classifier: 'http') } From b963d1892b129c3e3026dd5d96f058bdb5e88c23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:34 +0000 Subject: [PATCH 120/269] Bump com.microsoft.sqlserver:mssql-jdbc in /modules/mssqlserver Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 13.3.0.jre8-preview to 13.4.0.jre11. - [Release notes](https://github.com/Microsoft/mssql-jdbc/releases) - [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md) - [Commits](https://github.com/Microsoft/mssql-jdbc/commits) --- updated-dependencies: - dependency-name: com.microsoft.sqlserver:mssql-jdbc dependency-version: 13.4.0.jre11 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/mssqlserver/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mssqlserver/build.gradle b/modules/mssqlserver/build.gradle index 6561dbbe486..6e2628da7a2 100644 --- a/modules/mssqlserver/build.gradle +++ b/modules/mssqlserver/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' + testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.4.0.jre11' testImplementation project(':testcontainers-r2dbc') testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' From 19964a3517d1ba79841fef06f759e892d0a30c48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:42 +0000 Subject: [PATCH 121/269] Bump com.microsoft.sqlserver:mssql-jdbc in /modules/azure Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 13.3.0.jre8-preview to 13.4.0.jre11. - [Release notes](https://github.com/Microsoft/mssql-jdbc/releases) - [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md) - [Commits](https://github.com/Microsoft/mssql-jdbc/commits) --- updated-dependencies: - dependency-name: com.microsoft.sqlserver:mssql-jdbc dependency-version: 13.4.0.jre11 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/azure/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index 796f500410b..faabca60be9 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -13,7 +13,7 @@ dependencies { testImplementation 'com.azure:azure-data-tables' testImplementation 'com.azure:azure-messaging-eventhubs' testImplementation 'com.azure:azure-messaging-servicebus' - testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' + testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.4.0.jre11' } tasks.japicmp { From 1aa812dff14944ef4c46d54179a79120dd160138 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:47:43 +0000 Subject: [PATCH 122/269] Bump io.trino:trino-jdbc from 478 to 480 in /modules/trino Bumps io.trino:trino-jdbc from 478 to 480. --- updated-dependencies: - dependency-name: io.trino:trino-jdbc dependency-version: '480' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/trino/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trino/build.gradle b/modules/trino/build.gradle index 004bd38a8b9..82f831db36a 100644 --- a/modules/trino/build.gradle +++ b/modules/trino/build.gradle @@ -4,6 +4,6 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'io.trino:trino-jdbc:478' + testRuntimeOnly 'io.trino:trino-jdbc:480' compileOnly 'org.jetbrains:annotations:26.0.2-1' } From 0e6ddb0f3f41da0b9aa2cd23ad313420637514d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 02:56:41 +0000 Subject: [PATCH 123/269] Bump io.minio:minio from 8.6.0 to 9.0.0 in /modules/minio Bumps [io.minio:minio](https://github.com/minio/minio-java) from 8.6.0 to 9.0.0. - [Release notes](https://github.com/minio/minio-java/releases) - [Commits](https://github.com/minio/minio-java/compare/8.6.0...9.0.0) --- updated-dependencies: - dependency-name: io.minio:minio dependency-version: 9.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/minio/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/minio/build.gradle b/modules/minio/build.gradle index 35dcecb8b95..bca68abc4d6 100644 --- a/modules/minio/build.gradle +++ b/modules/minio/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: MinIO" dependencies { api project(':testcontainers') - testImplementation("io.minio:minio:8.6.0") + testImplementation("io.minio:minio:9.0.0") } From 41c9445d01637349336ac5eb430215d995847773 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 03:01:02 +0000 Subject: [PATCH 124/269] Bump com.databend:databend-jdbc from 0.4.1 to 0.4.5 in /modules/databend Bumps [com.databend:databend-jdbc](https://github.com/databendcloud/databend-jdbc) from 0.4.1 to 0.4.5. - [Release notes](https://github.com/databendcloud/databend-jdbc/releases) - [Commits](https://github.com/databendcloud/databend-jdbc/commits) --- updated-dependencies: - dependency-name: com.databend:databend-jdbc dependency-version: 0.4.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/databend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index 9da45a6fab9..1b9eaf4f0c8 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.databend:databend-jdbc:0.4.1' + testRuntimeOnly 'com.databend:databend-jdbc:0.4.5' } From ef3764a83a34742830d436db4cd352427fb16e96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2026 22:21:08 +0000 Subject: [PATCH 125/269] Bump com.gradle:common-custom-user-data-gradle-plugin Bumps [com.gradle:common-custom-user-data-gradle-plugin](https://github.com/gradle/common-custom-user-data-gradle-plugin) from 2.4.0 to 2.5.0. - [Release notes](https://github.com/gradle/common-custom-user-data-gradle-plugin/releases) - [Commits](https://github.com/gradle/common-custom-user-data-gradle-plugin/compare/v2.4.0...v2.5.0) --- updated-dependencies: - dependency-name: com.gradle:common-custom-user-data-gradle-plugin dependency-version: 2.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 6784ae93160..d59d26df2df 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { classpath "com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.19.2" - classpath "com.gradle:common-custom-user-data-gradle-plugin:2.4.0" + classpath "com.gradle:common-custom-user-data-gradle-plugin:2.5.0" classpath "org.gradle.toolchains:foojay-resolver:0.8.0" } } From a7f79aeb10270d96c8700a578308179506cda31e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 15:51:20 +0000 Subject: [PATCH 126/269] Bump gradle/actions from 5 to 6 Bumps [gradle/actions](https://github.com/gradle/actions) from 5 to 6. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v5...v6) --- updated-dependencies: - dependency-name: gradle/actions dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-rootless.yml | 2 +- .github/workflows/ci.yml | 6 +++--- .github/workflows/release.yml | 2 +- .github/workflows/update-gradle-wrapper.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-rootless.yml b/.github/workflows/ci-rootless.yml index 05d3d6d6607..46e2b4a9a23 100644 --- a/.github/workflows/ci-rootless.yml +++ b/.github/workflows/ci-rootless.yml @@ -52,7 +52,7 @@ jobs: with: rootless: true - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - name: Build with Gradle run: ./gradlew --no-daemon --scan testcontainers:test --tests '*GenericContainerRuleTest' - uses: ./.github/actions/setup-junit-report diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d7f5f65a27..b1ff89858e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,7 +91,7 @@ jobs: - uses: actions/checkout@v5 - uses: ./.github/actions/setup-java - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - id: set-matrix env: # Since we override the tests executor, @@ -126,7 +126,7 @@ jobs: - uses: actions/checkout@v5 - uses: ./.github/actions/setup-java - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - id: set-matrix working-directory: ./examples/ env: @@ -163,7 +163,7 @@ jobs: - uses: actions/checkout@v5 - uses: ./.github/actions/setup-java - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - id: set-matrix env: # Since we override the tests executor, diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bdb87788c0a..0630e826628 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: run: docker image prune -af - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - name: Run Gradle Build run: ./gradlew build --scan --no-daemon -i -x test diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index fe1174c60d6..062cf4017c9 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -24,4 +24,4 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} labels: dependencies - - uses: gradle/actions/wrapper-validation@v5 + - uses: gradle/actions/wrapper-validation@v6 From bd5863e6d0e075af8900817a8074207e5c60cd83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 18:26:30 +0000 Subject: [PATCH 127/269] Bump org.jetbrains:annotations in /modules/selenium Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/selenium/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/selenium/build.gradle b/modules/selenium/build.gradle index 30c3c1a7619..79b525b6185 100644 --- a/modules/selenium/build.gradle +++ b/modules/selenium/build.gradle @@ -14,5 +14,5 @@ dependencies { testImplementation 'org.mortbay.jetty:jetty:6.1.26' testImplementation project(':testcontainers-nginx') - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 01d1dd67cd0b23c24f0ee4318a45479708b7abd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Wed, 8 Apr 2026 09:30:31 -0600 Subject: [PATCH 128/269] Ignore major update for rest-assured --- .github/dependabot.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5e1b5000846..48739f1910c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -22,6 +22,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/" allow: @@ -63,6 +65,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/clickhouse" schedule: @@ -78,6 +83,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/couchbase" schedule: @@ -122,6 +130,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/hivemq" schedule: @@ -214,6 +225,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/mongodb" schedule: @@ -254,6 +268,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/openfga" schedule: @@ -328,6 +345,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/scylladb" schedule: @@ -395,6 +415,9 @@ updates: schedule: interval: "monthly" open-pull-requests-limit: 10 + ignore: + - dependency-name: "io.rest-assured:rest-assured" + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" directory: "/modules/weaviate" schedule: From b55d3e4c51a60ee1031063a92e2d129348491cfc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:31:45 +0000 Subject: [PATCH 129/269] Bump io.rest-assured:rest-assured in /modules/chromadb Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/chromadb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/chromadb/build.gradle b/modules/chromadb/build.gradle index cec94a23faa..ec41def56df 100644 --- a/modules/chromadb/build.gradle +++ b/modules/chromadb/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: ChromaDB" dependencies { api project(':testcontainers') - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' } From da25bcb0b5fb63036a6b9acd52e5af8776c1e7b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:31:46 +0000 Subject: [PATCH 130/269] Bump io.rest-assured:rest-assured in /modules/grafana Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index 90b84ee2c6c..da11a209555 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Grafana" dependencies { api project(':testcontainers') - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.1' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' From a61963b9a5c789075df0f00f2562509b6faeda5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:31:48 +0000 Subject: [PATCH 131/269] Bump io.rest-assured:rest-assured from 5.5.6 to 5.5.7 in /modules/consul Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/consul/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/consul/build.gradle b/modules/consul/build.gradle index ff88de2db29..f496a86d6fd 100644 --- a/modules/consul/build.gradle +++ b/modules/consul/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation 'com.ecwid.consul:consul-api:1.4.5' - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' } From 1603050276d645eec75326ae852a60c628392b11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:31:52 +0000 Subject: [PATCH 132/269] Bump org.apache.tomcat:tomcat-jdbc in /modules/jdbc Bumps org.apache.tomcat:tomcat-jdbc from 11.0.14 to 11.0.21. --- updated-dependencies: - dependency-name: org.apache.tomcat:tomcat-jdbc dependency-version: 11.0.21 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc/build.gradle b/modules/jdbc/build.gradle index f34c99c0385..2b896d3724b 100644 --- a/modules/jdbc/build.gradle +++ b/modules/jdbc/build.gradle @@ -6,7 +6,7 @@ dependencies { compileOnly 'org.jetbrains:annotations:26.0.2-1' testImplementation 'commons-dbutils:commons-dbutils:1.8.1' testImplementation 'org.vibur:vibur-dbcp:26.0' - testImplementation 'org.apache.tomcat:tomcat-jdbc:11.0.14' + testImplementation 'org.apache.tomcat:tomcat-jdbc:11.0.21' testImplementation 'com.zaxxer:HikariCP-java6:2.3.13' testImplementation ('org.mockito:mockito-core:4.11.0') { exclude(module: 'hamcrest-core') From 1d7bb195cc03ef295a69363d4f99183c4057fee5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:32:39 +0000 Subject: [PATCH 133/269] Bump io.rest-assured:rest-assured in /modules/mockserver Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/mockserver/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mockserver/build.gradle b/modules/mockserver/build.gradle index aa06ec3af1e..2ff2e9f34c6 100644 --- a/modules/mockserver/build.gradle +++ b/modules/mockserver/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation 'org.mock-server:mockserver-client-java:5.15.0' - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' } From a68e065fc0b10cb1a7c863dc5f2c858a957f9dd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:32:59 +0000 Subject: [PATCH 134/269] Bump io.milvus:milvus-sdk-java from 2.6.10 to 2.6.17 in /modules/milvus Bumps [io.milvus:milvus-sdk-java](https://github.com/milvus-io/milvus-sdk-java) from 2.6.10 to 2.6.17. - [Release notes](https://github.com/milvus-io/milvus-sdk-java/releases) - [Changelog](https://github.com/milvus-io/milvus-sdk-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/milvus-io/milvus-sdk-java/compare/v2.6.10...v2.6.17) --- updated-dependencies: - dependency-name: io.milvus:milvus-sdk-java dependency-version: 2.6.17 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/milvus/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/milvus/build.gradle b/modules/milvus/build.gradle index cb4ef3b2145..613971697b6 100644 --- a/modules/milvus/build.gradle +++ b/modules/milvus/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: Milvus" dependencies { api project(':testcontainers') - testImplementation 'io.milvus:milvus-sdk-java:2.6.10' + testImplementation 'io.milvus:milvus-sdk-java:2.6.17' } From 2a1bd1a0e3987b30c9076ec93ba504889c069489 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:33:20 +0000 Subject: [PATCH 135/269] Bump io.rest-assured:rest-assured from 5.5.6 to 5.5.7 in /modules/ollama Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/ollama/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ollama/build.gradle b/modules/ollama/build.gradle index 87a31296135..0da01d0ad96 100644 --- a/modules/ollama/build.gradle +++ b/modules/ollama/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: Ollama" dependencies { api project(':testcontainers') - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' } From e2535eaa77ca606d244e4ea046dc0a90536b2608 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:34:15 +0000 Subject: [PATCH 136/269] Bump redis.clients:jedis from 7.1.0 to 7.4.1 in /modules/toxiproxy Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 7.1.0 to 7.4.1. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v7.1.0...v7.4.1) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.4.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/toxiproxy/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/toxiproxy/build.gradle b/modules/toxiproxy/build.gradle index 261f6c29384..205147293fd 100644 --- a/modules/toxiproxy/build.gradle +++ b/modules/toxiproxy/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') api 'eu.rekawek.toxiproxy:toxiproxy-java:2.1.11' - testImplementation 'redis.clients:jedis:7.1.0' + testImplementation 'redis.clients:jedis:7.4.1' } From f85aadaa68efe5b6b71f5dae01f5eeb77d93106b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:34:25 +0000 Subject: [PATCH 137/269] Bump io.rest-assured:rest-assured in /modules/redpanda Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/redpanda/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/redpanda/build.gradle b/modules/redpanda/build.gradle index 3f60fd8db71..e560d73a848 100644 --- a/modules/redpanda/build.gradle +++ b/modules/redpanda/build.gradle @@ -5,6 +5,6 @@ dependencies { shaded 'org.freemarker:freemarker:2.3.34' testImplementation 'org.apache.kafka:kafka-clients:4.1.1' - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' testImplementation 'org.awaitility:awaitility:4.3.0' } From 9f3e62cd7ce36609c2136380b9b0ce4fea060044 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:46:06 +0000 Subject: [PATCH 138/269] Bump io.rest-assured:rest-assured from 5.5.6 to 5.5.7 in /modules/vault Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/vault/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vault/build.gradle b/modules/vault/build.gradle index 7c222d4b064..bbf7929c4e7 100644 --- a/modules/vault/build.gradle +++ b/modules/vault/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation 'com.bettercloud:vault-java-driver:5.1.0' - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' } From db2f9010564e8574cb73a5d245beae2900e9d480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Wed, 8 Apr 2026 11:46:07 -0600 Subject: [PATCH 139/269] Cleanup dependencies --- docs/examples/junit5/redis/build.gradle | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/examples/junit5/redis/build.gradle b/docs/examples/junit5/redis/build.gradle index 3404178b957..277ec0b8ae5 100644 --- a/docs/examples/junit5/redis/build.gradle +++ b/docs/examples/junit5/redis/build.gradle @@ -3,9 +3,7 @@ description = "Examples for docs" dependencies { api "io.lettuce:lettuce-core:6.8.0.RELEASE" - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.13.4' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.13.4' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.13.4' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter:5.13.4' testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.10.3' testImplementation project(":testcontainers") testImplementation project(":testcontainers-junit-jupiter") From 65507da8f155a6ea5373b0211f7406f74ee0e233 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:11:03 +0000 Subject: [PATCH 140/269] Bump com.oracle.database.jdbc:ojdbc11 in /modules/oracle-free Bumps com.oracle.database.jdbc:ojdbc11 from 23.26.0.0.0 to 23.26.1.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc11 dependency-version: 23.26.1.0.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/oracle-free/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-free/build.gradle b/modules/oracle-free/build.gradle index e7cc9669632..5d2eeecab5c 100644 --- a/modules/oracle-free/build.gradle +++ b/modules/oracle-free/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' + testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.1.0.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' From cfc475ece29225dabdab36d15aea84142204d98c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:11:04 +0000 Subject: [PATCH 141/269] Bump com.oracle.database.jdbc:ojdbc11 in /modules/oracle-xe Bumps com.oracle.database.jdbc:ojdbc11 from 23.26.0.0.0 to 23.26.1.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc11 dependency-version: 23.26.1.0.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/oracle-xe/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-xe/build.gradle b/modules/oracle-xe/build.gradle index 6faeeb9367e..856ee74a065 100644 --- a/modules/oracle-xe/build.gradle +++ b/modules/oracle-xe/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.0.0.0' + testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.1.0.0' compileOnly 'org.jetbrains:annotations:26.0.2-1' From 7219459ad3260abffb6958075433ec07bfd9a7fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:11:16 +0000 Subject: [PATCH 142/269] Bump org.assertj:assertj-core in /modules/jdbc-test Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.6 to 3.27.7. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-version: 3.27.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index f7b081acf7b..128fd059841 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -6,7 +6,7 @@ dependencies { api 'com.zaxxer:HikariCP-java6:2.3.13' api 'commons-dbutils:commons-dbutils:1.8.1' - api 'org.assertj:assertj-core:3.27.6' + api 'org.assertj:assertj-core:3.27.7' api 'org.apache.tomcat:tomcat-jdbc:11.0.14' api 'org.vibur:vibur-dbcp:26.0' From f216c42335df8bdc07e6bc7c144250108542115e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:11:18 +0000 Subject: [PATCH 143/269] Bump com.mysql:mysql-connector-j in /modules/jdbc-test Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/9.5.0...9.6.0) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index f7b081acf7b..70bf000d4bb 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -10,6 +10,6 @@ dependencies { api 'org.apache.tomcat:tomcat-jdbc:11.0.14' api 'org.vibur:vibur-dbcp:26.0' - api 'com.mysql:mysql-connector-j:9.5.0' + api 'com.mysql:mysql-connector-j:9.6.0' api 'org.junit.jupiter:junit-jupiter:5.14.1' } From 37262149abb92b06a411ab21e6b8aae74c2ef105 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 03:43:36 +0000 Subject: [PATCH 144/269] Bump io.qdrant:client from 1.16.1 to 1.17.0 in /modules/qdrant Bumps [io.qdrant:client](https://github.com/qdrant/java-client) from 1.16.1 to 1.17.0. - [Release notes](https://github.com/qdrant/java-client/releases) - [Commits](https://github.com/qdrant/java-client/compare/v1.16.1...v1.17.0) --- updated-dependencies: - dependency-name: io.qdrant:client dependency-version: 1.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/qdrant/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qdrant/build.gradle b/modules/qdrant/build.gradle index 849cafeb37f..5d695095300 100644 --- a/modules/qdrant/build.gradle +++ b/modules/qdrant/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Qdrant" dependencies { api project(':testcontainers') - testImplementation 'io.qdrant:client:1.16.1' + testImplementation 'io.qdrant:client:1.17.0' testImplementation platform('io.grpc:grpc-bom:1.75.0') testImplementation 'io.grpc:grpc-stub' testImplementation 'io.grpc:grpc-protobuf' From 5fa1ebe7746cbaf56af9c04e6f34d7b12a8039d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 03:43:41 +0000 Subject: [PATCH 145/269] Bump org.typesense:typesense-java in /modules/typesense Bumps [org.typesense:typesense-java](https://github.com/typesense/typesense-java) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/typesense/typesense-java/releases) - [Commits](https://github.com/typesense/typesense-java/commits) --- updated-dependencies: - dependency-name: org.typesense:typesense-java dependency-version: 2.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/typesense/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/typesense/build.gradle b/modules/typesense/build.gradle index 17d6135b604..87aef78cad1 100644 --- a/modules/typesense/build.gradle +++ b/modules/typesense/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: Typesense" dependencies { api project(':testcontainers') - testImplementation 'org.typesense:typesense-java:2.0.0' + testImplementation 'org.typesense:typesense-java:2.1.0' } From 80bc3a8f91154b29a10c279dab855a72737755ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 05:33:30 +0000 Subject: [PATCH 146/269] Bump io.grpc:grpc-bom from 1.75.0 to 1.80.0 in /modules/qdrant Bumps [io.grpc:grpc-bom](https://github.com/grpc/grpc-java) from 1.75.0 to 1.80.0. - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.75.0...v1.80.0) --- updated-dependencies: - dependency-name: io.grpc:grpc-bom dependency-version: 1.80.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/qdrant/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qdrant/build.gradle b/modules/qdrant/build.gradle index 5d695095300..98b8fc403fc 100644 --- a/modules/qdrant/build.gradle +++ b/modules/qdrant/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') testImplementation 'io.qdrant:client:1.17.0' - testImplementation platform('io.grpc:grpc-bom:1.75.0') + testImplementation platform('io.grpc:grpc-bom:1.80.0') testImplementation 'io.grpc:grpc-stub' testImplementation 'io.grpc:grpc-protobuf' testImplementation 'io.grpc:grpc-netty-shaded' From fa7e79b232bdec182c46134ddf791ee7969f9f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 9 Apr 2026 09:27:36 -0600 Subject: [PATCH 147/269] Ignore major update for junit-bom --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 48739f1910c..57d781044cc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -456,6 +456,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.junit.platform:junit-platform-launcher" update-types: [ "version-update:semver-major" ] + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] - dependency-name: "com.gradleup.shadow" update-types: [ "version-update:semver-major" ] From 851aaef29aabeda1f480a4fe987380a6bfe9129e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:43:50 +0000 Subject: [PATCH 148/269] Bump com.databend:databend-jdbc from 0.4.5 to 0.4.6 in /modules/databend Bumps [com.databend:databend-jdbc](https://github.com/databendcloud/databend-jdbc) from 0.4.5 to 0.4.6. - [Release notes](https://github.com/databendcloud/databend-jdbc/releases) - [Commits](https://github.com/databendcloud/databend-jdbc/commits/v0.4.6) --- updated-dependencies: - dependency-name: com.databend:databend-jdbc dependency-version: 0.4.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/databend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index 1b9eaf4f0c8..7a779d3ca20 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.databend:databend-jdbc:0.4.5' + testRuntimeOnly 'com.databend:databend-jdbc:0.4.6' } From 085ab379ae1b8d4b98f5f3ad97b69745faff7252 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:52:49 +0000 Subject: [PATCH 149/269] Bump org.postgresql:postgresql in /modules/junit-jupiter Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index b9c2fc7bcee..e362b51c756 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -14,6 +14,6 @@ dependencies { exclude(module: 'hamcrest-core') } - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' } From c4709ac64d549e60d3163d7e62ce93c4bd3f7d1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:52:54 +0000 Subject: [PATCH 150/269] Bump org.postgresql:postgresql in /modules/postgresql Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/postgresql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/postgresql/build.gradle b/modules/postgresql/build.gradle index cf1c69a9a19..73e424f9ffc 100644 --- a/modules/postgresql/build.gradle +++ b/modules/postgresql/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' From 767aa923d175c7748d0b56b1b176239b22acff26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:53:02 +0000 Subject: [PATCH 151/269] Bump org.jetbrains:annotations in /modules/postgresql Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/postgresql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/postgresql/build.gradle b/modules/postgresql/build.gradle index cf1c69a9a19..d2c1948bf86 100644 --- a/modules/postgresql/build.gradle +++ b/modules/postgresql/build.gradle @@ -12,5 +12,5 @@ dependencies { testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 5e22ac7430453c432b160ec0298179f06e2e9e53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:53:23 +0000 Subject: [PATCH 152/269] Bump org.postgresql:postgresql from 42.7.8 to 42.7.10 in /modules/spock Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.8 to 42.7.10. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.8...REL42.7.10) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index 7522d7f697f..b45362a8e63 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation 'com.zaxxer:HikariCP:7.0.2' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' - testRuntimeOnly 'org.postgresql:postgresql:42.7.8' + testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' testRuntimeOnly platform('org.junit:junit-bom:5.14.1') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' From f943e8cbeb1200cd38856d6b1a525c0b63a4d79c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 07:01:17 +0000 Subject: [PATCH 153/269] Bump org.junit:junit-bom from 5.14.1 to 5.14.3 in /modules/spock Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.14.1 to 5.14.3. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-version: 5.14.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index b45362a8e63..7ed9214dd11 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -17,7 +17,7 @@ dependencies { testRuntimeOnly 'org.postgresql:postgresql:42.7.10' testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' - testRuntimeOnly platform('org.junit:junit-bom:5.14.1') + testRuntimeOnly platform('org.junit:junit-bom:5.14.3') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-testkit' From 32fe73aa702e6328f166f4991a2d3c461136f635 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 07:01:23 +0000 Subject: [PATCH 154/269] Bump org.junit:junit-bom from 5.14.1 to 5.14.3 in /modules/junit-jupiter Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.14.1 to 5.14.3. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-version: 5.14.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index e362b51c756..d6689bee21d 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -2,7 +2,7 @@ description = "Testcontainers :: JUnit Jupiter Extension" dependencies { api project(':testcontainers') - implementation platform('org.junit:junit-bom:5.14.1') + implementation platform('org.junit:junit-bom:5.14.3') implementation 'org.junit.jupiter:junit-jupiter-api' testImplementation project(':testcontainers-mysql') From 5f9b0034afa70c42a110f6ca1c18560389c3dfd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 07:01:32 +0000 Subject: [PATCH 155/269] Bump org.junit.jupiter:junit-jupiter in /modules/r2dbc Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.14.1 to 5.14.3. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.3) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter dependency-version: 5.14.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index 3a2a55c7f0d..8854a19ee46 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -13,5 +13,5 @@ dependencies { testFixturesImplementation 'io.projectreactor:reactor-core:3.8.1' testFixturesImplementation 'org.assertj:assertj-core:3.27.7' - testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.1' + testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.3' } From c31d51f1ff113be4089dfec6deaf2aae4792d20f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 07:01:41 +0000 Subject: [PATCH 156/269] Bump org.junit.jupiter:junit-jupiter in /modules/jdbc-test Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.14.1 to 5.14.3. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.3) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter dependency-version: 5.14.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index d3f04a3a3f6..15d1d11226a 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -11,5 +11,5 @@ dependencies { api 'org.apache.tomcat:tomcat-jdbc:11.0.14' api 'org.vibur:vibur-dbcp:26.0' api 'com.mysql:mysql-connector-j:9.6.0' - api 'org.junit.jupiter:junit-jupiter:5.14.1' + api 'org.junit.jupiter:junit-jupiter:5.14.3' } From c8debe622a4e631ec3d9f62b0694fe75859b1b98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 08:44:33 +0000 Subject: [PATCH 157/269] Bump org.apache.tomcat:tomcat-jdbc in /modules/jdbc-test Bumps org.apache.tomcat:tomcat-jdbc from 11.0.14 to 11.0.21. --- updated-dependencies: - dependency-name: org.apache.tomcat:tomcat-jdbc dependency-version: 11.0.21 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index 15d1d11226a..cbf94737eed 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -8,7 +8,7 @@ dependencies { api 'org.assertj:assertj-core:3.27.7' - api 'org.apache.tomcat:tomcat-jdbc:11.0.14' + api 'org.apache.tomcat:tomcat-jdbc:11.0.21' api 'org.vibur:vibur-dbcp:26.0' api 'com.mysql:mysql-connector-j:9.6.0' api 'org.junit.jupiter:junit-jupiter:5.14.3' From 8205eb3c123a66e4d32004e7b0df9e91b154b0cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 08:44:44 +0000 Subject: [PATCH 158/269] Bump redis.clients:jedis from 7.1.0 to 7.4.1 in /modules/junit-jupiter Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 7.1.0 to 7.4.1. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v7.1.0...v7.4.1) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.4.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index d6689bee21d..7f4d55e9bd3 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -8,7 +8,7 @@ dependencies { testImplementation project(':testcontainers-mysql') testImplementation project(':testcontainers-postgresql') testImplementation 'com.zaxxer:HikariCP:7.0.2' - testImplementation 'redis.clients:jedis:7.1.0' + testImplementation 'redis.clients:jedis:7.4.1' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testImplementation ('org.mockito:mockito-core:4.11.0') { exclude(module: 'hamcrest-core') From 58947d3ac71bbe14d6fe63f8e2a0df5b70e1cfae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 08:44:44 +0000 Subject: [PATCH 159/269] Bump io.projectreactor:reactor-core in /modules/r2dbc Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.8.1 to 3.8.4. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.8.1...v3.8.4) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-version: 3.8.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index 8854a19ee46..afad9a553ef 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' testImplementation project(':testcontainers-postgresql') - testFixturesImplementation 'io.projectreactor:reactor-core:3.8.1' + testFixturesImplementation 'io.projectreactor:reactor-core:3.8.4' testFixturesImplementation 'org.assertj:assertj-core:3.27.7' testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.3' } From 1917ff470e49f5482ae0c5662c64d4974f3a25ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sun, 12 Apr 2026 03:46:30 -0500 Subject: [PATCH 160/269] Update gradle/actions/setup-gradle version to v6 --- .github/actions/setup-gradle/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-gradle/action.yml b/.github/actions/setup-gradle/action.yml index c97d776e04f..76d1b0ff4b2 100644 --- a/.github/actions/setup-gradle/action.yml +++ b/.github/actions/setup-gradle/action.yml @@ -4,7 +4,7 @@ runs: using: "composite" steps: - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v6 with: gradle-home-cache-includes: | caches From c713d0257bffb3f7b026f54c840ebcd1c5f4f32f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sun, 12 Apr 2026 03:46:48 -0500 Subject: [PATCH 161/269] Update actions/setup-java version to v5 --- .github/actions/setup-java/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-java/action.yml b/.github/actions/setup-java/action.yml index ee8c3323fc1..093fbc2e7fd 100644 --- a/.github/actions/setup-java/action.yml +++ b/.github/actions/setup-java/action.yml @@ -8,7 +8,7 @@ inputs: runs: using: "composite" steps: - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: java-version: ${{ inputs.java-version }} distribution: temurin From 6b4018f65e890285f12ed039551ff7535bb1a3f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sun, 12 Apr 2026 04:10:15 -0500 Subject: [PATCH 162/269] Update mikepenz/action-junit-report version to v6 --- .github/actions/setup-junit-report/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-junit-report/action.yml b/.github/actions/setup-junit-report/action.yml index 538af9af21f..df0af39297f 100644 --- a/.github/actions/setup-junit-report/action.yml +++ b/.github/actions/setup-junit-report/action.yml @@ -4,7 +4,7 @@ runs: using: "composite" steps: - name: Publish Test Report - uses: mikepenz/action-junit-report@v4 + uses: mikepenz/action-junit-report@v6 if: always() # always run even if the previous step fails with: report_paths: '**/build/test-results/test/TEST-*.xml' From c6abf4a23eebc08bb6d64937d6023cdce307ff97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Sun, 12 Apr 2026 04:07:19 -0600 Subject: [PATCH 163/269] Polish CI workflows (#11686) --- .github/workflows/ci-rootless.yml | 3 +-- .github/workflows/ci.yml | 12 +++--------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-rootless.yml b/.github/workflows/ci-rootless.yml index 46e2b4a9a23..d21030fb82e 100644 --- a/.github/workflows/ci-rootless.yml +++ b/.github/workflows/ci-rootless.yml @@ -51,8 +51,7 @@ jobs: uses: docker/setup-docker-action@v4 with: rootless: true - - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v6 + - uses: ./.github/actions/setup-build - name: Build with Gradle run: ./gradlew --no-daemon --scan testcontainers:test --tests '*GenericContainerRuleTest' - uses: ./.github/actions/setup-junit-report diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b1ff89858e1..48dedc8463b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,9 +89,7 @@ jobs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v5 - - uses: ./.github/actions/setup-java - - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v6 + - uses: ./.github/actions/setup-build - id: set-matrix env: # Since we override the tests executor, @@ -124,9 +122,7 @@ jobs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v5 - - uses: ./.github/actions/setup-java - - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v6 + - uses: ./.github/actions/setup-build - id: set-matrix working-directory: ./examples/ env: @@ -161,9 +157,7 @@ jobs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v5 - - uses: ./.github/actions/setup-java - - name: Setup Gradle Build Action - uses: gradle/actions/setup-gradle@v6 + - uses: ./.github/actions/setup-build - id: set-matrix env: # Since we override the tests executor, From b0a027dcff4215092c80ad96bd70c0f9ae8a7a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sun, 12 Apr 2026 05:54:36 -0500 Subject: [PATCH 164/269] Update directories for github actions via dependabot --- .github/dependabot.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 57d781044cc..789ec351da2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -481,7 +481,9 @@ updates: # GitHub Actions - package-ecosystem: "github-actions" - directory: "/" + directories: + - /.github/workflows + - /.github/actions/** schedule: interval: "weekly" open-pull-requests-limit: 10 From 79828c666169da6136a2dcee7204f165427c3b0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 10:56:02 +0000 Subject: [PATCH 165/269] Bump software.amazon.awssdk:bom in /modules/localstack Bumps software.amazon.awssdk:bom from 2.40.4 to 2.42.33. --- updated-dependencies: - dependency-name: software.amazon.awssdk:bom dependency-version: 2.42.33 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/localstack/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/localstack/build.gradle b/modules/localstack/build.gradle index 130f7cdfef7..3af7b5cee55 100644 --- a/modules/localstack/build.gradle +++ b/modules/localstack/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Localstack" dependencies { api project(':testcontainers') - testImplementation platform("software.amazon.awssdk:bom:2.40.4") + testImplementation platform("software.amazon.awssdk:bom:2.42.33") testImplementation 'software.amazon.awssdk:s3' testImplementation 'software.amazon.awssdk:sqs' testImplementation 'software.amazon.awssdk:cloudwatchlogs' From 1147680ec7469cd6bb59dee5ca0fbb65fe3aed95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:17 +0000 Subject: [PATCH 166/269] Bump actions/checkout from 5 to 6 in /.github/workflows Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-docker-wormhole.yml | 2 +- .github/workflows/ci-rootless.yml | 2 +- .github/workflows/ci-windows.yml | 4 ++-- .github/workflows/ci.yml | 16 ++++++++-------- .github/workflows/moby-latest.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/update-docs-version.yml | 2 +- .github/workflows/update-gradle-wrapper.yml | 2 +- .../workflows/update-testcontainers-version.yml | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci-docker-wormhole.yml b/.github/workflows/ci-docker-wormhole.yml index 9359316a924..45957af1e28 100644 --- a/.github/workflows/ci-docker-wormhole.yml +++ b/.github/workflows/ci-docker-wormhole.yml @@ -44,7 +44,7 @@ jobs: in-docker_test: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Build with Gradle run: | docker run -i --rm \ diff --git a/.github/workflows/ci-rootless.yml b/.github/workflows/ci-rootless.yml index d21030fb82e..3122bd88069 100644 --- a/.github/workflows/ci-rootless.yml +++ b/.github/workflows/ci-rootless.yml @@ -46,7 +46,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup rootless Docker uses: docker/setup-docker-action@v4 with: diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index f039f6597b7..6a3c2372a5d 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -52,7 +52,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Build with Gradle run: ./gradlew.bat cleanTest testcontainers:test --no-daemon --continue --scan --no-build-cache @@ -78,7 +78,7 @@ jobs: target_url: `https://github.com/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}`, context: 'CI - Windows', }) - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48dedc8463b..bc128acb50c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: matrix: java: [ '17', '21' ] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build with: java-version: ${{ matrix.java }} @@ -69,7 +69,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Setup Testcontainers Cloud Client uses: atomicjar/testcontainers-cloud-setup-action@main @@ -88,7 +88,7 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - id: set-matrix env: @@ -108,7 +108,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Build and test with Gradle (${{matrix.gradle_args}}) run: | @@ -121,7 +121,7 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - id: set-matrix working-directory: ./examples/ @@ -142,7 +142,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Build and test Examples with Gradle (${{matrix.gradle_args}}) working-directory: ./examples/ @@ -156,7 +156,7 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - id: set-matrix env: @@ -176,7 +176,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Build and test with Gradle (${{matrix.gradle_args}}) run: | diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index aa6a8afa809..75e1ea92550 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-22.04 continue-on-error: true steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-build - name: Install Stable Docker diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0630e826628..78d644971f8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: release: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: ./.github/actions/setup-java - name: Clear existing docker image cache run: docker image prune -af diff --git a/.github/workflows/update-docs-version.yml b/.github/workflows/update-docs-version.yml index 6e9981b19ac..631026eca84 100644 --- a/.github/workflows/update-docs-version.yml +++ b/.github/workflows/update-docs-version.yml @@ -15,7 +15,7 @@ jobs: if: github.repository == 'testcontainers/testcontainers-java' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: ref: main - name: Update latest_version property in mkdocs.yml diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index 062cf4017c9..9f710f30ec5 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@512b1875f3b6270828abfe77b247d5895a2da1e5 # v1.0.13 diff --git a/.github/workflows/update-testcontainers-version.yml b/.github/workflows/update-testcontainers-version.yml index 9cf679e8952..a51fe6ff2a6 100644 --- a/.github/workflows/update-testcontainers-version.yml +++ b/.github/workflows/update-testcontainers-version.yml @@ -15,7 +15,7 @@ jobs: if: github.repository == 'testcontainers/testcontainers-java' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: ref: main - name: Update testcontainers.version property in gradle.properties From 1c40be20bc6074ce796295611002cca140337c45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:20 +0000 Subject: [PATCH 167/269] Bump docker/setup-docker-action from 4 to 5 in /.github/workflows Bumps [docker/setup-docker-action](https://github.com/docker/setup-docker-action) from 4 to 5. - [Release notes](https://github.com/docker/setup-docker-action/releases) - [Commits](https://github.com/docker/setup-docker-action/compare/v4...v5) --- updated-dependencies: - dependency-name: docker/setup-docker-action dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-rootless.yml | 2 +- .github/workflows/moby-latest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-rootless.yml b/.github/workflows/ci-rootless.yml index d21030fb82e..73345ca7308 100644 --- a/.github/workflows/ci-rootless.yml +++ b/.github/workflows/ci-rootless.yml @@ -48,7 +48,7 @@ jobs: steps: - uses: actions/checkout@v5 - name: Setup rootless Docker - uses: docker/setup-docker-action@v4 + uses: docker/setup-docker-action@v5 with: rootless: true - uses: ./.github/actions/setup-build diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index aa6a8afa809..40bcd367088 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -32,7 +32,7 @@ jobs: - name: Install Stable Docker id: setup_docker - uses: docker/setup-docker-action@v4 + uses: docker/setup-docker-action@v5 with: version: ${{ matrix.version }} channel: ${{ matrix.channel }} From dbf7211c277b0b887c9b338e283aea4f740241c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:24 +0000 Subject: [PATCH 168/269] Bump actions/github-script from 8 to 9 in /.github/workflows Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-windows.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index f039f6597b7..c2f59d1cf80 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -66,7 +66,7 @@ jobs: statuses: write steps: - name: Create pending status - uses: actions/github-script@v8 + uses: actions/github-script@v9 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -89,7 +89,7 @@ jobs: - uses: ./.github/actions/setup-junit-report - name: Create success status - uses: actions/github-script@v8 + uses: actions/github-script@v9 if: success() with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -104,7 +104,7 @@ jobs: }) - name: Create failure status - uses: actions/github-script@v8 + uses: actions/github-script@v9 if: failure() with: github-token: ${{ secrets.GITHUB_TOKEN }} From 99b52bdfbafaa710412f606582e8a8571418e310 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:29 +0000 Subject: [PATCH 169/269] Bump peter-evans/create-pull-request in /.github/workflows Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.8 to 8.1.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/271a8d0340265f705b14b6d32b9829c1cb33d45e...5f6978faf089d4d20b00c7766989d076bb2fc7f1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-version: 8.1.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/update-docs-version.yml | 2 +- .github/workflows/update-testcontainers-version.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-docs-version.yml b/.github/workflows/update-docs-version.yml index 6e9981b19ac..6a18801e7ad 100644 --- a/.github/workflows/update-docs-version.yml +++ b/.github/workflows/update-docs-version.yml @@ -23,7 +23,7 @@ jobs: sed -i "s/latest_version: .*/latest_version: ${GITHUB_REF_NAME}/g" mkdocs.yml git diff - name: Create Pull Request - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v3.10.1 + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v3.10.1 with: title: Update docs version to ${{ github.ref_name }} body: | diff --git a/.github/workflows/update-testcontainers-version.yml b/.github/workflows/update-testcontainers-version.yml index 9cf679e8952..b980aa4ebf7 100644 --- a/.github/workflows/update-testcontainers-version.yml +++ b/.github/workflows/update-testcontainers-version.yml @@ -23,7 +23,7 @@ jobs: sed -i "s/^testcontainers\.version=.*/testcontainers\.version=${GITHUB_REF_NAME}/g" gradle.properties git diff - name: Create Pull Request - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v3.10.1 + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v3.10.1 with: title: Update testcontainers version to ${{ github.ref_name }} body: | From af7f5043dbaf4f95e47804352f65bca7f6dd757d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:35 +0000 Subject: [PATCH 170/269] Bump slackapi/slack-github-action in /.github/workflows Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 2.1.1 to 3.0.1. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Commits](https://github.com/slackapi/slack-github-action/compare/v2.1.1...v3.0.1) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/moby-latest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index aa6a8afa809..b4f2bfae215 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -50,7 +50,7 @@ jobs: - name: Notify to Slack on failures if: failure() id: slack - uses: slackapi/slack-github-action@v2.1.1 + uses: slackapi/slack-github-action@v3.0.1 with: payload: | { From 01f0f1de7b1bdcb59f5e28e5dc6dcea3c8da4e35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:00:38 +0000 Subject: [PATCH 171/269] Bump peter-evans/slash-command-dispatch in /.github/workflows Bumps [peter-evans/slash-command-dispatch](https://github.com/peter-evans/slash-command-dispatch) from 4.0.0 to 5.0.2. - [Release notes](https://github.com/peter-evans/slash-command-dispatch/releases) - [Commits](https://github.com/peter-evans/slash-command-dispatch/compare/13bc09769d122a64f75aa5037256f6f2d78be8c4...9bdcd7914ec1b75590b790b844aa3b8eee7c683a) --- updated-dependencies: - dependency-name: peter-evans/slash-command-dispatch dependency-version: 5.0.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-windows-trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-windows-trigger.yml b/.github/workflows/ci-windows-trigger.yml index 540ab221dbf..ce5d40a173b 100644 --- a/.github/workflows/ci-windows-trigger.yml +++ b/.github/workflows/ci-windows-trigger.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Trigger windows-test command - uses: peter-evans/slash-command-dispatch@13bc09769d122a64f75aa5037256f6f2d78be8c4 # v4.0.0 + uses: peter-evans/slash-command-dispatch@9bdcd7914ec1b75590b790b844aa3b8eee7c683a # v5.0.2 with: token: ${{ secrets.WINDOWS_WORKERS_TOKEN }} # The command to trigger the pipeline: e.g. /windows-test From 6cbf148cc224f6b77607e72967c55ba4465b750f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 18:11:37 +0000 Subject: [PATCH 172/269] Bump org.jetbrains:annotations in /modules/cratedb Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/cratedb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cratedb/build.gradle b/modules/cratedb/build.gradle index 3a93f97cae8..7b6a3468e03 100644 --- a/modules/cratedb/build.gradle +++ b/modules/cratedb/build.gradle @@ -7,5 +7,5 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 92433175ee4ebc3710ac200cffc65e5d6d884330 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 18:11:39 +0000 Subject: [PATCH 173/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/tidb Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/tidb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tidb/build.gradle b/modules/tidb/build.gradle index 7cf52e57ca9..a59b1f6a84e 100644 --- a/modules/tidb/build.gradle +++ b/modules/tidb/build.gradle @@ -5,5 +5,5 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From f54a0c69619bb03697bd475ca7fe70bd95e5a2fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 18:11:52 +0000 Subject: [PATCH 174/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/trino Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/trino/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trino/build.gradle b/modules/trino/build.gradle index 82f831db36a..e6a9b32e85b 100644 --- a/modules/trino/build.gradle +++ b/modules/trino/build.gradle @@ -5,5 +5,5 @@ dependencies { testImplementation project(':testcontainers-jdbc-test') testRuntimeOnly 'io.trino:trino-jdbc:480' - compileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' } From 468cb413f8a25790d4170d22c922fb2f959b1c7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 18:12:08 +0000 Subject: [PATCH 175/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /modules/spock Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index 7ed9214dd11..acea4c64eeb 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -21,7 +21,7 @@ dependencies { testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-testkit' - testCompileOnly 'org.jetbrains:annotations:26.0.2-1' + testCompileOnly 'org.jetbrains:annotations:26.1.0' } tasks.withType(GroovyCompile) { From 221f7a7131d5caa14bd68e3ea2da37ac6e369c1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 18:59:27 +0000 Subject: [PATCH 176/269] Bump com.hivemq:hivemq-mqtt-client in /modules/hivemq Bumps [com.hivemq:hivemq-mqtt-client](https://github.com/hivemq/hivemq-mqtt-client) from 1.3.10 to 1.3.13. - [Release notes](https://github.com/hivemq/hivemq-mqtt-client/releases) - [Changelog](https://github.com/hivemq/hivemq-mqtt-client/blob/master/RELEASE.md) - [Commits](https://github.com/hivemq/hivemq-mqtt-client/compare/1.3.10...v1.3.13) --- updated-dependencies: - dependency-name: com.hivemq:hivemq-mqtt-client dependency-version: 1.3.13 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 8c1b2c02034..f20d5875319 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -13,7 +13,7 @@ dependencies { testImplementation(project(":testcontainers-junit-jupiter")) testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") - testImplementation("com.hivemq:hivemq-mqtt-client:1.3.10") + testImplementation("com.hivemq:hivemq-mqtt-client:1.3.13") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") testImplementation("ch.qos.logback:logback-classic:1.5.22") } From 16726cb795e89d0deae04d075ef1bb9fa5befc0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:31:10 +0000 Subject: [PATCH 177/269] Bump org.apache.kafka:kafka-clients in /modules/redpanda Bumps org.apache.kafka:kafka-clients from 4.1.1 to 4.2.0. --- updated-dependencies: - dependency-name: org.apache.kafka:kafka-clients dependency-version: 4.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/redpanda/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/redpanda/build.gradle b/modules/redpanda/build.gradle index e560d73a848..dc544fd394b 100644 --- a/modules/redpanda/build.gradle +++ b/modules/redpanda/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') shaded 'org.freemarker:freemarker:2.3.34' - testImplementation 'org.apache.kafka:kafka-clients:4.1.1' + testImplementation 'org.apache.kafka:kafka-clients:4.2.0' testImplementation 'io.rest-assured:rest-assured:5.5.7' testImplementation 'org.awaitility:awaitility:4.3.0' } From 3de666511344ea4b4e81cadacbccd8ca3c241f42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 13:45:32 +0000 Subject: [PATCH 178/269] Bump org.neo4j.driver:neo4j-java-driver in /modules/neo4j Bumps [org.neo4j.driver:neo4j-java-driver](https://github.com/neo4j/neo4j-java-driver) from 4.4.21 to 4.4.22. - [Release notes](https://github.com/neo4j/neo4j-java-driver/releases) - [Commits](https://github.com/neo4j/neo4j-java-driver/compare/4.4.21...4.4.22) --- updated-dependencies: - dependency-name: org.neo4j.driver:neo4j-java-driver dependency-version: 4.4.22 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/neo4j/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/neo4j/build.gradle b/modules/neo4j/build.gradle index b8bc956b825..96f73b3bb81 100644 --- a/modules/neo4j/build.gradle +++ b/modules/neo4j/build.gradle @@ -33,5 +33,5 @@ dependencies { api project(":testcontainers") - testImplementation 'org.neo4j.driver:neo4j-java-driver:4.4.21' + testImplementation 'org.neo4j.driver:neo4j-java-driver:4.4.22' } From f39e19d034133fe06029bdf56a7ae05a51a326cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 13:45:33 +0000 Subject: [PATCH 179/269] Bump io.fabric8:kubernetes-client from 7.4.0 to 7.6.1 in /modules/k3s Bumps [io.fabric8:kubernetes-client](https://github.com/fabric8io/kubernetes-client) from 7.4.0 to 7.6.1. - [Release notes](https://github.com/fabric8io/kubernetes-client/releases) - [Changelog](https://github.com/fabric8io/kubernetes-client/blob/main/CHANGELOG.md) - [Commits](https://github.com/fabric8io/kubernetes-client/compare/v7.4.0...v7.6.1) --- updated-dependencies: - dependency-name: io.fabric8:kubernetes-client dependency-version: 7.6.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/k3s/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/k3s/build.gradle b/modules/k3s/build.gradle index 010494fe94c..645dfd8e68d 100644 --- a/modules/k3s/build.gradle +++ b/modules/k3s/build.gradle @@ -6,6 +6,6 @@ dependencies { // Synchronize with the jackson version, must match major and minor version shaded 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.4' - testImplementation 'io.fabric8:kubernetes-client:7.4.0' + testImplementation 'io.fabric8:kubernetes-client:7.6.1' testImplementation 'io.kubernetes:client-java:25.0.0-legacy' } From d71f4021b758fc908104e2593d2d2b4d311b7d24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 14:47:47 +0000 Subject: [PATCH 180/269] Bump dev.openfga:openfga-sdk from 0.9.4 to 0.9.7 in /modules/openfga Bumps [dev.openfga:openfga-sdk](https://github.com/openfga/java-sdk) from 0.9.4 to 0.9.7. - [Release notes](https://github.com/openfga/java-sdk/releases) - [Changelog](https://github.com/openfga/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/openfga/java-sdk/compare/v0.9.4...v0.9.7) --- updated-dependencies: - dependency-name: dev.openfga:openfga-sdk dependency-version: 0.9.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/openfga/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openfga/build.gradle b/modules/openfga/build.gradle index c483eb8e5e6..983c42f2efd 100644 --- a/modules/openfga/build.gradle +++ b/modules/openfga/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: OpenFGA" dependencies { api project(':testcontainers') - testImplementation 'dev.openfga:openfga-sdk:0.9.4' + testImplementation 'dev.openfga:openfga-sdk:0.9.7' } test { From 06bfdcbe72721e38ce98b1fe200a8adb424e3471 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 14:49:19 +0000 Subject: [PATCH 181/269] Bump io.rest-assured:rest-assured from 5.5.6 to 5.5.7 in /core Bumps [io.rest-assured:rest-assured](https://github.com/rest-assured/rest-assured) from 5.5.6 to 5.5.7. - [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt) - [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-5.5.6...rest-assured-5.5.7) --- updated-dependencies: - dependency-name: io.rest-assured:rest-assured dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index fd6bb2df579..1bc76a8b047 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -116,7 +116,7 @@ dependencies { testImplementation files('testlib/repo/fakejar/fakejar/0/fakejar-0.jar') testImplementation 'org.assertj:assertj-core:3.27.7' - testImplementation 'io.rest-assured:rest-assured:5.5.6' + testImplementation 'io.rest-assured:rest-assured:5.5.7' jarFileTestCompileOnly "org.projectlombok:lombok:${lombok.version}" jarFileTestAnnotationProcessor "org.projectlombok:lombok:${lombok.version}" From 7007c49a31dfa75b6867b0a8d91b2f28f96879e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 20:38:36 +0000 Subject: [PATCH 182/269] Bump org.elasticsearch.client:elasticsearch-rest-client Bumps [org.elasticsearch.client:elasticsearch-rest-client](https://github.com/elastic/elasticsearch) from 9.2.2 to 9.3.3. - [Release notes](https://github.com/elastic/elasticsearch/releases) - [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md) - [Commits](https://github.com/elastic/elasticsearch/compare/v9.2.2...v9.3.3) --- updated-dependencies: - dependency-name: org.elasticsearch.client:elasticsearch-rest-client dependency-version: 9.3.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/elasticsearch/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elasticsearch/build.gradle b/modules/elasticsearch/build.gradle index 860a7d11526..114a07ffe85 100644 --- a/modules/elasticsearch/build.gradle +++ b/modules/elasticsearch/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: elasticsearch" dependencies { api project(':testcontainers') - testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.2.2" + testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.3.3" testImplementation "org.elasticsearch.client:transport:7.17.29" } From bf24ca9ecff7b555b6b46bfed0b1ba9a7b1b2039 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:10:52 +0000 Subject: [PATCH 183/269] Bump net.lingala.zip4j:zip4j from 2.11.5 to 2.11.6 in /modules/hivemq Bumps [net.lingala.zip4j:zip4j](https://github.com/srikanth-lingala/zip4j) from 2.11.5 to 2.11.6. - [Release notes](https://github.com/srikanth-lingala/zip4j/releases) - [Commits](https://github.com/srikanth-lingala/zip4j/compare/v2.11.5...v2.11.6) --- updated-dependencies: - dependency-name: net.lingala.zip4j:zip4j dependency-version: 2.11.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 8c1b2c02034..541b5bf65d5 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -9,7 +9,7 @@ dependencies { shaded("org.javassist:javassist:3.30.2-GA") shaded("org.jboss.shrinkwrap:shrinkwrap-api:1.2.6") shaded("org.jboss.shrinkwrap:shrinkwrap-impl-base:1.2.6") - shaded("net.lingala.zip4j:zip4j:2.11.5") + shaded("net.lingala.zip4j:zip4j:2.11.6") testImplementation(project(":testcontainers-junit-jupiter")) testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") From b846540df51c513377ccf1157bc9dd64cff5cbb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:55:13 +0000 Subject: [PATCH 184/269] Bump com.hivemq:hivemq-extension-sdk in /modules/hivemq Bumps [com.hivemq:hivemq-extension-sdk](https://github.com/hivemq/hivemq-extension-sdk) from 4.47.1 to 4.50.0. - [Release notes](https://github.com/hivemq/hivemq-extension-sdk/releases) - [Commits](https://github.com/hivemq/hivemq-extension-sdk/compare/4.47.1...4.50.0) --- updated-dependencies: - dependency-name: com.hivemq:hivemq-extension-sdk dependency-version: 4.50.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 27014550dc4..57ee107f7b6 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -12,7 +12,7 @@ dependencies { shaded("net.lingala.zip4j:zip4j:2.11.6") testImplementation(project(":testcontainers-junit-jupiter")) - testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") + testImplementation("com.hivemq:hivemq-extension-sdk:4.50.0") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.13") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") testImplementation("ch.qos.logback:logback-classic:1.5.22") From 006659dafbca9edeb267fc7411ac1af1e947bfea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:21:24 +0000 Subject: [PATCH 185/269] Bump ch.qos.logback:logback-classic in /modules/hivemq Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.22 to 1.5.32. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.22...v_1.5.32) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.5.32 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 27014550dc4..170cd2e7afc 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation("com.hivemq:hivemq-extension-sdk:4.47.1") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.13") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") - testImplementation("ch.qos.logback:logback-classic:1.5.22") + testImplementation("ch.qos.logback:logback-classic:1.5.32") } test { From f658d6dc21cab7e26bd4e9904dbe1d7c6aebb391 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:21:27 +0000 Subject: [PATCH 186/269] Bump com.scylladb:java-driver-core in /modules/scylladb Bumps [com.scylladb:java-driver-core](https://github.com/scylladb/java-driver) from 4.19.0.4 to 4.19.0.8. - [Release notes](https://github.com/scylladb/java-driver/releases) - [Commits](https://github.com/scylladb/java-driver/compare/4.19.0.4...4.19.0.8) --- updated-dependencies: - dependency-name: com.scylladb:java-driver-core dependency-version: 4.19.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/scylladb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scylladb/build.gradle b/modules/scylladb/build.gradle index f6d794e7525..a7931d7c7c9 100644 --- a/modules/scylladb/build.gradle +++ b/modules/scylladb/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: ScyllaDB" dependencies { api project(":testcontainers") - testImplementation 'com.scylladb:java-driver-core:4.19.0.4' + testImplementation 'com.scylladb:java-driver-core:4.19.0.8' testImplementation 'software.amazon.awssdk:dynamodb:2.40.4' } From 6a893fa701f18c47bb743a75fa1fa434e3e2ff96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:19:18 +0000 Subject: [PATCH 187/269] Bump org.apache.activemq:activemq-client in /modules/activemq Bumps [org.apache.activemq:activemq-client](https://github.com/apache/activemq) from 6.2.0 to 6.2.4. - [Release notes](https://github.com/apache/activemq/releases) - [Commits](https://github.com/apache/activemq/compare/activemq-6.2.0...activemq-6.2.4) --- updated-dependencies: - dependency-name: org.apache.activemq:activemq-client dependency-version: 6.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/activemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/activemq/build.gradle b/modules/activemq/build.gradle index 41b81baa2c8..158e8503759 100644 --- a/modules/activemq/build.gradle +++ b/modules/activemq/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: ActiveMQ" dependencies { api project(':testcontainers') - testImplementation "org.apache.activemq:activemq-client:6.2.0" + testImplementation "org.apache.activemq:activemq-client:6.2.4" testImplementation "org.apache.activemq:artemis-jakarta-client:2.44.0" } From 0713c4b0a9abbb7d1ad25e597b7fcb7dea4a453a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:20:28 +0000 Subject: [PATCH 188/269] Bump io.micrometer:micrometer-registry-otlp in /modules/grafana Bumps [io.micrometer:micrometer-registry-otlp](https://github.com/micrometer-metrics/micrometer) from 1.16.1 to 1.16.4. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.16.1...v1.16.4) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-registry-otlp dependency-version: 1.16.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index da11a209555..319c18bbd40 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') testImplementation 'io.rest-assured:rest-assured:5.5.7' - testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.1' + testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.5' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' testImplementation platform('io.opentelemetry:opentelemetry-bom:1.57.0') From a0db454741ff59b0df5aaf27dbc242c3312575d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:20:33 +0000 Subject: [PATCH 189/269] Bump io.opentelemetry:opentelemetry-bom in /modules/grafana Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.57.0 to 1.61.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.57.0...v1.61.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-version: 1.61.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index da11a209555..28a2b910144 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -7,7 +7,7 @@ dependencies { testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.1' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' - testImplementation platform('io.opentelemetry:opentelemetry-bom:1.57.0') + testImplementation platform('io.opentelemetry:opentelemetry-bom:1.61.0') testImplementation 'io.opentelemetry:opentelemetry-api' testImplementation 'io.opentelemetry:opentelemetry-sdk' testImplementation 'io.opentelemetry:opentelemetry-exporter-otlp' From 97a2d1730b6f0fda54f9cd4c033df914284692cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:21:07 +0000 Subject: [PATCH 190/269] Bump com.couchbase.client:java-client in /modules/couchbase Bumps [com.couchbase.client:java-client](https://github.com/couchbase/couchbase-jvm-clients) from 3.10.0 to 3.11.1. - [Commits](https://github.com/couchbase/couchbase-jvm-clients/compare/3.10.0...3.11.1) --- updated-dependencies: - dependency-name: com.couchbase.client:java-client dependency-version: 3.11.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/couchbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/couchbase/build.gradle b/modules/couchbase/build.gradle index a37998f75f0..707a559290a 100644 --- a/modules/couchbase/build.gradle +++ b/modules/couchbase/build.gradle @@ -5,6 +5,6 @@ dependencies { // TODO use JDK's HTTP client and/or Apache HttpClient5 shaded 'com.squareup.okhttp3:okhttp:5.3.2' - testImplementation 'com.couchbase.client:java-client:3.10.0' + testImplementation 'com.couchbase.client:java-client:3.11.2' testImplementation 'org.awaitility:awaitility:4.3.0' } From 3ae9cc0a99e6c3fafe9a6f12fc9fa19957a7f175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Mon, 13 Apr 2026 18:32:50 -0500 Subject: [PATCH 191/269] Update maven central badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 22c800f03be..2cd203a0335 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Testcontainers -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.testcontainers/testcontainers/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.testcontainers/testcontainers) +![Maven Central Version](https://img.shields.io/maven-central/v/org.testcontainers/testcontainers) [![Netlify Status](https://api.netlify.com/api/v1/badges/189f28a2-7faa-42ff-b03c-738142079cc9/deploy-status)](https://app.netlify.com/sites/testcontainers/deploys) From e23f7708295bf979e1117530688c41d1ed262939 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:06 +0000 Subject: [PATCH 192/269] Bump org.apache.tinkerpop:gremlin-driver in /modules/orientdb Bumps [org.apache.tinkerpop:gremlin-driver](https://github.com/apache/tinkerpop) from 3.8.0 to 3.8.1. - [Changelog](https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc) - [Commits](https://github.com/apache/tinkerpop/compare/3.8.0...3.8.1) --- updated-dependencies: - dependency-name: org.apache.tinkerpop:gremlin-driver dependency-version: 3.8.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index 4abe225d3bf..f9ee813dc64 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -5,6 +5,6 @@ dependencies { api "com.orientechnologies:orientdb-client:3.2.46" - testImplementation 'org.apache.tinkerpop:gremlin-driver:3.8.0' + testImplementation 'org.apache.tinkerpop:gremlin-driver:3.8.1' testImplementation "com.orientechnologies:orientdb-gremlin:3.2.46" } From 88d99946243cf8f555a09855a3d09d5978f88ebf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:13 +0000 Subject: [PATCH 193/269] Bump com.ibm.db2:jcc from 12.1.3.0 to 12.1.4.0 in /modules/db2 Bumps com.ibm.db2:jcc from 12.1.3.0 to 12.1.4.0. --- updated-dependencies: - dependency-name: com.ibm.db2:jcc dependency-version: 12.1.4.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/db2/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/db2/build.gradle b/modules/db2/build.gradle index a0c3bc79e85..5546fdb6c65 100644 --- a/modules/db2/build.gradle +++ b/modules/db2/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.ibm.db2:jcc:12.1.3.0' + testRuntimeOnly 'com.ibm.db2:jcc:12.1.4.0' } From 726dbccf5b7c340d05a5c33029ddfeb20f1a1dc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:19 +0000 Subject: [PATCH 194/269] Bump com.rabbitmq:amqp-client from 5.28.0 to 5.29.0 in /modules/rabbitmq Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.28.0 to 5.29.0. - [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases) - [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.28.0...v5.29.0) --- updated-dependencies: - dependency-name: com.rabbitmq:amqp-client dependency-version: 5.29.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/rabbitmq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rabbitmq/build.gradle b/modules/rabbitmq/build.gradle index 350adce5a76..441ff2ddb22 100644 --- a/modules/rabbitmq/build.gradle +++ b/modules/rabbitmq/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: RabbitMQ" dependencies { api project(":testcontainers") - testImplementation 'com.rabbitmq:amqp-client:5.28.0' + testImplementation 'com.rabbitmq:amqp-client:5.29.0' compileOnly 'org.jetbrains:annotations:26.1.0' } From 5752bb11c83f447a4b407cd1d340917459f2d245 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:25 +0000 Subject: [PATCH 195/269] Bump com.influxdb:influxdb-client-java in /modules/influxdb Bumps [com.influxdb:influxdb-client-java](https://github.com/influxdata/influxdb-client-java) from 7.4.0 to 7.5.0. - [Release notes](https://github.com/influxdata/influxdb-client-java/releases) - [Changelog](https://github.com/influxdata/influxdb-client-java/blob/master/CHANGELOG.md) - [Commits](https://github.com/influxdata/influxdb-client-java/compare/v7.4.0...v7.5.0) --- updated-dependencies: - dependency-name: com.influxdb:influxdb-client-java dependency-version: 7.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/influxdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/influxdb/build.gradle b/modules/influxdb/build.gradle index bc743e6bbce..145aa4aac52 100644 --- a/modules/influxdb/build.gradle +++ b/modules/influxdb/build.gradle @@ -6,5 +6,5 @@ dependencies { compileOnly 'org.influxdb:influxdb-java:2.25' testImplementation 'org.influxdb:influxdb-java:2.25' - testImplementation "com.influxdb:influxdb-client-java:7.4.0" + testImplementation "com.influxdb:influxdb-client-java:7.5.0" } From 6a446af80b0330cc9bde747bb55926bf15d32ba2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:28 +0000 Subject: [PATCH 196/269] Bump com.solacesystems:sol-jcsmp in /modules/solace Bumps [com.solacesystems:sol-jcsmp](https://github.com/SolaceDev/solsuite) from 10.29.0 to 10.29.1. - [Commits](https://github.com/SolaceDev/solsuite/commits) --- updated-dependencies: - dependency-name: com.solacesystems:sol-jcsmp dependency-version: 10.29.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/solace/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/solace/build.gradle b/modules/solace/build.gradle index ab0e9555aae..9172fbe878f 100644 --- a/modules/solace/build.gradle +++ b/modules/solace/build.gradle @@ -5,7 +5,7 @@ dependencies { shaded 'org.awaitility:awaitility:4.3.0' - testImplementation 'com.solacesystems:sol-jcsmp:10.29.0' + testImplementation 'com.solacesystems:sol-jcsmp:10.29.1' testImplementation 'org.apache.qpid:qpid-jms-client:0.61.0' testImplementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' testImplementation 'org.apache.httpcomponents:fluent-hc:4.5.14' From 50757ee3f343d47868eb1062788b4e56059d2466 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:03:37 +0000 Subject: [PATCH 197/269] Bump io.r2dbc:r2dbc-mssql in /modules/mssqlserver Bumps [io.r2dbc:r2dbc-mssql](https://github.com/r2dbc/r2dbc-mssql) from 1.0.3.RELEASE to 1.0.4.RELEASE. - [Release notes](https://github.com/r2dbc/r2dbc-mssql/releases) - [Changelog](https://github.com/r2dbc/r2dbc-mssql/blob/v1.0.4.RELEASE/CHANGELOG) - [Commits](https://github.com/r2dbc/r2dbc-mssql/compare/v1.0.3.RELEASE...v1.0.4.RELEASE) --- updated-dependencies: - dependency-name: io.r2dbc:r2dbc-mssql dependency-version: 1.0.4.RELEASE dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/mssqlserver/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mssqlserver/build.gradle b/modules/mssqlserver/build.gradle index 6e2628da7a2..a03534cf147 100644 --- a/modules/mssqlserver/build.gradle +++ b/modules/mssqlserver/build.gradle @@ -4,13 +4,13 @@ dependencies { api project(':testcontainers-jdbc') compileOnly project(':testcontainers-r2dbc') - compileOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' + compileOnly 'io.r2dbc:r2dbc-mssql:1.0.4.RELEASE' testImplementation project(':testcontainers-jdbc-test') testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.4.0.jre11' testImplementation project(':testcontainers-r2dbc') - testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.3.RELEASE' + testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.4.RELEASE' // MSSQL's wait strategy requires the JDBC driver testImplementation testFixtures(project(':testcontainers-r2dbc')) From d7b889f2aec1487c5cc36026404c32c1f2c55168 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 04:48:02 +0000 Subject: [PATCH 198/269] Bump com.google.cloud:libraries-bom in /modules/gcloud Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.72.0 to 26.79.0. - [Release notes](https://github.com/googleapis/java-cloud-bom/releases) - [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.72.0...v26.79.0) --- updated-dependencies: - dependency-name: com.google.cloud:libraries-bom dependency-version: 26.79.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/gcloud/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gcloud/build.gradle b/modules/gcloud/build.gradle index 54271098ebc..08fb09887dd 100644 --- a/modules/gcloud/build.gradle +++ b/modules/gcloud/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: GCloud" dependencies { api project(':testcontainers') - testImplementation platform("com.google.cloud:libraries-bom:26.72.0") + testImplementation platform("com.google.cloud:libraries-bom:26.79.0") testImplementation 'com.google.cloud:google-cloud-bigquery' testImplementation 'com.google.cloud:google-cloud-datastore' testImplementation 'com.google.cloud:google-cloud-firestore' From a3ee4a7434a4314fd62db975ef22c4140dcfd47b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 05:31:11 +0000 Subject: [PATCH 199/269] Bump com.orientechnologies:orientdb-client in /modules/orientdb Bumps [com.orientechnologies:orientdb-client](https://github.com/orientechnologies/orientdb) from 3.2.46 to 3.2.51. - [Release notes](https://github.com/orientechnologies/orientdb/releases) - [Changelog](https://github.com/orientechnologies/orientdb/blob/3.2.51/history.txt) - [Commits](https://github.com/orientechnologies/orientdb/compare/3.2.46...3.2.51) --- updated-dependencies: - dependency-name: com.orientechnologies:orientdb-client dependency-version: 3.2.51 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index f9ee813dc64..39b15e5a420 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -3,8 +3,8 @@ description = "Testcontainers :: Orientdb" dependencies { api project(":testcontainers") - api "com.orientechnologies:orientdb-client:3.2.46" + api "com.orientechnologies:orientdb-client:3.2.51" testImplementation 'org.apache.tinkerpop:gremlin-driver:3.8.1' - testImplementation "com.orientechnologies:orientdb-gremlin:3.2.46" + testImplementation "com.orientechnologies:orientdb-gremlin:3.2.51" } From 78ca388bb21040681a2d5c44ec245ba67ac6ed91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 06:40:15 +0000 Subject: [PATCH 200/269] Bump org.yaml:snakeyaml from 2.5 to 2.6 in /core Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 2.5 to 2.6. - [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.6..snakeyaml-2.5) --- updated-dependencies: - dependency-name: org.yaml:snakeyaml dependency-version: '2.6' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 1bc76a8b047..550243a6f1a 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -92,7 +92,7 @@ dependencies { api 'com.github.docker-java:docker-java-transport-zerodep' shaded 'com.google.guava:guava:33.3.1-jre' - shaded "org.yaml:snakeyaml:2.5" + shaded "org.yaml:snakeyaml:2.6" shaded 'org.glassfish.main.external:trilead-ssh2-repackaged:4.1.2' From c6f0e933233ebb2021df94d7d83249a701d86c74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 06:40:18 +0000 Subject: [PATCH 201/269] Bump redis.clients:jedis from 6.2.0 to 7.4.1 in /core Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 6.2.0 to 7.4.1. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v6.2.0...v7.4.1) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.4.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 1bc76a8b047..e7f34b570a7 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -105,7 +105,7 @@ dependencies { exclude group: 'com.google.guava', module: 'guava' } testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' - testImplementation 'redis.clients:jedis:6.2.0' + testImplementation 'redis.clients:jedis:7.4.1' testImplementation 'com.rabbitmq:amqp-client:5.26.0' testImplementation 'org.mongodb:mongo-java-driver:3.12.14' From 747db2b9895470ae4047c3f8a5fb27951aaccc25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 06:40:18 +0000 Subject: [PATCH 202/269] Bump org.junit.platform:junit-platform-launcher in /core Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit-framework) from 1.11.0 to 1.14.3. - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](https://github.com/junit-team/junit-framework/commits) --- updated-dependencies: - dependency-name: org.junit.platform:junit-platform-launcher dependency-version: 1.14.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 1bc76a8b047..4a36b3e9f7b 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -98,7 +98,7 @@ dependencies { shaded 'org.zeroturnaround:zt-exec:1.12' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.14.3' testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' testImplementation('com.google.cloud.tools:jib-core:0.27.3') { @@ -120,7 +120,7 @@ dependencies { jarFileTestCompileOnly "org.projectlombok:lombok:${lombok.version}" jarFileTestAnnotationProcessor "org.projectlombok:lombok:${lombok.version}" - jarFileTestRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' + jarFileTestRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.14.3' jarFileTestImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' jarFileTestImplementation 'org.assertj:assertj-core:3.27.7' jarFileTestImplementation 'org.ow2.asm:asm-debug-all:5.2' From 15a762ce8890487d940ad5769f676f3287d8d527 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 06:40:22 +0000 Subject: [PATCH 203/269] Bump org.apache.activemq:artemis-jakarta-client in /modules/activemq Bumps org.apache.activemq:artemis-jakarta-client from 2.44.0 to 2.53.0. --- updated-dependencies: - dependency-name: org.apache.activemq:artemis-jakarta-client dependency-version: 2.53.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/activemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/activemq/build.gradle b/modules/activemq/build.gradle index 158e8503759..d88c0053379 100644 --- a/modules/activemq/build.gradle +++ b/modules/activemq/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation "org.apache.activemq:activemq-client:6.2.4" - testImplementation "org.apache.activemq:artemis-jakarta-client:2.44.0" + testImplementation "org.apache.activemq:artemis-jakarta-client:2.53.0" } From 81a30189f5d5467a09e27511b93f67aacee6844d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 06:40:31 +0000 Subject: [PATCH 204/269] Bump software.amazon.awssdk:dynamodb in /modules/scylladb Bumps software.amazon.awssdk:dynamodb from 2.40.4 to 2.42.33. --- updated-dependencies: - dependency-name: software.amazon.awssdk:dynamodb dependency-version: 2.42.33 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/scylladb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scylladb/build.gradle b/modules/scylladb/build.gradle index a7931d7c7c9..c3fe0927d6a 100644 --- a/modules/scylladb/build.gradle +++ b/modules/scylladb/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(":testcontainers") testImplementation 'com.scylladb:java-driver-core:4.19.0.8' - testImplementation 'software.amazon.awssdk:dynamodb:2.40.4' + testImplementation 'software.amazon.awssdk:dynamodb:2.42.34' } From 25d284d4198927c0a2cf9712d5d1981b27cc5570 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:47:30 +0000 Subject: [PATCH 205/269] Bump com.google.cloud.tools:jib-core from 0.27.3 to 0.28.1 in /core Bumps [com.google.cloud.tools:jib-core](https://github.com/GoogleContainerTools/jib) from 0.27.3 to 0.28.1. - [Release notes](https://github.com/GoogleContainerTools/jib/releases) - [Commits](https://github.com/GoogleContainerTools/jib/commits) --- updated-dependencies: - dependency-name: com.google.cloud.tools:jib-core dependency-version: 0.28.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 1bc76a8b047..000560172b6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -70,7 +70,7 @@ dependencies { exclude(group: 'org.jetbrains', module: 'annotations') } - provided('com.google.cloud.tools:jib-core:0.27.3') { + provided('com.google.cloud.tools:jib-core:0.28.1') { exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.fasterxml.jackson.datatype', module: 'jackson-datatype-jsr310' exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core' @@ -101,7 +101,7 @@ dependencies { testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' - testImplementation('com.google.cloud.tools:jib-core:0.27.3') { + testImplementation('com.google.cloud.tools:jib-core:0.28.1') { exclude group: 'com.google.guava', module: 'guava' } testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' From 72384f273a02945dbe202ce0ad969cee7013a70c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:47:59 +0000 Subject: [PATCH 206/269] Bump org.jetbrains:annotations from 26.0.2-1 to 26.1.0 in /core Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.2-1 to 26.1.0. - [Release notes](https://github.com/JetBrains/java-annotations/releases) - [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md) - [Commits](https://github.com/JetBrains/java-annotations/compare/26.0.2-1...26.1.0) --- updated-dependencies: - dependency-name: org.jetbrains:annotations dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 1bc76a8b047..b394225e6e2 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -63,8 +63,8 @@ configurations.all { dependencies { api 'org.slf4j:slf4j-api:1.7.36' - compileOnly 'org.jetbrains:annotations:26.0.2-1' - testCompileOnly 'org.jetbrains:annotations:26.0.2-1' + compileOnly 'org.jetbrains:annotations:26.1.0' + testCompileOnly 'org.jetbrains:annotations:26.1.0' api 'org.apache.commons:commons-compress:1.28.0' api ('org.rnorth.duct-tape:duct-tape:1.0.8') { exclude(group: 'org.jetbrains', module: 'annotations') From a412b8ea77bae4ef51ca3e6bed7cffd0566b362e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Wed, 15 Apr 2026 23:32:54 -0600 Subject: [PATCH 207/269] Use weaviate client v6 (#11711) --- modules/weaviate/build.gradle | 15 +++- .../weaviate/WeaviateContainerTest.java | 68 +++++++++++-------- 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/modules/weaviate/build.gradle b/modules/weaviate/build.gradle index fd61cd7e3f4..5392b585b71 100644 --- a/modules/weaviate/build.gradle +++ b/modules/weaviate/build.gradle @@ -3,5 +3,18 @@ description = "Testcontainers :: Weaviate" dependencies { api project(':testcontainers') - testImplementation 'io.weaviate:client:5.5.0' + testImplementation 'io.weaviate:client6:6.1.0' +} + +test { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(17) + } +} + +compileTestJava { + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(17) + } + options.release.set(17) } diff --git a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java index 9a1ad47d5af..d103970053c 100644 --- a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java +++ b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java @@ -1,9 +1,7 @@ package org.testcontainers.weaviate; -import io.weaviate.client.Config; -import io.weaviate.client.WeaviateClient; -import io.weaviate.client.base.Result; -import io.weaviate.client.v1.misc.model.Meta; +import io.weaviate.client6.v1.api.InstanceMetadata; +import io.weaviate.client6.v1.api.WeaviateClient; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; @@ -17,22 +15,30 @@ class WeaviateContainerTest { @Test - void testWeaviate() { + void testWeaviate() throws Exception { try ( // container { - WeaviateContainer weaviate = new WeaviateContainer("cr.weaviate.io/semitechnologies/weaviate:1.29.0") + WeaviateContainer weaviate = new WeaviateContainer("cr.weaviate.io/semitechnologies/weaviate:1.32.0") // } ) { weaviate.start(); - Config config = new Config("http", weaviate.getHttpHostAddress()); - config.setGRPCHost(weaviate.getGrpcHostAddress()); - WeaviateClient client = new WeaviateClient(config); - Result meta = client.misc().metaGetter().run(); - assertThat(meta.getResult().getVersion()).isEqualTo("1.29.0"); + try ( + WeaviateClient client = WeaviateClient.connectToCustom(conn -> { + return conn + .scheme("http") + .httpHost(weaviate.getHost()) + .httpPort(weaviate.getMappedPort(8080)) + .grpcHost(weaviate.getHost()) + .grpcPort(weaviate.getMappedPort(50051)); + }) + ) { + InstanceMetadata meta = client.meta(); + assertThat(meta.version()).isEqualTo("1.32.0"); + } } } @Test - void testWeaviateWithModules() { + void testWeaviateWithModules() throws Exception { List enableModules = Arrays.asList( "backup-filesystem", "text2vec-openai", @@ -43,22 +49,30 @@ void testWeaviateWithModules() { Map env = new HashMap<>(); env.put("ENABLE_MODULES", String.join(",", enableModules)); env.put("BACKUP_FILESYSTEM_PATH", "/tmp/backups"); - try (WeaviateContainer weaviate = new WeaviateContainer("semitechnologies/weaviate:1.29.0").withEnv(env)) { + try (WeaviateContainer weaviate = new WeaviateContainer("semitechnologies/weaviate:1.32.0").withEnv(env)) { weaviate.start(); - Config config = new Config("http", weaviate.getHttpHostAddress()); - config.setGRPCHost(weaviate.getGrpcHostAddress()); - WeaviateClient client = new WeaviateClient(config); - Result meta = client.misc().metaGetter().run(); - assertThat(meta.getResult().getVersion()).isEqualTo("1.29.0"); - Object modules = meta.getResult().getModules(); - assertThat(modules) - .isNotNull() - .asInstanceOf(InstanceOfAssertFactories.map(String.class, Object.class)) - .extracting(Map::keySet) - .satisfies(keys -> { - assertThat(keys.size()).isEqualTo(enableModules.size()); - keys.forEach(key -> assertThat(enableModules.contains(key)).isTrue()); - }); + try ( + WeaviateClient client = WeaviateClient.connectToCustom(conn -> { + return conn + .scheme("http") + .httpHost(weaviate.getHost()) + .httpPort(weaviate.getMappedPort(8080)) + .grpcHost(weaviate.getHost()) + .grpcPort(weaviate.getMappedPort(50051)); + }) + ) { + InstanceMetadata meta = client.meta(); + assertThat(meta.version()).isEqualTo("1.32.0"); + Map modules = meta.modules(); + assertThat(modules) + .isNotNull() + .asInstanceOf(InstanceOfAssertFactories.map(String.class, Object.class)) + .extracting(Map::keySet) + .satisfies(keys -> { + assertThat(keys.size()).isEqualTo(enableModules.size()); + keys.forEach(key -> assertThat(enableModules.contains(key)).isTrue()); + }); + } } } } From 84b1c3a5951f18421ed35e82c44a1d17c5690cad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Thu, 16 Apr 2026 00:07:08 -0600 Subject: [PATCH 208/269] Add getHttpPort and getGrpcPort methods in WeaviateContainer (#11712) --- .../weaviate/WeaviateContainer.java | 20 +++++++++++++++---- .../weaviate/WeaviateContainerTest.java | 8 ++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/modules/weaviate/src/main/java/org/testcontainers/weaviate/WeaviateContainer.java b/modules/weaviate/src/main/java/org/testcontainers/weaviate/WeaviateContainer.java index 86aff57ae5d..dbc18a49a22 100644 --- a/modules/weaviate/src/main/java/org/testcontainers/weaviate/WeaviateContainer.java +++ b/modules/weaviate/src/main/java/org/testcontainers/weaviate/WeaviateContainer.java @@ -17,6 +17,10 @@ */ public class WeaviateContainer extends GenericContainer { + private static final int HTTP_PORT = 8080; + + private static final int GRPC_PORT = 50051; + private static final DockerImageName DEFAULT_WEAVIATE_IMAGE = DockerImageName.parse( "cr.weaviate.io/semitechnologies/weaviate" ); @@ -30,17 +34,25 @@ public WeaviateContainer(String dockerImageName) { public WeaviateContainer(DockerImageName dockerImageName) { super(dockerImageName); dockerImageName.assertCompatibleWith(DEFAULT_WEAVIATE_IMAGE, DOCKER_HUB_WEAVIATE_IMAGE); - withExposedPorts(8080, 50051); + withExposedPorts(HTTP_PORT, GRPC_PORT); withEnv("AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED", "true"); withEnv("PERSISTENCE_DATA_PATH", "/var/lib/weaviate"); - waitingFor(Wait.forHttp("/v1/.well-known/ready").forPort(8080).forStatusCode(200)); + waitingFor(Wait.forHttp("/v1/.well-known/ready").forPort(HTTP_PORT).forStatusCode(200)); } public String getHttpHostAddress() { - return getHost() + ":" + getMappedPort(8080); + return getHost() + ":" + getHttpPort(); + } + + public Integer getHttpPort() { + return getMappedPort(HTTP_PORT); } public String getGrpcHostAddress() { - return getHost() + ":" + getMappedPort(50051); + return getHost() + ":" + getGrpcPort(); + } + + public Integer getGrpcPort() { + return getMappedPort(GRPC_PORT); } } diff --git a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java index d103970053c..098a1561913 100644 --- a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java +++ b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java @@ -26,9 +26,9 @@ void testWeaviate() throws Exception { return conn .scheme("http") .httpHost(weaviate.getHost()) - .httpPort(weaviate.getMappedPort(8080)) + .httpPort(weaviate.getHttpPort()) .grpcHost(weaviate.getHost()) - .grpcPort(weaviate.getMappedPort(50051)); + .grpcPort(weaviate.getGrpcPort()); }) ) { InstanceMetadata meta = client.meta(); @@ -56,9 +56,9 @@ void testWeaviateWithModules() throws Exception { return conn .scheme("http") .httpHost(weaviate.getHost()) - .httpPort(weaviate.getMappedPort(8080)) + .httpPort(weaviate.getHttpPort()) .grpcHost(weaviate.getHost()) - .grpcPort(weaviate.getMappedPort(50051)); + .grpcPort(weaviate.getGrpcPort()); }) ) { InstanceMetadata meta = client.meta(); From 5c448202ac69d073f746433d3e79f6a2bf0ec585 Mon Sep 17 00:00:00 2001 From: Haider Kagalwala <70105477+haider2122@users.noreply.github.com> Date: Mon, 20 Apr 2026 21:53:51 +0530 Subject: [PATCH 209/269] Fix typo (#11717) --- .../java/org/testcontainers/containers/GenericContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index 0fe944433ae..fa5711807e7 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -1115,7 +1115,7 @@ public SELF withEnv(Map env) { @Override public SELF withLabel(String key, String value) { if (key.startsWith("org.testcontainers")) { - throw new IllegalArgumentException("The org.testcontainers namespace is reserved for interal use"); + throw new IllegalArgumentException("The org.testcontainers namespace is reserved for internal use"); } this.containerDef.addLabel(key, value); return self(); From 09752a8ba2648983842c9617cd5d2560f185bfea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:46:49 -0600 Subject: [PATCH 210/269] [create-pull-request] automated change (#11720) Co-authored-by: eddumelendez <1810547+eddumelendez@users.noreply.github.com> --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index eeb86a395e8..f9e383482f4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.caching=true org.gradle.configureondemand=true org.gradle.jvmargs=-Xmx2g -testcontainers.version=2.0.4 +testcontainers.version=2.0.5 From afd28bb559b07f8da5aaa9e2bc21721ee8ee97af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:47:04 -0600 Subject: [PATCH 211/269] [create-pull-request] automated change (#11721) Co-authored-by: eddumelendez <1810547+eddumelendez@users.noreply.github.com> --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 552f36f29f4..ad75b0b2f22 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -140,4 +140,4 @@ nav: - bounty.md edit_uri: edit/main/docs/ extra: - latest_version: 2.0.4 + latest_version: 2.0.5 From adbea9d4e70598551817cfcfe425c6c3c35943ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sat, 2 May 2026 01:19:15 +0300 Subject: [PATCH 212/269] Remove duplicated org.junit.platform:junit-platform-launcher dependency --- examples/immudb/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/immudb/build.gradle b/examples/immudb/build.gradle index 4c2256983eb..a4d656dd762 100644 --- a/examples/immudb/build.gradle +++ b/examples/immudb/build.gradle @@ -15,7 +15,6 @@ dependencies { testImplementation 'ch.qos.logback:logback-classic:1.3.15' testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' } test { From 6299b4f2135d45e11957a321a13b37d28b10ab59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sat, 2 May 2026 01:19:46 +0300 Subject: [PATCH 213/269] Polish neo4j-container build file --- examples/neo4j-container/build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/neo4j-container/build.gradle b/examples/neo4j-container/build.gradle index 5ba6faf08af..7a6eed0016d 100644 --- a/examples/neo4j-container/build.gradle +++ b/examples/neo4j-container/build.gradle @@ -14,3 +14,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' } + +test { + useJUnitPlatform() +} From 38783111aea6899ee42541756771394f2fb02958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Sat, 2 May 2026 01:20:45 +0300 Subject: [PATCH 214/269] Remove unused gradle plugin --- examples/settings.gradle | 1 - smoke-test/settings.gradle | 1 - 2 files changed, 2 deletions(-) diff --git a/examples/settings.gradle b/examples/settings.gradle index 8d144867bbd..b9b58a917bf 100644 --- a/examples/settings.gradle +++ b/examples/settings.gradle @@ -5,7 +5,6 @@ buildscript { } } dependencies { - classpath "gradle.plugin.ch.myniva.gradle:s3-build-cache:0.10.0" classpath "com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.17.4" classpath "com.gradle:common-custom-user-data-gradle-plugin:2.0.1" } diff --git a/smoke-test/settings.gradle b/smoke-test/settings.gradle index e79fb0d5c94..6334742441a 100644 --- a/smoke-test/settings.gradle +++ b/smoke-test/settings.gradle @@ -5,7 +5,6 @@ buildscript { } } dependencies { - classpath "gradle.plugin.ch.myniva.gradle:s3-build-cache:0.10.0" classpath "com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.17.4" classpath "com.gradle:common-custom-user-data-gradle-plugin:2.0.1" } From 50484874fccd1b38892e0baa92cda484879b6b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Przyby=C5=82?= <23506256+pioorg@users.noreply.github.com> Date: Wed, 20 May 2026 14:50:24 +0200 Subject: [PATCH 215/269] Added KibanaContainer (#11493) Co-authored-by: Kevin Wittek --- docs/modules/elasticsearch.md | 27 + .../elasticsearch/ElasticsearchContainer.java | 89 +++ .../elasticsearch/KibanaContainer.java | 613 ++++++++++++++++++ .../ElasticsearchContainerTest.java | 33 + .../elasticsearch/KibanaContainerTest.java | 461 +++++++++++++ 5 files changed, 1223 insertions(+) create mode 100644 modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java create mode 100644 modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java diff --git a/docs/modules/elasticsearch.md b/docs/modules/elasticsearch.md index c1fb4a3f6a8..5817a21de02 100644 --- a/docs/modules/elasticsearch.md +++ b/docs/modules/elasticsearch.md @@ -30,6 +30,33 @@ You can turn on security by providing a password: [HttpClient](../../modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java) inside_block:httpClientSecuredContainer +## Kibana container + +This module also provides a `KibanaContainer` for testing with [Kibana](https://www.elastic.co/kibana). +Kibana requires a connection to Elasticsearch and `KibanaContainer` supports two modes: managed and external. + +### Managed mode + +In managed mode, `KibanaContainer` automatically connects to an `ElasticsearchContainer`: + + +[Kibana with Elasticsearch](../../modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java) inside_block:managedModeCanStartAndReachElasticsearchInSameExplicitNetwork + + +When using managed mode with explicit networks, both containers must share the same `Network` instance. +Alternatively, you can omit the network configuration entirely, and `KibanaContainer` will do its best effort to create a shared, ad-hoc network automatically. + +### External mode + +In external mode, `KibanaContainer` connects to an external Elasticsearch instance via URL and using provided credentials: + + +[Kibana with external Elasticsearch](../../modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java) inside_block:externalModeCanWorkWithUsernamePassword + + +For external mode with HTTPS, use `withElasticsearchCaCertificate()` to provide the CA certificate. +You can authenticate using either username/password (`withElasticsearchCredentials()`) or service account tokens (`withElasticsearchServiceAccountToken()`). + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/ElasticsearchContainer.java b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/ElasticsearchContainer.java index 54f1a4c17f8..2080d21649a 100644 --- a/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/ElasticsearchContainer.java +++ b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/ElasticsearchContainer.java @@ -209,10 +209,99 @@ public ElasticsearchContainer withCertPath(String certPath) { return this; } + String getCertPath() { + return certPath; + } + public String getHttpHostAddress() { return getHost() + ":" + getMappedPort(ELASTICSEARCH_DEFAULT_PORT); } + /** + * Checks env first if this implies HTTP/HTTPS. + * Otherwise, detects the scheme used by Elasticsearch using curl + * + * @return "http" or "https" + */ + String getHttpScheme() { + String securityEnabled = getEnvMap().get("xpack.security.enabled"); + String httpSslEnabled = getEnvMap().get("xpack.security.http.ssl.enabled"); + + // Respect explicit user config + if ("false".equalsIgnoreCase(securityEnabled) || "false".equalsIgnoreCase(httpSslEnabled)) { + return "http"; + } + if ("true".equalsIgnoreCase(httpSslEnabled)) { + return "https"; + } + + if (!isRunning()) { + throw new IllegalStateException( + "Cannot determine HTTP scheme: environment variables are not set and container is not running for curl probe" + ); + } + + ExecResult httpsResult = null; + ExecResult httpResult = null; + try { + // HTTPS probe: any HTTP response (200/401/403/...) => scheme is HTTPS. + // http_code == 000 means we didn't get an HTTP response (TLS/connect failure/timeout). + httpsResult = + execInContainer( + "curl", + "-sS", + "-k", + "--connect-timeout", + "2", + "--max-time", + "4", + "-o", + "/dev/null", + "-w", + "%{http_code}", + "https://localhost:" + ELASTICSEARCH_DEFAULT_PORT + "/" + ); + if (httpsResult.getExitCode() == 0 && !"000".equals(httpsResult.getStdout().trim())) { + return "https"; + } + + // HTTP probe + httpResult = + execInContainer( + "curl", + "-sS", + "--connect-timeout", + "2", + "--max-time", + "4", + "-o", + "/dev/null", + "-w", + "%{http_code}", + "http://localhost:" + ELASTICSEARCH_DEFAULT_PORT + "/" + ); + if (httpResult.getExitCode() == 0 && !"000".equals(httpResult.getStdout().trim())) { + return "http"; + } + } catch (Exception e) { + throw new RuntimeException("Failed to detect protocol via curl", e); + } + + throw new RuntimeException( + String.format( + "Failed to detect protocol via curl. Both HTTPS and HTTP probes failed. " + + "HTTPS probe - exit code: %d, stdout: %s, stderr: %s; " + + "HTTP probe - exit code: %d, stdout: %s, stderr: %s", + httpsResult.getExitCode(), + httpsResult.getStdout(), + httpsResult.getStderr(), + httpResult.getExitCode(), + httpResult.getStdout(), + httpResult.getStderr() + ) + ); + } + // The TransportClient will be removed in Elasticsearch 8. No need to expose this port anymore in the future. @Deprecated public InetSocketAddress getTcpHost() { diff --git a/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java new file mode 100644 index 00000000000..a7214f0618d --- /dev/null +++ b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java @@ -0,0 +1,613 @@ +package org.testcontainers.elasticsearch; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.dockerjava.api.command.InspectContainerResponse; +import com.github.dockerjava.api.model.ContainerNetwork; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.rnorth.ducttape.unreliables.Unreliables; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testcontainers.DockerClientFactory; +import org.testcontainers.containers.Container; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.containers.Network; +import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.images.builder.Transferable; +import org.testcontainers.utility.Base58; +import org.testcontainers.utility.ComparableVersion; +import org.testcontainers.utility.DockerImageName; + +import java.time.Duration; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * Testcontainers implementation for Kibana. + * Minimum supported version: {@value MINIMUM_SUPPORTED_VERSION} + *

    + * Supports two modes: + *

      + *
    • Managed mode: Kibana automatically connects to an {@link ElasticsearchContainer}. + * See KibanaContainerTest#managedModeCanStartAndReachElasticsearchInSameExplicitNetwork()
    • + *
    • External mode: Kibana connects to an external Elasticsearch instance via URL. + * See KibanaContainerTest#externalModeCanWorkWithUsernamePassword()
    • + *
    + *

    + */ +public class KibanaContainer extends GenericContainer { + + private static final String ES_CA_CERT_PATH = "/usr/share/kibana/config/certs/es-ca.crt"; + + private static final Logger log = LoggerFactory.getLogger(KibanaContainer.class); + + private static final int KIBANA_DEFAULT_PORT = 5601; + + private static final String KIBANA_SYSTEM_USER = "kibana_system"; + + private static final String MINIMUM_SUPPORTED_VERSION = "8.0.0"; + + private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("docker.elastic.co/kibana/kibana"); + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private ElasticsearchContainer elasticsearch; + + private String elasticsearchUrl; + + private String elasticsearchUsername; + + private String elasticsearchPassword; + + private String elasticsearchServiceAccountToken; + + private byte[] elasticsearchCaCertificate; + + private Duration startupTimeout = Duration.ofSeconds(120); + + /** + * If KibanaContainer creates an ad-hoc shared network (managed mode, neither container has an explicit network), + * it owns closing it. + */ + private Network createdSharedNetwork; + + /** + * Creates a KibanaContainer in managed mode. + * Kibana automatically connects to the provided Elasticsearch container. + * + * @param elasticsearch the Elasticsearch container to connect to + */ + public KibanaContainer(ElasticsearchContainer elasticsearch) { + this(buildDockerImageName(elasticsearch)); + this.elasticsearch = elasticsearch; + dependsOn(elasticsearch); + } + + /** + * Creates a KibanaContainer in external mode. + * Use {@link #withElasticsearchUrl(String)} to configure the Elasticsearch connection. Use other methods to provide security credentials and such. + * + * @param dockerImageName the Docker image name + */ + public KibanaContainer(String dockerImageName) { + this(DockerImageName.parse(dockerImageName)); + } + + /** + * Creates a KibanaContainer in external mode. + * Use {@link #withElasticsearchUrl(String)} to configure the Elasticsearch connection. Use other methods to provide security credentials and such. + * + * @param dockerImageName the Docker image name + */ + public KibanaContainer(final DockerImageName dockerImageName) { + super(dockerImageName); + ensureCompatibleVersion(dockerImageName.getVersionPart()); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); + + withExposedPorts(KIBANA_DEFAULT_PORT); + //we have to explicitly set wait the strategy later on in configure, once we know the security configuration + setWaitStrategy(null); + } + + /** + * Configures the Elasticsearch URL for external mode. + * + * @param elasticsearchUrl the Elasticsearch URL (e.g., "https://my.fancy.setup.elastic.cloud:9200") + * @return this container instance + * @throws IllegalStateException if already using managed mode + */ + public KibanaContainer withElasticsearchUrl(String elasticsearchUrl) { + if (elasticsearch != null) { + throw new IllegalStateException("Cannot set Elasticsearch URL when using Elasticsearch container"); + } + this.elasticsearchUrl = elasticsearchUrl; + return this; + } + + /** + * Configures Kibana to authenticate using the kibana_system user. + * + * @param password the password for the kibana_system user + * @return this container instance + */ + public KibanaContainer withKibanaSystemPassword(String password) { + return withKibanaUsernameAndPassword(KIBANA_SYSTEM_USER, password); + } + + /** + * Configures credentials Kibana will use for authentication. + * + * @param username the Elasticsearch username (cannot be 'elastic') + * @param password the password + * @return this container instance + * @throws IllegalStateException if a service account token is already configured + * @throws IllegalArgumentException if credentials are invalid + */ + public KibanaContainer withKibanaUsernameAndPassword(String username, String password) { + if (elasticsearchServiceAccountToken != null) { + throw new IllegalStateException( + "Conflicting Elasticsearch credentials: provide either a service account token " + + "or a username/password pair, not both." + ); + } + if (StringUtils.isAnyBlank(username, password)) { + throw new IllegalArgumentException("Kibana credentials cannot be blank"); + } + if (!username.equals(username.trim()) || !password.equals(password.trim())) { + throw new IllegalArgumentException("Kibana credentials cannot have leading or trailing whitespace"); + } + if ("elastic".equals(username)) { + throw new IllegalArgumentException("Username 'elastic' is reserved for internal use by Elasticsearch"); + } + + this.elasticsearchUsername = username; + this.elasticsearchPassword = password; + return this; + } + + /** + * Configures a service account token for Elasticsearch authentication. + * + * @param token the service account token + * @return this container instance + * @throws IllegalStateException if username/password credentials are already configured + * @throws IllegalArgumentException if token is blank + */ + public KibanaContainer withElasticsearchServiceAccountToken(String token) { + if (elasticsearchUsername != null) { + throw new IllegalStateException( + "Conflicting Elasticsearch credentials: provide either a service account token " + + "or a username/password pair, not both." + ); + } + if (StringUtils.isBlank(token)) { + throw new IllegalArgumentException("Service account token cannot be empty"); + } + + if (!token.equals(token.trim())) { + throw new IllegalArgumentException("Service token cannot have leading or trailing whitespace"); + } + this.elasticsearchServiceAccountToken = token; + return this; + } + + /** + * Configures the Elasticsearch CA certificate for HTTPS connections. + * + * @param caCertificate the CA certificate in PEM format + * @return this container instance + * @throws IllegalArgumentException if certificate is empty + */ + public KibanaContainer withElasticsearchCaCertificate(byte[] caCertificate) { + if (caCertificate == null || caCertificate.length == 0) { + throw new IllegalArgumentException("Elasticsearch CA certificate cannot be empty"); + } + this.elasticsearchCaCertificate = caCertificate; + return this; + } + + @Override + protected void configure() { + super.configure(); + + addEnv("XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY", generateRandomKey(32)); + addEnv("SERVER_NAME", "kibana"); + + if (elasticsearchCaCertificate != null) { + withCopyToContainer(Transferable.of(elasticsearchCaCertificate), ES_CA_CERT_PATH); + addEnv("ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES", ES_CA_CERT_PATH); + } + if (elasticsearch != null) { + configureManagedElasticsearch(); + } else if (elasticsearchUrl != null) { + configureExternalElasticsearch(); + } else { + throw new IllegalStateException( + "Elasticsearch must be configured either via constructor KibanaContainer(elasticsearch) " + + "or via .withElasticsearchUrl() for external Elasticsearch" + ); + } + //wait strategy is set in configure, because we don't know the security configuration before + configureWaitStrategy(); + } + + @Override + protected void containerIsStarted(InspectContainerResponse containerInfo) { + super.containerIsStarted(containerInfo); + log.info("Kibana is now ready, it can be accessed at http://{}", getHttpHostAddress()); + } + + @Override + public void stop() { + super.stop(); + if (createdSharedNetwork != null) { + try { + createdSharedNetwork.close(); + } catch (Exception e) { + log.debug("Failed to close shared network", e); + } finally { + createdSharedNetwork = null; + } + } + } + + @Override + public KibanaContainer withStartupTimeout(Duration startupTimeout) { + this.startupTimeout = startupTimeout; + return this; + } + + private static DockerImageName buildDockerImageName(ElasticsearchContainer elasticsearch) { + String esVersion = DockerImageName.parse(elasticsearch.getDockerImageName()).getVersionPart(); + ensureCompatibleVersion(esVersion); + return DEFAULT_IMAGE_NAME.withTag(esVersion); + } + + private void configureExternalElasticsearch() { + addEnv("ELASTICSEARCH_HOSTS", elasticsearchUrl); + if (elasticsearchServiceAccountToken != null) { + addEnv("ELASTICSEARCH_SERVICEACCOUNTTOKEN", elasticsearchServiceAccountToken); + } else if (elasticsearchUsername != null && elasticsearchPassword != null) { + addEnv("ELASTICSEARCH_USERNAME", elasticsearchUsername); + addEnv("ELASTICSEARCH_PASSWORD", elasticsearchPassword); + } else { + log.info( + "No Elasticsearch credentials provided for external mode; Kibana will attempt to connect anonymously" + ); + } + } + + private void configureManagedElasticsearch() { + ensureCorrectNetworkSetupForManagedMode(); + + if (getNetwork() == null) { + createAdHocNetwork(); + } + + String protocol = elasticsearch.getHttpScheme(); + + String hosts = protocol + "://" + resolveExistingEsDnsNameOnNetwork(getNetwork()) + ":9200"; + addEnv("ELASTICSEARCH_HOSTS", hosts); + + if ("https".equals(protocol)) { + // In managed mode, if Elasticsearch uses HTTPS we must configure Kibana with the ES CA, unless provided by user + if (this.elasticsearchCaCertificate == null) { + byte[] ca = copyElasticsearchHttpCaCertificateOrThrow(); + + withCopyToContainer(Transferable.of(ca), ES_CA_CERT_PATH); + addEnv("ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES", ES_CA_CERT_PATH); + } + if (elasticsearch != null && !getEnvMap().containsKey("ELASTICSEARCH_SSL_VERIFICATIONMODE")) { + addEnv("ELASTICSEARCH_SSL_VERIFICATIONMODE", "certificate"); + } + } + + // Elasticsearch 8.x+ has the security enabled by default, so lack of the env var set to false means security is enabled + boolean securityDisabled = "false".equalsIgnoreCase(elasticsearch.getEnvMap().get("xpack.security.enabled")); + + if (!securityDisabled) { + // Managed mode: authenticate Kibana -> Elasticsearch using a Kibana service account token. + // This avoids any password lifecycle management for kibana_system. + String token = createKibanaServiceAccountToken(protocol); + addEnv("ELASTICSEARCH_SERVICEACCOUNTTOKEN", token); + } + } + + private byte[] copyElasticsearchHttpCaCertificateOrThrow() { + try { + return elasticsearch.copyFileFromContainer(elasticsearch.getCertPath(), IOUtils::toByteArray); + } catch (Exception e) { + throw new IllegalStateException( + "Failed to copy Elasticsearch HTTP CA certificate from '" + + elasticsearch.getCertPath() + + "'. " + + "In managed HTTPS mode, KibanaContainer requires access to the Elasticsearch HTTP CA.", + e + ); + } + } + + private void ensureCorrectNetworkSetupForManagedMode() { + Network esNetwork = elasticsearch.getNetwork(); + Network kbNetwork = this.getNetwork(); + + if ((esNetwork == null) != (kbNetwork == null)) { + throw new IllegalStateException( + "Managed mode requires either both containers share the same explicit network, " + + "or neither specifies a network (KibanaContainer will create one). " + ); + } + + // Both explicit: must be same + if (esNetwork != kbNetwork) { + throw new IllegalStateException( + "Elasticsearch and Kibana have different networks configured. " + + "In managed mode both containers must share the same explicit network instance, " + + "or neither must define a network." + ); + } + } + + private void createAdHocNetwork() { + // Fully managed: create ad-hoc network and own it. + createdSharedNetwork = Network.newNetwork(); + withNetwork(createdSharedNetwork); + + // Managed-mode safety rule: by the time Kibana is configuring itself, Elasticsearch must already be + // started (via dependsOn) + String esId = requireElasticsearchContainerId(); + + // Elasticsearch is already created/started. Attach it to the ad-hoc network. + // We don't need to provide an explicit alias - we'll use the container name for DNS resolution. + // Equivalent of https://docs.docker.com/reference/cli/docker/network/connect/ + connectRunningContainerToNetwork(esId, createdSharedNetwork); + } + + private String resolveExistingEsDnsNameOnNetwork(Network network) { + String esId = requireElasticsearchContainerId(); + + InspectContainerResponse info = DockerClientFactory.instance().client().inspectContainerCmd(esId).exec(); + + Map networks = info.getNetworkSettings().getNetworks(); + if (networks == null) { + throw new IllegalStateException("Elasticsearch container has no network configuration"); + } + + // Try to find the network endpoint - Docker may key by network name or ID + ContainerNetwork endpoint = findNetworkEndpoint(networks, network); + if (endpoint == null) { + throw new IllegalStateException( + "Elasticsearch container is not connected to the expected network. " + + "Ensure both containers use the same Network instance." + ); + } + + // Prefer user-defined network aliases (skip Testcontainers auto-generated tc-* aliases) + if (endpoint.getAliases() != null && !endpoint.getAliases().isEmpty()) { + for (String alias : endpoint.getAliases()) { + if (StringUtils.isNotBlank(alias)) { + String cleaned = alias.trim(); + // Skip Testcontainers auto-generated aliases (tc-*), prefer user-defined ones + if (!cleaned.startsWith("tc-")) { + log.info("Using Elasticsearch network alias: {}", cleaned); + return cleaned; + } + } + } + } + + // Fallback: use container name + String containerName = info.getName(); + if (containerName != null && !containerName.trim().isEmpty()) { + String dnsName = containerName.replaceFirst("^/", "").trim(); + log.info("No user-defined network alias found, using Elasticsearch container name: {}", dnsName); + return dnsName; + } + + throw new IllegalStateException( + "Cannot determine Elasticsearch DNS name. " + + "When using a custom network, set a network alias on the Elasticsearch container." + ); + } + + private ContainerNetwork findNetworkEndpoint(Map networks, Network network) { + // Try network ID first + ContainerNetwork endpoint = networks.get(network.getId()); + if (endpoint != null) { + return endpoint; + } + + // Try network name as fallback (Docker may key by name instead of ID) + try { + String networkName = DockerClientFactory + .instance() + .client() + .inspectNetworkCmd() + .withNetworkId(network.getId()) + .exec() + .getName(); + if (networkName != null) { + return networks.get(networkName); + } + } catch (Exception e) { + // Ignore and return null + } + + return null; + } + + private String requireElasticsearchContainerId() { + String id = elasticsearch.getContainerId(); + if (StringUtils.isBlank(id)) { + throw new IllegalStateException( + "Elasticsearch containerId is not available. In managed mode, Elasticsearch must be started via dependsOn(elasticsearch) " + + "before KibanaContainer is started." + ); + } + return id.trim(); + } + + private void connectRunningContainerToNetwork(String containerId, Network network) { + String networkId = network.getId(); + + try { + DockerClientFactory + .instance() + .client() + .connectToNetworkCmd() + .withContainerId(containerId) + .withNetworkId(networkId) + .exec(); + } catch (Exception e) { + throw new IllegalStateException("Failed to connect Elasticsearch container to ad-hoc shared network", e); + } + } + + private static void ensureCompatibleVersion(String esVersion) { + ComparableVersion comparableVersion = new ComparableVersion(esVersion); + if (comparableVersion.isLessThan(MINIMUM_SUPPORTED_VERSION)) { + throw new IllegalArgumentException( + String.format( + "Kibana version %s is not supported. Minimum version is %s", + comparableVersion, + MINIMUM_SUPPORTED_VERSION + ) + ); + } + } + + private String createKibanaServiceAccountToken(String protocol) { + if (elasticsearch == null) { + throw new IllegalStateException("Cannot create service account token in external mode"); + } + + String elasticPassword = elasticsearch + .getEnvMap() + .getOrDefault("ELASTIC_PASSWORD", ElasticsearchContainer.ELASTICSEARCH_DEFAULT_PASSWORD); + + // Create a unique token name to avoid collisions if the same ES container is reused. + String tokenName = "tc-kibana-" + Base58.randomString(12); + + String endpoint = protocol + "://localhost:9200/_security/service/elastic/kibana/credential/token/" + tokenName; + + return Unreliables.retryUntilSuccess( + 45, + TimeUnit.SECONDS, + () -> { + String curlTlsArgs = ""; + if ("https".equals(protocol)) { + // In managed HTTPS mode, use the Elasticsearch HTTP CA for curl. + curlTlsArgs = " --cacert '" + elasticsearch.getCertPath() + "'"; + } + + String curlCommand = String.format( + "curl -sS%s -u \"elastic:$1\" -H 'Content-Type: application/json' -X POST '%s'", + curlTlsArgs, + endpoint + ); + + Container.ExecResult result = elasticsearch.execInContainer( + "/bin/sh", + "-c", + curlCommand, + "sh", + elasticPassword + ); + + String stdout = (result.getStdout() == null) ? "" : result.getStdout(); + String stderr = (result.getStderr() == null) ? "" : result.getStderr(); + + if (result.getExitCode() != 0) { + throw new RuntimeException( + "Failed to create Kibana service account token. Exit code: " + + result.getExitCode() + + ", stdout: " + + stdout + + ", stderr: " + + stderr + ); + } + + JsonNode json = OBJECT_MAPPER.readTree(stdout); + JsonNode value = json.path("token").path("value"); + if (value.isTextual() && !value.asText().trim().isEmpty()) { + return value.asText().trim(); + } + + throw new RuntimeException("Service account token response did not contain token.value: " + stdout); + } + ); + } + + private String generateRandomKey(int length) { + return Base58.randomString(length); + } + + /** + * Returns the HTTP host address for accessing Kibana. + * + * @return the host address in the format "host:port" + */ + public String getHttpHostAddress() { + return getHost() + ":" + getMappedPort(KIBANA_DEFAULT_PORT); + } + + private void configureWaitStrategy() { + if (this.getWaitStrategy() != null) { + // the user might have set a custom wait strategy + return; + } + HttpWaitStrategy strategy = Wait + .forHttp("/api/status") + .forPort(KIBANA_DEFAULT_PORT) + .forStatusCode(200) + .forResponsePredicate(this::isKibanaReady); + + // Add authentication if we have Elasticsearch credentials available + String serviceToken = getEnvMap().get("ELASTICSEARCH_SERVICEACCOUNTTOKEN"); + String username = getEnvMap().get("ELASTICSEARCH_USERNAME"); + String password = getEnvMap().get("ELASTICSEARCH_PASSWORD"); + + if (serviceToken != null) { + strategy = strategy.withHeader("Authorization", "Bearer " + serviceToken); + } else if (username != null && password != null) { + strategy = strategy.withBasicCredentials(username, password); + } + + setWaitStrategy(strategy.withStartupTimeout(this.startupTimeout)); + } + + private boolean isKibanaReady(String body) { + try { + JsonNode json = OBJECT_MAPPER.readTree(body); + JsonNode status = json.path("status"); + + String overallLevel = status.path("overall").path("level").asText(null); + String elasticsearchLevel = status.path("core").path("elasticsearch").path("level").asText(null); + String savedObjectsLevel = status.path("core").path("savedObjects").path("level").asText(null); + + boolean overallAvailable = "available".equalsIgnoreCase(overallLevel); + boolean elasticsearchAvailable = "available".equalsIgnoreCase(elasticsearchLevel); + boolean savedObjectsAvailable = "available".equalsIgnoreCase(savedObjectsLevel); + + boolean isReady = overallAvailable && elasticsearchAvailable && savedObjectsAvailable; + + if (log.isDebugEnabled()) { + log.debug( + "Kibana status check: READY={} (overall={}, elasticsearch={}, savedObjects={})", + isReady, + overallLevel, + elasticsearchLevel, + savedObjectsLevel + ); + } + + return isReady; + } catch (Exception e) { + log.debug("Kibana status check: FAILED to parse response - {}", e.getMessage()); + return false; + } + } +} diff --git a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java index f0219713751..52cd78b4a34 100644 --- a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java +++ b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java @@ -602,4 +602,37 @@ private void assertClusterHealthResponse(ElasticsearchContainer container) throw assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200); assertThat(EntityUtils.toString(response.getEntity())).contains("cluster_name"); } + + @Test + void testGetHttpSchemeForElasticsearch7ReturnsHttp() { + try (ElasticsearchContainer container = new ElasticsearchContainer(ELASTICSEARCH_IMAGE)) { + container.start(); + assertThat(container.getHttpScheme()).isEqualTo("http"); + } + } + + @Test + void testGetHttpSchemeForElasticsearch8ReturnsHttps() { + try ( + ElasticsearchContainer container = new ElasticsearchContainer( + "docker.elastic.co/elasticsearch/elasticsearch:8.1.2" + ) + ) { + container.start(); + assertThat(container.getHttpScheme()).isEqualTo("https"); + } + } + + @Test + void testGetHttpSchemeForElasticsearch8WithSslDisabledReturnsHttp() { + try ( + ElasticsearchContainer container = new ElasticsearchContainer( + "docker.elastic.co/elasticsearch/elasticsearch:8.1.2" + ) + .withEnv("xpack.security.http.ssl.enabled", "false") + ) { + container.start(); + assertThat(container.getHttpScheme()).isEqualTo("http"); + } + } } diff --git a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java new file mode 100644 index 00000000000..a6b9466690a --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java @@ -0,0 +1,461 @@ +package org.testcontainers.elasticsearch; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.testcontainers.containers.Container; +import org.testcontainers.containers.ContainerLaunchException; +import org.testcontainers.containers.Network; +import org.testcontainers.images.builder.Transferable; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +class KibanaContainerTest { + + public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static final String ES_IMAGE = "docker.elastic.co/elasticsearch/elasticsearch:9.2.4"; + + @Test + void cannotCreateKibanaContainerForVersionLessThan8() { + Assertions + .assertThatThrownBy(() -> new KibanaContainer("docker.elastic.co/kibana/kibana:7.17.29")) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("is not supported"); + } + + @Test + void managedModeCanStartAndReachElasticsearchInSameExplicitNetwork() throws IOException { + // managedModeCanStartAndReachElasticsearchInSameExplicitNetwork { + try ( + Network network = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE).withNetwork(network); + KibanaContainer kibana = new KibanaContainer(es).withNetwork(network) + ) { + es.start(); + kibana.start(); + + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + // } + } + + @Test + void managedModeCannotStartWithOnlyESNetworkExplicit() { + Network network = Network.newNetwork(); + try ( + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE).withNetwork(network); + KibanaContainer kibana = new KibanaContainer(es) + ) { + Assertions + .assertThatThrownBy(kibana::start) + .isInstanceOf(ContainerLaunchException.class) + .satisfies(ex -> { + Assertions + .assertThat(ex.getCause()) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("explicit network"); + }); + } + } + + @Test + void managedModeCannotStartWithDifferentExplicitNetworks() { + try ( + Network esNetwork = Network.newNetwork(); + Network kibanaNetwork = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE).withNetwork(esNetwork); + KibanaContainer kibana = new KibanaContainer(es).withNetwork(kibanaNetwork) + ) { + Assertions + .assertThatThrownBy(kibana::start) + .isInstanceOf(ContainerLaunchException.class) + .satisfies(ex -> { + Assertions + .assertThat(ex.getCause()) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("different networks"); + }); + } + } + + @Test + void managedModeUsesCustomNetworkAliasInExplicitNetwork() throws Exception { + final String customEsAlias = "my-custom-es-alias"; + + try ( + Network network = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE) + .withNetwork(network) + .withNetworkAliases(customEsAlias); + KibanaContainer kibana = new KibanaContainer(es).withNetwork(network) + ) { + kibana.start(); + + Assertions.assertThat(kibana.isRunning()).isTrue(); + + // Verify Kibana uses the custom alias (not auto-generated tc-* alias) + Container.ExecResult result = kibana.execInContainer("sh", "-c", "env | grep ELASTICSEARCH_HOSTS"); + + Assertions.assertThat(result.getStdout()).contains(customEsAlias).contains(":9200"); + } + } + + @Test + void managedModeCanStartAndReachElasticsearchWithoutExplicitNetwork() throws IOException { + try ( + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE); + KibanaContainer kibana = new KibanaContainer(es) + ) { + kibana.start(); + + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + + @Test + void managedModeCanStartWithoutElasticsearchSecurity() throws IOException { + try ( + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE).withEnv("xpack.security.enabled", "false"); + KibanaContainer kibana = new KibanaContainer(es) + ) { + kibana.start(); + + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + + @Test + void managedModeCanStartWithoutElasticsearchHttps() throws IOException { + try ( + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE) + .withEnv("xpack.security.enabled", "true") + .withEnv("xpack.security.http.ssl.enabled", "false"); + KibanaContainer kibana = new KibanaContainer(es) + ) { + es.start(); + kibana.start(); + + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + + @Test + void externalModeFailsWithConflictingCredentials() { + Assertions + .assertThatThrownBy(() -> { + new KibanaContainer("docker.elastic.co/kibana/kibana:8.0.0") + .withKibanaUsernameAndPassword("user", "pass") + .withElasticsearchServiceAccountToken("token"); + }) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Conflicting Elasticsearch credentials"); + } + + @Test + void managedModeFailsWhenSettingElasticsearchUrl() { + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE); + Assertions + .assertThatThrownBy(() -> { + new KibanaContainer(es).withElasticsearchUrl("http://somewhere.over.the.rainbow:9200"); + }) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Cannot set Elasticsearch URL when using Elasticsearch container"); + } + + @Test + void failsWhenNoElasticsearchConfigured() { + try (KibanaContainer kibana = new KibanaContainer("docker.elastic.co/kibana/kibana:8.0.0")) { + Assertions + .assertThatThrownBy(kibana::start) + .isInstanceOf(ContainerLaunchException.class) + .satisfies(ex -> { + Assertions + .assertThat(ex.getCause()) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Elasticsearch must be configured"); + }); + } + } + + @Test + void externalModeCanWorkWithUsernamePassword() throws IOException, InterruptedException { + final String esHostname = "elasticsearch"; + + // externalModeCanWorkWithUsernamePassword { + try ( + Network network = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE) + .withNetwork(network) + .withNetworkAliases(esHostname) + .withEnv("xpack.security.http.ssl.enabled", "false") + ) { + es.start(); + String kibanaSystemPassword = setKibanaSystemPassword(es); + + try ( + KibanaContainer kibana = new KibanaContainer("docker.elastic.co/kibana/kibana:9.2.2") //this minor version is intentionally below ES version + .withNetwork(network) + .withElasticsearchUrl("http://" + esHostname + ":9200") + .withKibanaSystemPassword(kibanaSystemPassword) + ) { + kibana.start(); + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + // } + } + + @Test + void externalModeCanWorkWithoutCredentials() throws IOException { + final String esHostname = "elasticsearch"; + + try ( + Network network = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE) + .withNetwork(network) + .withNetworkAliases(esHostname) + .withEnv("xpack.security.enabled", "false") + .withEnv("xpack.security.http.ssl.enabled", "false"); + KibanaContainer kibana = new KibanaContainer("docker.elastic.co/kibana/kibana:9.2.4") + .withNetwork(network) + .withElasticsearchUrl("http://" + esHostname + ":9200") + ) { + es.start(); + kibana.start(); + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + + @Test + void externalModeCanStartAndReachElasticsearchWithCertAndServiceToken() throws Exception { + byte[] caCrt; + byte[] nodeCrt; + byte[] nodeKey; + + String esHostname = "elasticsearch"; + + String instancesYml = + "instances:\n" + + " - name: es01\n" + + " dns: [ \"localhost\", \"" + + esHostname + + "\", \"es01\" ]\n" + + " ip: [ \"127.0.0.1\" ]\n"; + + try ( + ElasticsearchContainer setup = new ElasticsearchContainer(ES_IMAGE) + .withEnv("discovery.type", "single-node") + .withCopyToContainer( + Transferable.of(instancesYml.getBytes(StandardCharsets.UTF_8), 0644), + "/tmp/instances.yml" + ) + ) { + setup.start(); + + // Run certutil inside the running container and write outputs inside the container FS + Container.ExecResult execResult = setup.execInContainer( + "bash", + "-lc", + "set -euo pipefail && " + + "mkdir -p /tmp/out && " + + "cd /usr/share/elasticsearch && " + + "bin/elasticsearch-certutil ca --silent --pem --out /tmp/out/ca.zip && " + + "unzip -o /tmp/out/ca.zip -d /tmp/out && " + + "bin/elasticsearch-certutil cert --silent --pem --in /tmp/instances.yml --ca-cert /tmp/out/ca/ca.crt --ca-key /tmp/out/ca/ca.key --out /tmp/out/certs.zip && " + + "unzip -o /tmp/out/certs.zip -d /tmp/out" + ); + Assertions.assertThat(execResult.getExitCode()).isEqualTo(0); + + // copy the certificates and key from the container, so we can use them later + caCrt = setup.copyFileFromContainer("/tmp/out/ca/ca.crt", IOUtils::toByteArray); + nodeCrt = setup.copyFileFromContainer("/tmp/out/es01/es01.crt", IOUtils::toByteArray); + nodeKey = setup.copyFileFromContainer("/tmp/out/es01/es01.key", IOUtils::toByteArray); + } + + try ( + Network network = Network.newNetwork(); + ElasticsearchContainer es = new ElasticsearchContainer( + "docker.elastic.co/elasticsearch/elasticsearch:9.2.4" + ) + .withNetwork(network) + .withNetworkAliases(esHostname) + ) { + applyTls(es, caCrt, nodeCrt, nodeKey); + es.start(); + String kibanaServiceAccountToken = createKibanaServiceAccountToken(es); + + try ( + KibanaContainer kibana = new KibanaContainer("docker.elastic.co/kibana/kibana:9.2.4") + // network is needed only because the ES we try to access via explicit mode is operated by non-public Docker + .withNetwork(network) + .withElasticsearchUrl("https://" + esHostname + ":9200") + .withElasticsearchServiceAccountToken(kibanaServiceAccountToken) + .withElasticsearchCaCertificate(es.caCertAsBytes().get()) + ) { + kibana.start(); + String status = getKibanaStatus(kibana); + Assertions.assertThat(status).isEqualTo("available"); + } + } + } + + private static String setKibanaSystemPassword(ElasticsearchContainer elasticsearch) throws IOException { + String kibanaPassword = "kibana-system-" + System.currentTimeMillis(); + + try (CloseableHttpClient httpClient = createHttpClient(elasticsearch)) { + String url = String.format( + "%s://%s/_security/user/kibana_system/_password", + elasticsearch.getHttpScheme(), + elasticsearch.getHttpHostAddress() + ); + HttpPost request = new HttpPost(url); + request.setHeader("Content-Type", "application/json"); + request.setEntity(new StringEntity("{\"password\":\"" + kibanaPassword + "\"}")); + + HttpResponse response = httpClient.execute(request); + int statusCode = response.getStatusLine().getStatusCode(); + String body = EntityUtils.toString(response.getEntity()); + + if (statusCode != 200) { + throw new IllegalStateException( + "Failed to set kibana_system password. HTTP " + statusCode + ", body=" + body + ); + } + + // ES 9.x returns {} on success; older versions may return {"acknowledged":true} + // Just validate that the body is valid JSON. + try { + OBJECT_MAPPER.readTree(body.isEmpty() ? "{}" : body); + } catch (IOException e) { + throw new IllegalStateException("Non-JSON response body: " + body, e); + } + + return kibanaPassword; + } + } + + private static String createKibanaServiceAccountToken(ElasticsearchContainer elasticsearch) throws IOException { + String tokenName = "kibana-token-" + System.currentTimeMillis(); + + try (CloseableHttpClient httpClient = createHttpClient(elasticsearch)) { + String url = String.format( + "%s://%s/_security/service/elastic/kibana/credential/token/%s", + elasticsearch.getHttpScheme(), + elasticsearch.getHttpHostAddress(), + tokenName + ); + HttpPost request = new HttpPost(url); + request.setHeader("Content-Type", "application/json"); + + HttpResponse response = httpClient.execute(request); + int statusCode = response.getStatusLine().getStatusCode(); + String body = EntityUtils.toString(response.getEntity()); + + if (statusCode != 200) { + throw new IllegalStateException( + "Failed to create Kibana service account token. HTTP " + statusCode + ", body=" + body + ); + } + + // Expected JSON: + // {"created":true,"token":{"name":"...","value":"AAEAA..."}} + try { + JsonNode root = OBJECT_MAPPER.readTree(body); + JsonNode tokenValue = root.path("token").path("value"); + + if (tokenValue.isMissingNode() || tokenValue.isNull()) { + throw new IllegalStateException("Token value not found in response: " + body); + } + + return tokenValue.asText(); + } catch (IOException e) { + throw new IllegalStateException("Failed to parse token response: " + body, e); + } + } + } + + private static CloseableHttpClient createHttpClient(ElasticsearchContainer elasticsearch) { + String elasticPassword = elasticsearch.getEnvMap().get("ELASTIC_PASSWORD"); + HttpClientBuilder clientBuilder = HttpClientBuilder.create(); + + if (StringUtils.isNotBlank(elasticPassword)) { + CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials( + AuthScope.ANY, + new UsernamePasswordCredentials("elastic", elasticPassword) + ); + clientBuilder.setDefaultCredentialsProvider(credentialsProvider); + } + + String scheme = elasticsearch.getHttpScheme(); + if ("https".equals(scheme)) { + SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory( + elasticsearch.createSslContextFromCa() + ); + clientBuilder.setSSLSocketFactory(sslSocketFactory); + } + + return clientBuilder.build(); + } + + private static String getKibanaStatus(KibanaContainer kibana) throws IOException { + try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { + String url = "http://" + kibana.getHttpHostAddress() + "/api/status"; + HttpResponse response = httpClient.execute(new org.apache.http.client.methods.HttpGet(url)); + int statusCode = response.getStatusLine().getStatusCode(); + String body = EntityUtils.toString(response.getEntity()); + + if (statusCode != 200) { + throw new IllegalStateException("Failed to get Kibana status. HTTP " + statusCode + ", body=" + body); + } + + JsonNode json = OBJECT_MAPPER.readTree(body); + String status = json.path("status").path("overall").path("level").asText(null); + if (status == null) { + throw new IllegalStateException("Kibana status response missing 'status.overall.level' field: " + body); + } + return status; + } + } + + private static void applyTls(ElasticsearchContainer c, byte[] caCrt, byte[] nodeCrt, byte[] nodeKey) { + final String certDir = "/usr/share/elasticsearch/config/certs"; + + // Copy provided materials + c.withCopyToContainer(Transferable.of(caCrt, 0644), certDir + "/http_ca.crt"); + c.withCopyToContainer(Transferable.of(nodeCrt, 0644), certDir + "/http.crt"); + c.withCopyToContainer(Transferable.of(nodeKey, 0644), certDir + "/http.key"); + + // Disable ES bootstrap TLS autoconfiguration + c.withEnv("xpack.security.autoconfiguration.enabled", "false"); + c.withEnv("xpack.security.enabled", "true"); + + // Configure ONLY HTTP TLS using exactly the provided files + c.withEnv("xpack.security.http.ssl.enabled", "true"); + c.withEnv("xpack.security.http.ssl.certificate_authorities", "certs/http_ca.crt"); + c.withEnv("xpack.security.http.ssl.certificate", "certs/http.crt"); + c.withEnv("xpack.security.http.ssl.key", "certs/http.key"); + } +} From 905a445ad8b701e4c531aa652e42179072a88d01 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Tue, 2 Jun 2026 09:57:24 +0200 Subject: [PATCH 216/269] docs: remove bounty policy in favor of governance funding docs (#11789) The issue bounty program described in docs/bounty.md was never run in practice. Remove the bounty policy page and its navigation entry, and update the CONTRIBUTING sponsorship section to point to the current funding and governance documents in the testcontainers/.github repo, which describe how sponsorship money is raised and distributed. Co-authored-by: Claude Opus 4.8 --- CONTRIBUTING.md | 4 ++-- docs/bounty.md | 51 ------------------------------------------------- mkdocs.yml | 1 - 3 files changed, 2 insertions(+), 54 deletions(-) delete mode 100644 docs/bounty.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93a87222781..27a2ce70f7a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,6 +8,6 @@ There are additional docs describing [contributing documentation changes](./docs Testcontainers is [in the GitHub Sponsors program](https://github.com/sponsors/testcontainers)! -This repository is supported by our sponsors, meaning that issues are eligible to have a 'bounty' attached to them by sponsors. +This repository is supported by our sponsors. If you'd like to support the project, please consider sponsoring us via [GitHub Sponsors](https://github.com/sponsors/testcontainers) or [Open Collective](https://opencollective.com/testcontainers). -Please see [the bounty policy page](https://www.testcontainers.org/bounty) if you are interested, either as a sponsor or as a contributor. +To learn how funds are raised and distributed, see the [Testcontainers project funding policy](https://github.com/testcontainers/.github/blob/main/FUNDING.md). Financial matters are overseen by the Testcontainers Steering Committee, as described in the [project governance document](https://github.com/testcontainers/.github/blob/main/GOVERNANCE.md). diff --git a/docs/bounty.md b/docs/bounty.md deleted file mode 100644 index 56ee501062c..00000000000 --- a/docs/bounty.md +++ /dev/null @@ -1,51 +0,0 @@ -# Testcontainers issue bounty policy - -## General - -We want to use issue bounties to encourage contributions in areas that are important to our sponsors, or tricky to solve. -This includes bug fixes and new features. -We hope that this will provide incentives to tackle issues, and gives sponsors a way to influence where development time is expended. -We also want to reward our contributors, some of whom make huge efforts to improve Testcontainers and help their fellow developers! - -!!! note - It's early days for our use of sponsorship, so we expect to evolve this policy over time, possibly without notice. In the event of any ambiguity or dispute, the [Testcontainers org core maintainers](#organisation-core-maintainers) have the final say. - - If you'd like to suggest an improvement to this policy, we'd be grateful for your input - please raise a pull request! - -## For Sponsors - -Sponsors will be able to create a number of 'bounties' per month, varying according to sponsorship tier. - -As a sponsor, the process for creating a bounty is as follows: - -* Raise an issue, or find an existing issue that describes the bug or feature. -* Start a discussion with the [Testcontainers org core maintainers](#organisation-core-maintainers) to agree that the issue is suitable for a bounty, and how much the reward amount should be. -* Once agreed, we will assign a label to the issue so that interested developers can find it. - -Sponsors can create up to 1 or 3 bounties (according to tier) _per calendar month_ - i.e. the counter resets on the 1st of each month. -If a sponsor does not use their full quota of bounty credits in a calendar month, they cannot be rolled over to the next month. - -Bounties will expire 90 days after creation - after this time, if they have not been resolved we will close them. - -## For Contributors - -As a contributor, the process for working on an issue with a bounty attached is: - -* Find an issue with a bounty attached to it and no assignee, clarify the requirements if necessary, and consider how you would approach working on it. -* Start a discussion with the [Testcontainers org core maintainers](#organisation-core-maintainers) and the bounty owner. To avoid unpleasant surprises at review time, we'll try to confirm that we're happy with your proposed solution. -* If we're happy with your proposed solution, we will assign the ticket to you. -* Once work is complete, we will go through the PR process as usual and merge the work when finished. -* To receive the bounty reward, [raise an invoice](https://opencollective.com/testcontainers/expenses/new) on Open Collective, following the expenses policy on that page. - -Note that a 20% cut of the bounty amount will normally be assigned to project maintainers for PR review work. -We believe this reflects that PR review can often be a significant amount of work for some issues - and also gives maintainers an incentive to complete the review and unlock the bounty reward! -Some pull requests are so well done that very little review is necessary. If that happens, the maintainers may choose not to take a cut of the bounty, and instead release the full amount to the contributor. - -## Organisation core maintainers - -The organisation core maintainers are: - -* Richard North (@rnorth) -* Sergei Egorov (@bsideup) -* Kevin Wittek (@kiview) - diff --git a/mkdocs.yml b/mkdocs.yml index ad75b0b2f22..ae447212912 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -137,7 +137,6 @@ nav: - Contributing: - contributing.md - contributing_docs.md - - bounty.md edit_uri: edit/main/docs/ extra: latest_version: 2.0.5 From ca487b3af3a613ff4c875ee5ca061734e2f92442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 12:17:58 +0000 Subject: [PATCH 217/269] Bump com.orientechnologies:orientdb-client in /modules/orientdb Bumps [com.orientechnologies:orientdb-client](https://github.com/orientechnologies/orientdb) from 3.2.51 to 3.2.53. - [Release notes](https://github.com/orientechnologies/orientdb/releases) - [Changelog](https://github.com/orientechnologies/orientdb/blob/3.2.53/history.txt) - [Commits](https://github.com/orientechnologies/orientdb/compare/3.2.51...3.2.53) --- updated-dependencies: - dependency-name: com.orientechnologies:orientdb-client dependency-version: 3.2.53 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/orientdb/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/orientdb/build.gradle b/modules/orientdb/build.gradle index 39b15e5a420..6d691b407ce 100644 --- a/modules/orientdb/build.gradle +++ b/modules/orientdb/build.gradle @@ -3,8 +3,8 @@ description = "Testcontainers :: Orientdb" dependencies { api project(":testcontainers") - api "com.orientechnologies:orientdb-client:3.2.51" + api "com.orientechnologies:orientdb-client:3.2.53" testImplementation 'org.apache.tinkerpop:gremlin-driver:3.8.1' - testImplementation "com.orientechnologies:orientdb-gremlin:3.2.51" + testImplementation "com.orientechnologies:orientdb-gremlin:3.2.53" } From 14f85658f57e5825f752a0fca73a9ac2a5f421cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 12:20:59 +0000 Subject: [PATCH 218/269] Bump com.solacesystems:sol-jcsmp in /modules/solace Bumps [com.solacesystems:sol-jcsmp](https://github.com/SolaceDev/solsuite) from 10.29.1 to 10.30.1. - [Commits](https://github.com/SolaceDev/solsuite/commits) --- updated-dependencies: - dependency-name: com.solacesystems:sol-jcsmp dependency-version: 10.30.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/solace/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/solace/build.gradle b/modules/solace/build.gradle index 9172fbe878f..1a6d2ed5a65 100644 --- a/modules/solace/build.gradle +++ b/modules/solace/build.gradle @@ -5,7 +5,7 @@ dependencies { shaded 'org.awaitility:awaitility:4.3.0' - testImplementation 'com.solacesystems:sol-jcsmp:10.29.1' + testImplementation 'com.solacesystems:sol-jcsmp:10.30.1' testImplementation 'org.apache.qpid:qpid-jms-client:0.61.0' testImplementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' testImplementation 'org.apache.httpcomponents:fluent-hc:4.5.14' From 7e188cfcd17309e6e64d8e05951ee2438cd58059 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 12:23:38 +0000 Subject: [PATCH 219/269] Bump com.oracle.database.jdbc:ojdbc11 in /modules/oracle-free Bumps com.oracle.database.jdbc:ojdbc11 from 23.26.1.0.0 to 23.26.2.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc11 dependency-version: 23.26.2.0.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/oracle-free/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/oracle-free/build.gradle b/modules/oracle-free/build.gradle index bcbf7739123..935fe701f6f 100644 --- a/modules/oracle-free/build.gradle +++ b/modules/oracle-free/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'com.oracle.database.r2dbc:oracle-r2dbc:1.3.0' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.1.0.0' + testImplementation 'com.oracle.database.jdbc:ojdbc11:23.26.2.0.0' compileOnly 'org.jetbrains:annotations:26.1.0' From 8d55dd42ec358e9b3bb06ad9a70e031572decf86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 12:37:03 +0000 Subject: [PATCH 220/269] Bump dev.openfga:openfga-sdk from 0.9.7 to 0.9.9 in /modules/openfga Bumps [dev.openfga:openfga-sdk](https://github.com/openfga/java-sdk) from 0.9.7 to 0.9.9. - [Release notes](https://github.com/openfga/java-sdk/releases) - [Changelog](https://github.com/openfga/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/openfga/java-sdk/compare/v0.9.7...v0.9.9) --- updated-dependencies: - dependency-name: dev.openfga:openfga-sdk dependency-version: 0.9.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/openfga/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openfga/build.gradle b/modules/openfga/build.gradle index 983c42f2efd..b6bf9ff8e70 100644 --- a/modules/openfga/build.gradle +++ b/modules/openfga/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: OpenFGA" dependencies { api project(':testcontainers') - testImplementation 'dev.openfga:openfga-sdk:0.9.7' + testImplementation 'dev.openfga:openfga-sdk:0.9.9' } test { From fb3fed43420d854bcbd57a5348d1b11c40642d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 17 Jun 2026 02:09:46 +0200 Subject: [PATCH 221/269] Update testcontainers/sshd image from 1.3.0 to 1.4.0 (#11843) --- .../org/testcontainers/containers/PortForwardingContainer.java | 2 +- docs/features/configuration.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/PortForwardingContainer.java b/core/src/main/java/org/testcontainers/containers/PortForwardingContainer.java index a5f7c29a8b4..dd4b6e94c97 100644 --- a/core/src/main/java/org/testcontainers/containers/PortForwardingContainer.java +++ b/core/src/main/java/org/testcontainers/containers/PortForwardingContainer.java @@ -24,7 +24,7 @@ public enum PortForwardingContainer { private static ContainerDef DEFINITION = new ContainerDef() { { - setImage(DockerImageName.parse("testcontainers/sshd:1.3.0")); + setImage(DockerImageName.parse("testcontainers/sshd:1.4.0")); addExposedTcpPort(22); addEnvVar("PASSWORD", PASSWORD); } diff --git a/docs/features/configuration.md b/docs/features/configuration.md index c13c0a659e3..389936cb89f 100644 --- a/docs/features/configuration.md +++ b/docs/features/configuration.md @@ -52,7 +52,7 @@ Some companies disallow the usage of Docker Hub, but you can override `*.image` > **tinyimage.container.image = alpine:3.17** > Used to check whether images can be pulled at startup, and always required (unless [startup checks are disabled](#disabling-the-startup-checks)) -> **sshd.container.image = testcontainers/sshd:1.1.0** +> **sshd.container.image = testcontainers/sshd:1.4.0** > Required if [exposing host ports to containers](./networking.md#exposing-host-ports-to-the-container) > **vncrecorder.container.image = testcontainers/vnc-recorder:1.3.0** From deb78e1e6e47675f56e8d7b3f4747093d66f1baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Prinet?= Date: Mon, 22 Jun 2026 18:56:04 +0200 Subject: [PATCH 222/269] Migrate to OSS Community Develocity Instance (#11845) --- .github/workflows/ci-windows.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/moby-latest.yml | 2 +- README.md | 2 +- settings.gradle | 15 +++++++++------ 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index 1f4ea75b27f..dbc1e78aa32 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -43,7 +43,7 @@ permissions: contents: read env: - DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} jobs: main: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc128acb50c..a3b19e81823 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ permissions: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} jobs: core: diff --git a/.github/workflows/moby-latest.yml b/.github/workflows/moby-latest.yml index 91058a25f6a..3c4cc949f11 100644 --- a/.github/workflows/moby-latest.yml +++ b/.github/workflows/moby-latest.yml @@ -13,7 +13,7 @@ on: - cron: '59 23 * * *' env: - DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} jobs: test_docker: diff --git a/README.md b/README.md index 2cd203a0335..26f45f451e1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=33816473&machine=standardLinux32gb&devcontainer_path=.devcontainer%2Fdevcontainer.json&location=EastUs) -[![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.testcontainers.org/scans) +[![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A)](https://community.develocity.cloud/scans?search.rootProjectNames=testcontainers-java) > Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. diff --git a/settings.gradle b/settings.gradle index d59d26df2df..374dbbb00dc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,8 +5,8 @@ buildscript { } } dependencies { - classpath "com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.19.2" - classpath "com.gradle:common-custom-user-data-gradle-plugin:2.5.0" + classpath "com.gradle:develocity-gradle-plugin:4.4.1" + classpath "com.gradle:common-custom-user-data-gradle-plugin:2.6.0" classpath "org.gradle.toolchains:foojay-resolver:0.8.0" } } @@ -39,19 +39,22 @@ buildCache { enabled = !isCI } remote(develocity.buildCache) { - push = isCI && !System.getenv("READ_ONLY_REMOTE_GRADLE_CACHE") && System.getenv("DEVELOCITY_ACCESS_KEY") enabled = true + // Check access key presence to avoid build cache errors on PR builds when access key is not present + push = isCI && !System.getenv("READ_ONLY_REMOTE_GRADLE_CACHE") && System.getenv("DEVELOCITY_ACCESS_KEY") != null } } develocity { + server = "https://community.develocity.cloud" + projectId = "testcontainers" buildScan { - server = "https://ge.testcontainers.org/" publishing.onlyIf { it.authenticated } uploadInBackground = !isCI - capture.fileFingerprints = true + obfuscation { + ipAddresses { it.collect { "0.0.0.0" } } + } } - } From a7981f138841c62294300a548d29aed6797f6ec9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:06 +0000 Subject: [PATCH 223/269] Bump org.postgresql:postgresql in /modules/postgresql Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.12. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.10...REL42.7.12) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/postgresql/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/postgresql/build.gradle b/modules/postgresql/build.gradle index 14faa32c728..db7382f34d3 100644 --- a/modules/postgresql/build.gradle +++ b/modules/postgresql/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'org.postgresql:postgresql:42.7.10' + testRuntimeOnly 'org.postgresql:postgresql:42.7.12' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' From 226b760bc660774966a2d2c501078c312874f6c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:12 +0000 Subject: [PATCH 224/269] Bump software.amazon.awssdk:bom in /modules/localstack Bumps software.amazon.awssdk:bom from 2.42.33 to 2.46.20. --- updated-dependencies: - dependency-name: software.amazon.awssdk:bom dependency-version: 2.46.20 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/localstack/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/localstack/build.gradle b/modules/localstack/build.gradle index 3af7b5cee55..eca4aeaa27a 100644 --- a/modules/localstack/build.gradle +++ b/modules/localstack/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Localstack" dependencies { api project(':testcontainers') - testImplementation platform("software.amazon.awssdk:bom:2.42.33") + testImplementation platform("software.amazon.awssdk:bom:2.46.20") testImplementation 'software.amazon.awssdk:s3' testImplementation 'software.amazon.awssdk:sqs' testImplementation 'software.amazon.awssdk:cloudwatchlogs' From 922fe06a7732451767674e84995e3cc13cd32dab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:12 +0000 Subject: [PATCH 225/269] Bump org.postgresql:postgresql in /modules/junit-jupiter Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.12. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.10...REL42.7.12) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 7f4d55e9bd3..d42096ad54f 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -14,6 +14,6 @@ dependencies { exclude(module: 'hamcrest-core') } - testRuntimeOnly 'org.postgresql:postgresql:42.7.10' + testRuntimeOnly 'org.postgresql:postgresql:42.7.12' testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' } From 106842608ecabb931f37ee69d2f51bf6c9124529 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:14 +0000 Subject: [PATCH 226/269] Bump org.apache.kafka:kafka-clients in /modules/kafka Bumps org.apache.kafka:kafka-clients from 3.8.0 to 4.3.1. --- updated-dependencies: - dependency-name: org.apache.kafka:kafka-clients dependency-version: 4.3.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/kafka/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/kafka/build.gradle b/modules/kafka/build.gradle index 4e89be9a32e..aabad9553b0 100644 --- a/modules/kafka/build.gradle +++ b/modules/kafka/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Kafka" dependencies { api project(':testcontainers') - testImplementation 'org.apache.kafka:kafka-clients:3.8.0' + testImplementation 'org.apache.kafka:kafka-clients:4.3.1' testImplementation 'com.google.guava:guava:23.0' testImplementation 'org.awaitility:awaitility:4.3.0' } From 538b9d6855b56af229faa43001573f15ae22941b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:15 +0000 Subject: [PATCH 227/269] Bump org.mariadb.jdbc:mariadb-java-client in /modules/mariadb Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.5.8 to 3.5.9. - [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases) - [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md) - [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.8...3.5.9) --- updated-dependencies: - dependency-name: org.mariadb.jdbc:mariadb-java-client dependency-version: 3.5.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/mariadb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mariadb/build.gradle b/modules/mariadb/build.gradle index fd8569f6c36..10086b4e058 100644 --- a/modules/mariadb/build.gradle +++ b/modules/mariadb/build.gradle @@ -7,7 +7,7 @@ dependencies { compileOnly 'org.mariadb:r2dbc-mariadb:1.0.3' testImplementation project(':testcontainers-jdbc-test') - testImplementation 'org.mariadb.jdbc:mariadb-java-client:3.5.8' + testImplementation 'org.mariadb.jdbc:mariadb-java-client:3.5.9' testImplementation testFixtures(project(':testcontainers-r2dbc')) testRuntimeOnly 'org.mariadb:r2dbc-mariadb:1.0.3' From 647439f1330553145d1d452033ed21bceb8aca2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:21 +0000 Subject: [PATCH 228/269] Bump redis.clients:jedis from 7.4.1 to 7.5.3 in /modules/junit-jupiter Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 7.4.1 to 7.5.3. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v7.4.1...v7.5.3) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.5.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 7f4d55e9bd3..efa731c1cb8 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -8,7 +8,7 @@ dependencies { testImplementation project(':testcontainers-mysql') testImplementation project(':testcontainers-postgresql') testImplementation 'com.zaxxer:HikariCP:7.0.2' - testImplementation 'redis.clients:jedis:7.4.1' + testImplementation 'redis.clients:jedis:7.5.3' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testImplementation ('org.mockito:mockito-core:4.11.0') { exclude(module: 'hamcrest-core') From f369d44581b0f3bccef2a301b550ec03da79cb6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:23 +0000 Subject: [PATCH 229/269] Bump org.apache.tomcat:tomcat-jdbc in /modules/jdbc-test Bumps org.apache.tomcat:tomcat-jdbc from 11.0.21 to 11.0.23. --- updated-dependencies: - dependency-name: org.apache.tomcat:tomcat-jdbc dependency-version: 11.0.23 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/jdbc-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index cbf94737eed..44fe705a255 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -8,7 +8,7 @@ dependencies { api 'org.assertj:assertj-core:3.27.7' - api 'org.apache.tomcat:tomcat-jdbc:11.0.21' + api 'org.apache.tomcat:tomcat-jdbc:11.0.23' api 'org.vibur:vibur-dbcp:26.0' api 'com.mysql:mysql-connector-j:9.6.0' api 'org.junit.jupiter:junit-jupiter:5.14.3' From efa5ea2ff9f9f976f952fff43564b788ae6775fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:26 +0000 Subject: [PATCH 230/269] Bump org.elasticsearch.client:elasticsearch-rest-client Bumps [org.elasticsearch.client:elasticsearch-rest-client](https://github.com/elastic/elasticsearch) from 9.3.3 to 9.4.3. - [Release notes](https://github.com/elastic/elasticsearch/releases) - [Changelog](https://github.com/elastic/elasticsearch/blob/main/docs/changelog.yml) - [Commits](https://github.com/elastic/elasticsearch/compare/v9.3.3...v9.4.3) --- updated-dependencies: - dependency-name: org.elasticsearch.client:elasticsearch-rest-client dependency-version: 9.4.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/elasticsearch/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elasticsearch/build.gradle b/modules/elasticsearch/build.gradle index 114a07ffe85..7f57916e991 100644 --- a/modules/elasticsearch/build.gradle +++ b/modules/elasticsearch/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: elasticsearch" dependencies { api project(':testcontainers') - testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.3.3" + testImplementation "org.elasticsearch.client:elasticsearch-rest-client:9.4.3" testImplementation "org.elasticsearch.client:transport:7.17.29" } From 232db0d97a148c8eaf08e1695cda3e6c53253373 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:31 +0000 Subject: [PATCH 231/269] Bump redis.clients:jedis from 7.4.1 to 7.5.3 in /modules/toxiproxy Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 7.4.1 to 7.5.3. - [Release notes](https://github.com/redis/jedis/releases) - [Commits](https://github.com/redis/jedis/compare/v7.4.1...v7.5.3) --- updated-dependencies: - dependency-name: redis.clients:jedis dependency-version: 7.5.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/toxiproxy/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/toxiproxy/build.gradle b/modules/toxiproxy/build.gradle index 205147293fd..3e3a63a1fca 100644 --- a/modules/toxiproxy/build.gradle +++ b/modules/toxiproxy/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') api 'eu.rekawek.toxiproxy:toxiproxy-java:2.1.11' - testImplementation 'redis.clients:jedis:7.4.1' + testImplementation 'redis.clients:jedis:7.5.3' } From c3442a67d235d22ebfdf0ae8be97dc4e7c5dd16c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:33 +0000 Subject: [PATCH 232/269] Bump org.postgresql:postgresql from 42.7.10 to 42.7.12 in /modules/spock Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.12. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.10...REL42.7.12) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index acea4c64eeb..bd378b4c4c9 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation 'com.zaxxer:HikariCP:7.0.2' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' - testRuntimeOnly 'org.postgresql:postgresql:42.7.10' + testRuntimeOnly 'org.postgresql:postgresql:42.7.12' testRuntimeOnly 'com.mysql:mysql-connector-j:9.6.0' testRuntimeOnly platform('org.junit:junit-bom:5.14.3') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' From 4deee263885ae8db3278985a4fb1758540c43eab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:33 +0000 Subject: [PATCH 233/269] Bump io.r2dbc:r2dbc-mssql in /modules/mssqlserver Bumps [io.r2dbc:r2dbc-mssql](https://github.com/r2dbc/r2dbc-mssql) from 1.0.4.RELEASE to 1.0.5.RELEASE. - [Release notes](https://github.com/r2dbc/r2dbc-mssql/releases) - [Changelog](https://github.com/r2dbc/r2dbc-mssql/blob/main/CHANGELOG) - [Commits](https://github.com/r2dbc/r2dbc-mssql/compare/v1.0.4.RELEASE...v1.0.5.RELEASE) --- updated-dependencies: - dependency-name: io.r2dbc:r2dbc-mssql dependency-version: 1.0.5.RELEASE dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/mssqlserver/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mssqlserver/build.gradle b/modules/mssqlserver/build.gradle index a03534cf147..cb3e7a5b55e 100644 --- a/modules/mssqlserver/build.gradle +++ b/modules/mssqlserver/build.gradle @@ -4,13 +4,13 @@ dependencies { api project(':testcontainers-jdbc') compileOnly project(':testcontainers-r2dbc') - compileOnly 'io.r2dbc:r2dbc-mssql:1.0.4.RELEASE' + compileOnly 'io.r2dbc:r2dbc-mssql:1.0.5.RELEASE' testImplementation project(':testcontainers-jdbc-test') testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.4.0.jre11' testImplementation project(':testcontainers-r2dbc') - testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.4.RELEASE' + testRuntimeOnly 'io.r2dbc:r2dbc-mssql:1.0.5.RELEASE' // MSSQL's wait strategy requires the JDBC driver testImplementation testFixtures(project(':testcontainers-r2dbc')) From c9977230f831b7c043adf9b318ce709bda231191 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:35 +0000 Subject: [PATCH 234/269] Bump com.zaxxer:HikariCP from 7.0.2 to 7.1.0 in /modules/spock Bumps [com.zaxxer:HikariCP](https://github.com/brettwooldridge/HikariCP) from 7.0.2 to 7.1.0. - [Changelog](https://github.com/brettwooldridge/HikariCP/blob/dev/CHANGES) - [Commits](https://github.com/brettwooldridge/HikariCP/compare/HikariCP-7.0.2...HikariCP-7.1.0) --- updated-dependencies: - dependency-name: com.zaxxer:HikariCP dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/spock/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spock/build.gradle b/modules/spock/build.gradle index acea4c64eeb..91f35bca959 100644 --- a/modules/spock/build.gradle +++ b/modules/spock/build.gradle @@ -12,7 +12,7 @@ dependencies { testImplementation project(':testcontainers-mysql') testImplementation project(':testcontainers-postgresql') - testImplementation 'com.zaxxer:HikariCP:7.0.2' + testImplementation 'com.zaxxer:HikariCP:7.1.0' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testRuntimeOnly 'org.postgresql:postgresql:42.7.10' From 0150976437c66be5369dc444f5b074d50f565d2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:37 +0000 Subject: [PATCH 235/269] Bump com.squareup.okhttp3:okhttp from 5.3.2 to 5.4.0 in /modules/azure Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.3.2 to 5.4.0. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/azure/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index faabca60be9..167c0c26f1a 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') api project(':testcontainers-mssqlserver') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.3.2' + shaded 'com.squareup.okhttp3:okhttp:5.4.0' testImplementation platform("com.azure:azure-sdk-bom:1.2.32") testImplementation 'com.azure:azure-cosmos' From 42eb0ebc2065843888da59bc09e0d6aec8687e2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:22:39 +0000 Subject: [PATCH 236/269] Bump com.google.cloud:libraries-bom in /modules/gcloud Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.79.0 to 26.84.0. - [Release notes](https://github.com/googleapis/java-cloud-bom/releases) - [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.79.0...v26.84.0) --- updated-dependencies: - dependency-name: com.google.cloud:libraries-bom dependency-version: 26.84.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/gcloud/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gcloud/build.gradle b/modules/gcloud/build.gradle index 08fb09887dd..3a020bdb759 100644 --- a/modules/gcloud/build.gradle +++ b/modules/gcloud/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: GCloud" dependencies { api project(':testcontainers') - testImplementation platform("com.google.cloud:libraries-bom:26.79.0") + testImplementation platform("com.google.cloud:libraries-bom:26.84.0") testImplementation 'com.google.cloud:google-cloud-bigquery' testImplementation 'com.google.cloud:google-cloud-datastore' testImplementation 'com.google.cloud:google-cloud-firestore' From 3d41f9807d66565660a62c1ee9a3f82ca53bd99e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:44:03 +0000 Subject: [PATCH 237/269] Bump io.projectreactor:reactor-core in /modules/r2dbc Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.8.4 to 3.8.6. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.8.4...v3.8.6) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-version: 3.8.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/r2dbc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index afad9a553ef..9c93885fd6f 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE' testImplementation project(':testcontainers-postgresql') - testFixturesImplementation 'io.projectreactor:reactor-core:3.8.4' + testFixturesImplementation 'io.projectreactor:reactor-core:3.8.6' testFixturesImplementation 'org.assertj:assertj-core:3.27.7' testFixturesImplementation 'org.junit.jupiter:junit-jupiter:5.14.3' } From 039ee532d6701b7a398cff664355d1f2bb3a8f2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:45:45 +0000 Subject: [PATCH 238/269] Bump com.ibm.db2:jcc from 12.1.4.0 to 12.1.5.0 in /modules/db2 Bumps com.ibm.db2:jcc from 12.1.4.0 to 12.1.5.0. --- updated-dependencies: - dependency-name: com.ibm.db2:jcc dependency-version: 12.1.5.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/db2/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/db2/build.gradle b/modules/db2/build.gradle index 5546fdb6c65..afae0bfd751 100644 --- a/modules/db2/build.gradle +++ b/modules/db2/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'com.ibm.db2:jcc:12.1.4.0' + testRuntimeOnly 'com.ibm.db2:jcc:12.1.5.0' } From 4e64025cd8b80ac40d277f9389cb1875ec375cbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:46:09 +0000 Subject: [PATCH 239/269] Bump com.squareup.okhttp3:okhttp from 5.3.2 to 5.4.0 in /modules/solr Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.3.2 to 5.4.0. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/solr/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/solr/build.gradle b/modules/solr/build.gradle index ca44d695421..509bce7c66f 100644 --- a/modules/solr/build.gradle +++ b/modules/solr/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Solr" dependencies { api project(':testcontainers') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.3.2' + shaded 'com.squareup.okhttp3:okhttp:5.4.0' testImplementation 'org.apache.solr:solr-solrj:8.11.4' } From ac2d4f0a78cbff6b8dfde02d7e990c0dee6ae9ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:47:36 +0000 Subject: [PATCH 240/269] Bump io.fabric8:kubernetes-client from 7.6.1 to 7.8.0 in /modules/k3s Bumps [io.fabric8:kubernetes-client](https://github.com/fabric8io/kubernetes-client) from 7.6.1 to 7.8.0. - [Release notes](https://github.com/fabric8io/kubernetes-client/releases) - [Changelog](https://github.com/fabric8io/kubernetes-client/blob/main/CHANGELOG.md) - [Commits](https://github.com/fabric8io/kubernetes-client/compare/v7.6.1...v7.8.0) --- updated-dependencies: - dependency-name: io.fabric8:kubernetes-client dependency-version: 7.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/k3s/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/k3s/build.gradle b/modules/k3s/build.gradle index 645dfd8e68d..0a8d628b469 100644 --- a/modules/k3s/build.gradle +++ b/modules/k3s/build.gradle @@ -6,6 +6,6 @@ dependencies { // Synchronize with the jackson version, must match major and minor version shaded 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.4' - testImplementation 'io.fabric8:kubernetes-client:7.6.1' + testImplementation 'io.fabric8:kubernetes-client:7.8.0' testImplementation 'io.kubernetes:client-java:25.0.0-legacy' } From 911b4d43a9882fbfa5aa15296c5c954f4de145cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:47:45 +0000 Subject: [PATCH 241/269] Bump com.rabbitmq:amqp-client from 5.29.0 to 5.33.0 in /modules/rabbitmq Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.29.0 to 5.33.0. - [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases) - [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.29.0...v5.33.0) --- updated-dependencies: - dependency-name: com.rabbitmq:amqp-client dependency-version: 5.33.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/rabbitmq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rabbitmq/build.gradle b/modules/rabbitmq/build.gradle index 441ff2ddb22..1b9cd99168b 100644 --- a/modules/rabbitmq/build.gradle +++ b/modules/rabbitmq/build.gradle @@ -3,6 +3,6 @@ description = "Testcontainers :: RabbitMQ" dependencies { api project(":testcontainers") - testImplementation 'com.rabbitmq:amqp-client:5.29.0' + testImplementation 'com.rabbitmq:amqp-client:5.33.0' compileOnly 'org.jetbrains:annotations:26.1.0' } From d497ded698321a45f41bd744f403f77d4ce9fa7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:04 +0000 Subject: [PATCH 242/269] Bump org.apache.kafka:kafka-clients in /modules/redpanda Bumps org.apache.kafka:kafka-clients from 4.2.0 to 4.3.1. --- updated-dependencies: - dependency-name: org.apache.kafka:kafka-clients dependency-version: 4.3.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/redpanda/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/redpanda/build.gradle b/modules/redpanda/build.gradle index dc544fd394b..40c88ea347e 100644 --- a/modules/redpanda/build.gradle +++ b/modules/redpanda/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') shaded 'org.freemarker:freemarker:2.3.34' - testImplementation 'org.apache.kafka:kafka-clients:4.2.0' + testImplementation 'org.apache.kafka:kafka-clients:4.3.1' testImplementation 'io.rest-assured:rest-assured:5.5.7' testImplementation 'org.awaitility:awaitility:4.3.0' } From e1b5ff02f9ea7210d8ddf79f4f0a347bb57c8640 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:06 +0000 Subject: [PATCH 243/269] Bump org.javassist:javassist in /modules/hivemq Bumps [org.javassist:javassist](https://github.com/jboss-javassist/javassist) from 3.30.2-GA to 3.32.0-GA. - [Release notes](https://github.com/jboss-javassist/javassist/releases) - [Changelog](https://github.com/jboss-javassist/javassist/blob/master/Changes.md) - [Commits](https://github.com/jboss-javassist/javassist/commits) --- updated-dependencies: - dependency-name: org.javassist:javassist dependency-version: 3.32.0-GA dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 6750c495421..ec67188ba44 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -6,7 +6,7 @@ dependencies { shaded("org.apache.commons:commons-lang3:3.20.0") shaded("commons-io:commons-io:2.21.0") - shaded("org.javassist:javassist:3.30.2-GA") + shaded("org.javassist:javassist:3.32.0-GA") shaded("org.jboss.shrinkwrap:shrinkwrap-api:1.2.6") shaded("org.jboss.shrinkwrap:shrinkwrap-impl-base:1.2.6") shaded("net.lingala.zip4j:zip4j:2.11.6") From b81a28aecac928e3d01ff6e47a18cd5ec710e414 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:10 +0000 Subject: [PATCH 244/269] Bump ch.qos.logback:logback-classic in /modules/hivemq Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.32 to 1.5.37. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.32...v_1.5.37) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.5.37 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 6750c495421..52006afb0c3 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation("com.hivemq:hivemq-extension-sdk:4.50.0") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.13") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") - testImplementation("ch.qos.logback:logback-classic:1.5.32") + testImplementation("ch.qos.logback:logback-classic:1.5.37") } test { From bd1ec01824dd1914af664b17b1c8e53464efed06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:17 +0000 Subject: [PATCH 245/269] Bump com.hivemq:hivemq-mqtt-client in /modules/hivemq Bumps [com.hivemq:hivemq-mqtt-client](https://github.com/hivemq/hivemq-mqtt-client) from 1.3.13 to 1.3.15. - [Release notes](https://github.com/hivemq/hivemq-mqtt-client/releases) - [Changelog](https://github.com/hivemq/hivemq-mqtt-client/blob/master/RELEASE.md) - [Commits](https://github.com/hivemq/hivemq-mqtt-client/compare/v1.3.13...v1.3.15) --- updated-dependencies: - dependency-name: com.hivemq:hivemq-mqtt-client dependency-version: 1.3.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/hivemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 6750c495421..f8e820f14d9 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -13,7 +13,7 @@ dependencies { testImplementation(project(":testcontainers-junit-jupiter")) testImplementation("com.hivemq:hivemq-extension-sdk:4.50.0") - testImplementation("com.hivemq:hivemq-mqtt-client:1.3.13") + testImplementation("com.hivemq:hivemq-mqtt-client:1.3.15") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") testImplementation("ch.qos.logback:logback-classic:1.5.32") } From 473942d350079dcf6b76cf308c37d78524659cc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:46 +0000 Subject: [PATCH 246/269] Bump org.postgresql:postgresql in /modules/questdb Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.12. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.10...REL42.7.12) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/questdb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/questdb/build.gradle b/modules/questdb/build.gradle index 5e9da5686d8..04b714ff783 100644 --- a/modules/questdb/build.gradle +++ b/modules/questdb/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') api project(':testcontainers-jdbc') - testRuntimeOnly 'org.postgresql:postgresql:42.7.10' + testRuntimeOnly 'org.postgresql:postgresql:42.7.12' testImplementation project(':testcontainers-jdbc-test') testImplementation 'org.questdb:questdb:9.2.2' From ca2574ed8ea58fd8a92195965856ba30595e22cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:48:58 +0000 Subject: [PATCH 247/269] Bump org.postgresql:postgresql in /modules/cratedb Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.12. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.10...REL42.7.12) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/cratedb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cratedb/build.gradle b/modules/cratedb/build.gradle index 7b6a3468e03..62405d559b2 100644 --- a/modules/cratedb/build.gradle +++ b/modules/cratedb/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: JDBC :: CrateDB" dependencies { api project(':testcontainers-jdbc') - testRuntimeOnly 'org.postgresql:postgresql:42.7.10' + testRuntimeOnly 'org.postgresql:postgresql:42.7.12' testImplementation project(':testcontainers-jdbc-test') From 8af83431709d5eb76551c5735d94d58be1eaa391 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:49:21 +0000 Subject: [PATCH 248/269] Bump io.minio:minio from 9.0.0 to 9.0.3 in /modules/minio Bumps [io.minio:minio](https://github.com/minio/minio-java) from 9.0.0 to 9.0.3. - [Release notes](https://github.com/minio/minio-java/releases) - [Commits](https://github.com/minio/minio-java/compare/9.0.0...9.0.3) --- updated-dependencies: - dependency-name: io.minio:minio dependency-version: 9.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/minio/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/minio/build.gradle b/modules/minio/build.gradle index bca68abc4d6..ce592fced2d 100644 --- a/modules/minio/build.gradle +++ b/modules/minio/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: MinIO" dependencies { api project(':testcontainers') - testImplementation("io.minio:minio:9.0.0") + testImplementation("io.minio:minio:9.0.3") } From 22a6778a1ea12e03ef2037e6d35cc23a599c4619 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:50:38 +0000 Subject: [PATCH 249/269] Bump org.apache.activemq:artemis-jakarta-client in /modules/activemq Bumps org.apache.activemq:artemis-jakarta-client from 2.53.0 to 2.55.0. --- updated-dependencies: - dependency-name: org.apache.activemq:artemis-jakarta-client dependency-version: 2.55.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/activemq/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/activemq/build.gradle b/modules/activemq/build.gradle index d88c0053379..c77b386698f 100644 --- a/modules/activemq/build.gradle +++ b/modules/activemq/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':testcontainers') testImplementation "org.apache.activemq:activemq-client:6.2.4" - testImplementation "org.apache.activemq:artemis-jakarta-client:2.53.0" + testImplementation "org.apache.activemq:artemis-jakarta-client:2.55.0" } From 5022d0095fbd977c374ec7cd546ce6caaaedf38f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:51:46 +0000 Subject: [PATCH 250/269] Bump io.weaviate:client6 from 6.1.0 to 6.3.0 in /modules/weaviate Bumps [io.weaviate:client6](https://github.com/weaviate/java-client) from 6.1.0 to 6.3.0. - [Release notes](https://github.com/weaviate/java-client/releases) - [Commits](https://github.com/weaviate/java-client/compare/6.1.0...6.3.0) --- updated-dependencies: - dependency-name: io.weaviate:client6 dependency-version: 6.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/weaviate/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/weaviate/build.gradle b/modules/weaviate/build.gradle index 5392b585b71..404329b161f 100644 --- a/modules/weaviate/build.gradle +++ b/modules/weaviate/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Weaviate" dependencies { api project(':testcontainers') - testImplementation 'io.weaviate:client6:6.1.0' + testImplementation 'io.weaviate:client6:6.3.0' } test { From 325a51286706eea0aef9c527516d6db020fabe97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:53:49 +0000 Subject: [PATCH 251/269] Bump io.micrometer:micrometer-registry-otlp in /modules/grafana Bumps [io.micrometer:micrometer-registry-otlp](https://github.com/micrometer-metrics/micrometer) from 1.16.5 to 1.17.0. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.16.5...v1.17.0) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-registry-otlp dependency-version: 1.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index c6ee3eaa010..2a00b28ee33 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -4,7 +4,7 @@ dependencies { api project(':testcontainers') testImplementation 'io.rest-assured:rest-assured:5.5.7' - testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.5' + testImplementation 'io.micrometer:micrometer-registry-otlp:1.17.0' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' testImplementation platform('io.opentelemetry:opentelemetry-bom:1.61.0') From f629137a9cc22fd6a9b6fd3c54f9b8491223d9eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:59:46 +0000 Subject: [PATCH 252/269] Bump software.amazon.awssdk:dynamodb in /modules/scylladb Bumps software.amazon.awssdk:dynamodb from 2.42.34 to 2.46.20. --- updated-dependencies: - dependency-name: software.amazon.awssdk:dynamodb dependency-version: 2.46.20 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/scylladb/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scylladb/build.gradle b/modules/scylladb/build.gradle index c3fe0927d6a..480d1958609 100644 --- a/modules/scylladb/build.gradle +++ b/modules/scylladb/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(":testcontainers") testImplementation 'com.scylladb:java-driver-core:4.19.0.8' - testImplementation 'software.amazon.awssdk:dynamodb:2.42.34' + testImplementation 'software.amazon.awssdk:dynamodb:2.46.20' } From 2ab2c1619ecfea9c26e47144f5712dfee8f4e69d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 23:00:21 +0000 Subject: [PATCH 253/269] Bump com.unboundid:unboundid-ldapsdk in /modules/ldap Bumps [com.unboundid:unboundid-ldapsdk](https://github.com/pingidentity/ldapsdk) from 7.0.4 to 7.0.5. - [Release notes](https://github.com/pingidentity/ldapsdk/releases) - [Changelog](https://github.com/pingidentity/ldapsdk/blob/master/docs/release-notes.html) - [Commits](https://github.com/pingidentity/ldapsdk/compare/7.0.4...7.0.5) --- updated-dependencies: - dependency-name: com.unboundid:unboundid-ldapsdk dependency-version: 7.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- modules/ldap/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ldap/build.gradle b/modules/ldap/build.gradle index d357bb9996c..7e79be920c8 100644 --- a/modules/ldap/build.gradle +++ b/modules/ldap/build.gradle @@ -3,5 +3,5 @@ description = "Testcontainers :: LDAP" dependencies { api project(':testcontainers') - testImplementation 'com.unboundid:unboundid-ldapsdk:7.0.4' + testImplementation 'com.unboundid:unboundid-ldapsdk:7.0.5' } From 8ef856798a44854628d6e54e41205ea96d87cf8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 22:22:21 +0000 Subject: [PATCH 254/269] bump com.google.cloud.tools:jib-core from 0.28.1 to 0.28.2 in /core Bumps [com.google.cloud.tools:jib-core](https://github.com/GoogleContainerTools/jib) from 0.28.1 to 0.28.2. - [Release notes](https://github.com/GoogleContainerTools/jib/releases) - [Commits](https://github.com/GoogleContainerTools/jib/commits) --- updated-dependencies: - dependency-name: com.google.cloud.tools:jib-core dependency-version: 0.28.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- core/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 66f9fe7dcc0..d7e496f8d4a 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -70,7 +70,7 @@ dependencies { exclude(group: 'org.jetbrains', module: 'annotations') } - provided('com.google.cloud.tools:jib-core:0.28.1') { + provided('com.google.cloud.tools:jib-core:0.28.2') { exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.fasterxml.jackson.datatype', module: 'jackson-datatype-jsr310' exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core' @@ -101,7 +101,7 @@ dependencies { testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.14.3' testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' - testImplementation('com.google.cloud.tools:jib-core:0.28.1') { + testImplementation('com.google.cloud.tools:jib-core:0.28.2') { exclude group: 'com.google.guava', module: 'guava' } testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' From e1956662651183c11245526ec5065355be08d6d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 22:22:26 +0000 Subject: [PATCH 255/269] bump org.zeroturnaround:zt-exec from 1.12 to 1.13.0 in /core Bumps [org.zeroturnaround:zt-exec](https://github.com/zeroturnaround/zt-exec) from 1.12 to 1.13.0. - [Release notes](https://github.com/zeroturnaround/zt-exec/releases) - [Changelog](https://github.com/zeroturnaround/zt-exec/blob/main/CHANGELOG.md) - [Commits](https://github.com/zeroturnaround/zt-exec/compare/zt-exec-1.12...v1.13.0) --- updated-dependencies: - dependency-name: org.zeroturnaround:zt-exec dependency-version: 1.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 66f9fe7dcc0..00d227869ff 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -96,7 +96,7 @@ dependencies { shaded 'org.glassfish.main.external:trilead-ssh2-repackaged:4.1.2' - shaded 'org.zeroturnaround:zt-exec:1.12' + shaded 'org.zeroturnaround:zt-exec:1.13.0' testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.14.3' From 2ac3c9773ca52381266463c3709c37155e190b68 Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Fri, 17 Jul 2026 08:49:53 +0200 Subject: [PATCH 256/269] Call `getLogs` only once and re-use existing variable (#11927) --- .../java/org/testcontainers/containers/GenericContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index fa5711807e7..4d3778c63d1 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -541,7 +541,7 @@ private void tryStart() { final String containerLogs = getLogs(); if (containerLogs.length() > 0) { - logger().error("Log output from the failed container:\n{}", getLogs()); + logger().error("Log output from the failed container:\n{}", containerLogs); } else { logger().error("There are no stdout/stderr logs available for the failed container"); } From 944454cd054e6ed004395e0b07f294ff8dbb9ca9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Jul 2026 22:24:01 +0000 Subject: [PATCH 257/269] Bump release-drafter/release-drafter in /.github/workflows Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 6.1.0 to 7.6.0. - [Release notes](https://github.com/release-drafter/release-drafter/releases) - [Commits](https://github.com/release-drafter/release-drafter/compare/b1476f6e6eb133afa41ed8589daba6dc69b4d3f5...eada3c96a64734dd381cfbda23511034e328ddb0) --- updated-dependencies: - dependency-name: release-drafter/release-drafter dependency-version: 7.6.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release-drafter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index d57159f44ca..727bcc94c01 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -18,6 +18,6 @@ jobs: if: github.repository == 'testcontainers/testcontainers-java' runs-on: ubuntu-latest steps: - - uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v5.19.0 + - uses: release-drafter/release-drafter@eada3c96a64734dd381cfbda23511034e328ddb0 # v5.19.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 3a621f5cc964668fe0bdfda3fff33d23b23c25c6 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Sat, 15 Aug 2026 21:31:12 +0300 Subject: [PATCH 258/269] Remove duplicated word in HttpWaitStrategyTest Javadoc (#11971) --- .../junit/wait/strategy/HttpWaitStrategyTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java index 89a12ec3aea..eb9169fd1ac 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java @@ -109,7 +109,7 @@ void testWaitUntilReadyWithManyStatusCodes() { /** * Expects that the WaitStrategy returns successfully after receiving an HTTP 401 response from the container. - * This 401 response is checked with with many status codes using {@link HttpWaitStrategy#forStatusCode(int)} + * This 401 response is checked with many status codes using {@link HttpWaitStrategy#forStatusCode(int)} * and a lambda using {@link HttpWaitStrategy#forStatusCodeMatching(Predicate)} */ @Test From ed2c487edeb94a042d86f0d54f86324a0f78eda3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kalayc=C4=B1?= Date: Sun, 23 Aug 2026 15:26:45 +0300 Subject: [PATCH 259/269] Allow extra Azurite command line options (#11970) AzuriteContainer.configure() rebuilds the process command, so withCommand() cannot add flags. Expose withCommandOptions() like K6Container.withCmdOptions() so users can pass --skipApiVersionCheck and other Azurite flags. Fixes #11966 Signed-off-by: Burak KALAYCI --- docs/modules/azure.md | 6 ++ .../azure/AzuriteContainer.java | 23 +++++++ .../azure/AzuriteContainerCommandTest.java | 62 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerCommandTest.java diff --git a/docs/modules/azure.md b/docs/modules/azure.md index 1b3242551c1..461fcc9f679 100644 --- a/docs/modules/azure.md +++ b/docs/modules/azure.md @@ -27,6 +27,12 @@ Start Azurite Emulator during a test: !!! note SSL configuration is possible using the `withSsl(MountableFile, String)` and `withSsl(MountableFile, MountableFile)` methods. +Newer Azure Storage SDK versions can send API versions that Azurite does not support. Use `withCommandOptions(...)` to append extra Azurite flags such as `--skipApiVersionCheck`. `AzuriteContainer` rebuilds its process command in `configure()`, so `.withCommand(...)` cannot be used for extra flags. + + +[Pass extra Azurite command options](../../modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerCommandTest.java) inside_block:commandOptions + + If the tested application needs to use more than one set of credentials, the container can be configured to use custom credentials. Please see some examples below. diff --git a/modules/azure/src/main/java/org/testcontainers/azure/AzuriteContainer.java b/modules/azure/src/main/java/org/testcontainers/azure/AzuriteContainer.java index 56c58df1f1d..11e34237740 100644 --- a/modules/azure/src/main/java/org/testcontainers/azure/AzuriteContainer.java +++ b/modules/azure/src/main/java/org/testcontainers/azure/AzuriteContainer.java @@ -4,6 +4,10 @@ import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Testcontainers implementation for Azurite Emulator. *

    @@ -52,6 +56,8 @@ public class AzuriteContainer extends GenericContainer { private String pwd = null; + private final List commandOptions = new ArrayList<>(); + /** * @param dockerImageName specified docker image name to run */ @@ -96,6 +102,20 @@ public AzuriteContainer withSsl(final MountableFile pemCert, final MountableFile return this; } + /** + * Append extra Azurite command line flags after the default host and SSL arguments. + *

    + * {@link #withCommand(String...)} cannot be used for this: {@link #configure()} always + * rebuilds the process command and overwrites any previously set command. + * + * @param options additional Azurite flags, for example {@code --skipApiVersionCheck} + * @return this + */ + public AzuriteContainer withCommandOptions(String... options) { + this.commandOptions.addAll(Arrays.asList(options)); + return this; + } + @Override protected void configure() { withCommand(getCommandLine()); @@ -160,6 +180,9 @@ String getCommandLine() { args.append(" --key ").append("/key.pem"); } } + for (String option : this.commandOptions) { + args.append(" ").append(option); + } final String cmd = args.toString(); logger().debug("Using command line: '{}'", cmd); return cmd; diff --git a/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerCommandTest.java b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerCommandTest.java new file mode 100644 index 00000000000..c12e77ed69a --- /dev/null +++ b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerCommandTest.java @@ -0,0 +1,62 @@ +package org.testcontainers.azure; + +import org.junit.jupiter.api.Test; +import org.testcontainers.utility.MountableFile; + +import static org.assertj.core.api.Assertions.assertThat; + +class AzuriteContainerCommandTest { + + private static final String IMAGE = "mcr.microsoft.com/azure-storage/azurite:3.33.0"; + + @Test + void commandLineOmitsExtraOptionsByDefault() { + AzuriteContainer emulator = new AzuriteContainer(IMAGE); + + assertThat(emulator.getCommandLine()).doesNotContain("--skipApiVersionCheck"); + } + + @Test + void commandLineIncludesExtraOptions() { + // commandOptions { + AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") + .withCommandOptions("--skipApiVersionCheck"); + // } + + assertThat(emulator.getCommandLine()) + .startsWith("azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0") + .endsWith("--skipApiVersionCheck"); + } + + @Test + void commandLineAppendsMultipleOptions() { + AzuriteContainer emulator = new AzuriteContainer(IMAGE) + .withCommandOptions("--skipApiVersionCheck", "--disableProductStyleUrl"); + + assertThat(emulator.getCommandLine()).endsWith("--skipApiVersionCheck --disableProductStyleUrl"); + } + + @Test + void commandLineKeepsExtraOptionsTogetherWithSsl() { + AzuriteContainer emulator = new AzuriteContainer(IMAGE) + .withSsl(MountableFile.forClasspathResource("/keystore.pfx"), "changeit") + .withCommandOptions("--skipApiVersionCheck"); + + assertThat(emulator.getCommandLine()) + .contains("--cert /cert.pfx") + .endsWith("--pwd changeit --skipApiVersionCheck"); + } + + @Test + void configureAppliesCommandOptionsEvenIfWithCommandWasUsed() { + AzuriteContainer emulator = new AzuriteContainer(IMAGE) + .withCommand("azurite --ignored") + .withCommandOptions("--skipApiVersionCheck"); + + emulator.configure(); + + assertThat(String.join(" ", emulator.getCommandParts())) + .isEqualTo("azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --skipApiVersionCheck"); + assertThat(emulator.getCommandLine()).contains("--blobHost 0.0.0.0").contains("--skipApiVersionCheck"); + } +} From c49980f5a6719b263e25eb7f4f75733a0975f2d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:12:31 +0000 Subject: [PATCH 260/269] Bump actions/labeler from 6 to 7 in /.github/workflows Bumps [actions/labeler](https://github.com/actions/labeler) from 6 to 7. - [Release notes](https://github.com/actions/labeler/releases) - [Commits](https://github.com/actions/labeler/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/labeler dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 178ba299670..336f0c7e650 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -9,6 +9,6 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v6 + - uses: actions/labeler@v7 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" From 4cd29d7db5853b9bc3364288a92745062b2532c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:12:36 +0000 Subject: [PATCH 261/269] Bump com.rabbitmq:amqp-client from 5.26.0 to 5.35.0 in /core Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.26.0 to 5.35.0. - [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases) - [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.26.0...v5.35.0) --- updated-dependencies: - dependency-name: com.rabbitmq:amqp-client dependency-version: 5.34.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 66f9fe7dcc0..201b579e278 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -106,7 +106,7 @@ dependencies { } testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' testImplementation 'redis.clients:jedis:7.4.1' - testImplementation 'com.rabbitmq:amqp-client:5.26.0' + testImplementation 'com.rabbitmq:amqp-client:5.35.0' testImplementation 'org.mongodb:mongo-java-driver:3.12.14' testImplementation ('org.mockito:mockito-core:4.11.0') { From 0f6fa9fd3a92253de03b37deff9d858b7611cb32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:12:39 +0000 Subject: [PATCH 262/269] Bump io.trino:trino-jdbc from 480 to 483 in /modules/trino Bumps io.trino:trino-jdbc from 480 to 483. --- updated-dependencies: - dependency-name: io.trino:trino-jdbc dependency-version: '482' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- modules/trino/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trino/build.gradle b/modules/trino/build.gradle index e6a9b32e85b..12d3d05f56b 100644 --- a/modules/trino/build.gradle +++ b/modules/trino/build.gradle @@ -4,6 +4,6 @@ dependencies { api project(':testcontainers-jdbc') testImplementation project(':testcontainers-jdbc-test') - testRuntimeOnly 'io.trino:trino-jdbc:480' + testRuntimeOnly 'io.trino:trino-jdbc:483' compileOnly 'org.jetbrains:annotations:26.1.0' } From 6c8350b9c34853b4dbaaa727258a29185702f4bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:12:41 +0000 Subject: [PATCH 263/269] Bump com.squareup.okhttp3:okhttp in /modules/couchbase Bumps [com.squareup.okhttp3:okhttp](https://github.com/lysine-dev/okhttp) from 5.3.2 to 5.5.0. - [Changelog](https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md) - [Commits](https://github.com/lysine-dev/okhttp/compare/parent-5.3.2...parent-5.5.0) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/couchbase/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/couchbase/build.gradle b/modules/couchbase/build.gradle index 707a559290a..068e334e2f1 100644 --- a/modules/couchbase/build.gradle +++ b/modules/couchbase/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Couchbase" dependencies { api project(':testcontainers') // TODO use JDK's HTTP client and/or Apache HttpClient5 - shaded 'com.squareup.okhttp3:okhttp:5.3.2' + shaded 'com.squareup.okhttp3:okhttp:5.5.0' testImplementation 'com.couchbase.client:java-client:3.11.2' testImplementation 'org.awaitility:awaitility:4.3.0' From fd1ddc6f54bb36947756458c1e3d46a56fb47bc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:12:45 +0000 Subject: [PATCH 264/269] Bump io.opentelemetry:opentelemetry-bom in /modules/grafana Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.61.0 to 1.65.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.61.0...v1.65.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-version: 1.63.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- modules/grafana/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/grafana/build.gradle b/modules/grafana/build.gradle index c6ee3eaa010..ea3cad72193 100644 --- a/modules/grafana/build.gradle +++ b/modules/grafana/build.gradle @@ -7,7 +7,7 @@ dependencies { testImplementation 'io.micrometer:micrometer-registry-otlp:1.16.5' testImplementation 'uk.org.webcompere:system-stubs-jupiter:2.1.8' - testImplementation platform('io.opentelemetry:opentelemetry-bom:1.61.0') + testImplementation platform('io.opentelemetry:opentelemetry-bom:1.65.0') testImplementation 'io.opentelemetry:opentelemetry-api' testImplementation 'io.opentelemetry:opentelemetry-sdk' testImplementation 'io.opentelemetry:opentelemetry-exporter-otlp' From 2f4475a2ca5282de343bfeb30abaf3b6c05058b8 Mon Sep 17 00:00:00 2001 From: Konstantinos Gkilas Date: Wed, 26 Aug 2026 12:58:51 +0300 Subject: [PATCH 265/269] Fix DockerImageName compatibility check when digest is present (#11629) Parse tagged digest references without folding the tag into the repository name. Preserve the tag for version checks and canonical names while exposing the digest separately and using it for image pulls. Validate stored tags and include them in equality. Reject malformed tags and keep differently tagged references distinct. Fixes #10527 Co-authored-by: Kevin Wittek --- .../images/RemoteDockerImage.java | 3 +- .../utility/DockerImageName.java | 37 +++++++++- .../testcontainers/utility/Versioning.java | 14 ++++ .../DockerImageNameCompatibilityTest.java | 29 ++++++++ .../utility/DockerImageNameTest.java | 71 +++++++++++++++++++ 5 files changed, 150 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/testcontainers/images/RemoteDockerImage.java b/core/src/main/java/org/testcontainers/images/RemoteDockerImage.java index 9d669e46b07..fdd7279f86b 100644 --- a/core/src/main/java/org/testcontainers/images/RemoteDockerImage.java +++ b/core/src/main/java/org/testcontainers/images/RemoteDockerImage.java @@ -89,9 +89,10 @@ protected final String resolve() { final Instant startedAt = Instant.now(); final Instant lastRetryAllowed = Instant.now().plus(PULL_RETRY_TIME_LIMIT); final AtomicReference lastFailure = new AtomicReference<>(); + String pullTag = imageName.getDigest() != null ? imageName.getDigest() : imageName.getVersionPart(); final PullImageCmd pullImageCmd = dockerClient .pullImageCmd(imageName.getUnversionedPart()) - .withTag(imageName.getVersionPart()); + .withTag(pullTag); final AtomicReference dockerImageName = new AtomicReference<>(); // The following poll interval in ms: 50, 100, 200, 400, 800.... diff --git a/core/src/main/java/org/testcontainers/utility/DockerImageName.java b/core/src/main/java/org/testcontainers/utility/DockerImageName.java index e3a35855bf8..b3babc29c91 100644 --- a/core/src/main/java/org/testcontainers/utility/DockerImageName.java +++ b/core/src/main/java/org/testcontainers/utility/DockerImageName.java @@ -87,8 +87,15 @@ public DockerImageName(String fullImageName) { } if (remoteName.contains("@sha256:")) { - repository = remoteName.split("@sha256:")[0]; - versioning = new Sha256Versioning(remoteName.split("@sha256:")[1]); + String beforeDigest = remoteName.split("@sha256:")[0]; + if (beforeDigest.contains(":")) { + repository = beforeDigest.split(":")[0]; + String tag = beforeDigest.split(":", 2)[1]; + versioning = new Sha256Versioning(remoteName.split("@sha256:")[1], tag); + } else { + repository = beforeDigest; + versioning = new Sha256Versioning(remoteName.split("@sha256:")[1]); + } } else if (remoteName.contains(":")) { repository = remoteName.split(":")[0]; versioning = new TagVersioning(remoteName.split(":")[1]); @@ -155,16 +162,40 @@ public String getUnversionedPart() { } /** - * @return the versioned part of this name (tag or sha256) + * @return the versioned part of this name (tag or sha256). When both tag and digest are present, + * the tag is returned. */ public String getVersionPart() { + if (versioning instanceof Sha256Versioning) { + String tag = ((Sha256Versioning) versioning).getTag(); + if (tag != null) { + return tag; + } + } return versioning.toString(); } + /** + * @return the sha256 digest if present, or null + */ + @Nullable + public String getDigest() { + if (versioning instanceof Sha256Versioning) { + return versioning.toString(); + } + return null; + } + /** * @return canonical name for the image */ public String asCanonicalNameString() { + if (versioning instanceof Sha256Versioning) { + String tag = ((Sha256Versioning) versioning).getTag(); + if (tag != null) { + return getUnversionedPart() + ":" + tag + "@" + versioning; + } + } return getUnversionedPart() + versioning.getSeparator() + getVersionPart(); } diff --git a/core/src/main/java/org/testcontainers/utility/Versioning.java b/core/src/main/java/org/testcontainers/utility/Versioning.java index 372a105518f..707c2b91820 100644 --- a/core/src/main/java/org/testcontainers/utility/Versioning.java +++ b/core/src/main/java/org/testcontainers/utility/Versioning.java @@ -79,12 +79,26 @@ class Sha256Versioning implements Versioning { private final String hash; + private final String tag; + Sha256Versioning(String hash) { + this(hash, null); + } + + Sha256Versioning(String hash, String tag) { this.hash = hash; + this.tag = tag; + } + + String getTag() { + return tag; } @Override public boolean isValid() { + if (tag != null && !tag.matches(TagVersioning.TAG_REGEX)) { + return false; + } return hash.matches(HASH_REGEX); } diff --git a/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java b/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java index dc7bf9ba1ab..ce0759fec47 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java @@ -85,6 +85,35 @@ void testImageWithClaimedCompatibilityForVersion() { .isFalse(); } + @Test + void testDigestOnlyImageIsCompatible() { + DockerImageName subject = DockerImageName.parse("postgres@sha256:1234abcd1234abcd1234abcd1234abcd"); + + assertThat(subject.isCompatibleWith(DockerImageName.parse("postgres"))) + .as("postgres@sha256:... ~= postgres") + .isTrue(); + } + + @Test + void testTagAndDigestImageIsCompatible() { + DockerImageName subject = DockerImageName.parse("postgres:16.8@sha256:1234abcd1234abcd1234abcd1234abcd"); + + assertThat(subject.isCompatibleWith(DockerImageName.parse("postgres"))) + .as("postgres:16.8@sha256:... ~= postgres") + .isTrue(); + } + + @Test + void testTagAndDigestImageWithRegistryIsCompatible() { + DockerImageName subject = DockerImageName.parse( + "registry.foo.com/repo:tag@sha256:1234abcd1234abcd1234abcd1234abcd" + ); + + assertThat(subject.isCompatibleWith(DockerImageName.parse("registry.foo.com/repo"))) + .as("registry.foo.com/repo:tag@sha256:... ~= registry.foo.com/repo") + .isTrue(); + } + @Test void testAssertMethodAcceptsCompatible() { DockerImageName subject = DockerImageName.parse("foo").asCompatibleSubstituteFor("bar"); diff --git a/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java b/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java index 7d6f8cd2633..5b42322d678 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java @@ -1,6 +1,7 @@ package org.testcontainers.utility; import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -24,6 +25,8 @@ public static String[] getNames() { "registry.foo.com:1234/repo_here/my-name:1.0", "registry.foo.com:1234/repo-here/my-name@sha256:1234abcd1234abcd1234abcd1234abcd", "registry.foo.com:1234/my-name@sha256:1234abcd1234abcd1234abcd1234abcd", + "myname:latest@sha256:1234abcd1234abcd1234abcd1234abcd", + "registry.foo.com:1234/repo-here/my-name:1.0@sha256:1234abcd1234abcd1234abcd1234abcd", "1.2.3.4/my-name:1.0", "1.2.3.4:1234/my-name:1.0", "1.2.3.4/repo-here/my-name:1.0", @@ -147,4 +150,72 @@ void testParsing( } } } + + @Nested + class TagAndDigestParsing { + + @Test + void testTagAndDigestStripsTagFromRepository() { + DockerImageName imageName = DockerImageName.parse("myname:latest@sha256:1234abcd1234abcd1234abcd1234abcd"); + + assertThat(imageName.getRegistry()).isEqualTo(""); + assertThat(imageName.getUnversionedPart()).isEqualTo("myname"); + assertThat(imageName.getVersionPart()).isEqualTo("latest"); + assertThat(imageName.getDigest()).isEqualTo("sha256:1234abcd1234abcd1234abcd1234abcd"); + assertThat(imageName.asCanonicalNameString()) + .isEqualTo("myname:latest@sha256:1234abcd1234abcd1234abcd1234abcd"); + } + + @Test + void testTagAndDigestWithRepoPath() { + DockerImageName imageName = DockerImageName.parse( + "repo/myname:1.0@sha256:1234abcd1234abcd1234abcd1234abcd" + ); + + assertThat(imageName.getRegistry()).isEqualTo(""); + assertThat(imageName.getUnversionedPart()).isEqualTo("repo/myname"); + assertThat(imageName.getVersionPart()).isEqualTo("1.0"); + assertThat(imageName.getDigest()).isEqualTo("sha256:1234abcd1234abcd1234abcd1234abcd"); + assertThat(imageName.asCanonicalNameString()) + .isEqualTo("repo/myname:1.0@sha256:1234abcd1234abcd1234abcd1234abcd"); + } + + @Test + void testTagAndDigestWithRegistry() { + DockerImageName imageName = DockerImageName.parse( + "registry.foo.com:1234/repo-here/my-name:1.0@sha256:1234abcd1234abcd1234abcd1234abcd" + ); + + assertThat(imageName.getRegistry()).isEqualTo("registry.foo.com:1234"); + assertThat(imageName.getUnversionedPart()).isEqualTo("registry.foo.com:1234/repo-here/my-name"); + assertThat(imageName.getVersionPart()).isEqualTo("1.0"); + assertThat(imageName.getDigest()).isEqualTo("sha256:1234abcd1234abcd1234abcd1234abcd"); + assertThat(imageName.asCanonicalNameString()) + .isEqualTo("registry.foo.com:1234/repo-here/my-name:1.0@sha256:1234abcd1234abcd1234abcd1234abcd"); + } + + @Test + void testMalformedTagWithExtraColonIsRejected() { + assertThatThrownBy(() -> { + DockerImageName.parse("repo/image:tag:extra@sha256:1234abcd1234abcd1234abcd1234abcd").assertValid(); + }) + .isInstanceOf(IllegalArgumentException.class); + } + + @Test + void testDifferentTagsSameDigestAreNotEqual() { + DockerImageName a = DockerImageName.parse("repo/image:1.0@sha256:1234abcd1234abcd1234abcd1234abcd"); + DockerImageName b = DockerImageName.parse("repo/image:latest@sha256:1234abcd1234abcd1234abcd1234abcd"); + + assertThat(a).isNotEqualTo(b); + } + + @Test + void testDigestOnlyHasNoTag() { + DockerImageName imageName = DockerImageName.parse("myname@sha256:1234abcd1234abcd1234abcd1234abcd"); + + assertThat(imageName.getVersionPart()).isEqualTo("sha256:1234abcd1234abcd1234abcd1234abcd"); + assertThat(imageName.getDigest()).isEqualTo("sha256:1234abcd1234abcd1234abcd1234abcd"); + } + } } From d984b8baba0a86dc1cca504d4f4a2e35043dac96 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Wed, 26 Aug 2026 16:42:29 +0200 Subject: [PATCH 266/269] Add CodeRabbit badge (#11985) Add badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 26f45f451e1..2482154c7be 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ ![Maven Central Version](https://img.shields.io/maven-central/v/org.testcontainers/testcontainers) +[![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/testcontainers/testcontainers-java?utm_source=oss&utm_medium=github&utm_campaign=testcontainers%2Ftestcontainers-java&labelColor=171717&color=FF570A&label=CodeRabbit+Reviews)](https://coderabbit.ai) + [![Netlify Status](https://api.netlify.com/api/v1/badges/189f28a2-7faa-42ff-b03c-738142079cc9/deploy-status)](https://app.netlify.com/sites/testcontainers/deploys) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=33816473&machine=standardLinux32gb&devcontainer_path=.devcontainer%2Fdevcontainer.json&location=EastUs) From ca657f110f4761f56654586f9a1f8679fbd363c5 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Wed, 26 Aug 2026 16:44:52 +0200 Subject: [PATCH 267/269] Fix Gradle matrix failure propagation (#11984) Enable pipefail for the filtered matrix-generation pipelines so a failing Gradle invocation cannot be masked by jq. Valid empty matrices remain supported. --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3b19e81823..62dd2acc4ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -96,6 +96,7 @@ jobs: # we should not push empty results to the cache READ_ONLY_REMOTE_GRADLE_CACHE: true run: | + set -o pipefail TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'del(.[] | select(. == ":testcontainers:check" or startswith(":docs:")))' --compact-output) echo $TASKS echo "matrix={\"gradle_args\":$TASKS}" >> $GITHUB_OUTPUT @@ -164,6 +165,7 @@ jobs: # we should not push empty results to the cache READ_ONLY_REMOTE_GRADLE_CACHE: true run: | + set -o pipefail TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'map(select(startswith(":docs:")))' --compact-output) echo $TASKS echo "matrix={\"gradle_args\":$TASKS}" >> $GITHUB_OUTPUT From b2c0d1b85d852a4f13f8314b3e7ccacabbcadad6 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Thu, 27 Aug 2026 15:38:39 +0200 Subject: [PATCH 268/269] Fix Release Drafter version comment --- .github/workflows/release-drafter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 727bcc94c01..863b8d979a9 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -18,6 +18,6 @@ jobs: if: github.repository == 'testcontainers/testcontainers-java' runs-on: ubuntu-latest steps: - - uses: release-drafter/release-drafter@eada3c96a64734dd381cfbda23511034e328ddb0 # v5.19.0 + - uses: release-drafter/release-drafter@eada3c96a64734dd381cfbda23511034e328ddb0 # v7.6.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 675771e41174fe01f54df69812671773f5e9c57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Przyby=C5=82?= <23506256+pioorg@users.noreply.github.com> Date: Thu, 27 Aug 2026 16:57:04 +0200 Subject: [PATCH 269/269] Fix KibanaContainer reusability for external mode (#11986) Fixed KibanaContainer reusability for external mode. --- .../elasticsearch/KibanaContainer.java | 62 ++++++++++++++++++- .../elasticsearch/KibanaContainerTest.java | 54 ++++++++++++++++ 2 files changed, 113 insertions(+), 3 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java index a7214f0618d..ee8ce714854 100644 --- a/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java +++ b/modules/elasticsearch/src/main/java/org/testcontainers/elasticsearch/KibanaContainer.java @@ -20,8 +20,10 @@ import org.testcontainers.utility.ComparableVersion; import org.testcontainers.utility.DockerImageName; +import java.nio.charset.StandardCharsets; import java.time.Duration; import java.util.Map; +import java.util.UUID; import java.util.concurrent.TimeUnit; /** @@ -53,6 +55,8 @@ public class KibanaContainer extends GenericContainer { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private String encryptionKey; + private ElasticsearchContainer elasticsearch; private String elasticsearchUrl; @@ -105,12 +109,58 @@ public KibanaContainer(final DockerImageName dockerImageName) { super(dockerImageName); ensureCompatibleVersion(dockerImageName.getVersionPart()); dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); + this.encryptionKey = stableConfigKey(dockerImageName); withExposedPorts(KIBANA_DEFAULT_PORT); //we have to explicitly set wait the strategy later on in configure, once we know the security configuration setWaitStrategy(null); } + /** + * Sets the encryption key used for Kibana's encrypted saved objects. + * The key must be at least 32 characters. When not set, a deterministic default derived from + * the image name is used, which is required for {@link #withReuse(boolean)} to work correctly. + * + * @param encryptionKey the encryption key + * @return this container instance + */ + public KibanaContainer withEncryptionKey(String encryptionKey) { + if (encryptionKey == null || encryptionKey.length() < 32) { + throw new IllegalArgumentException("Kibana encryption key must be at least 32 characters long"); + } + this.encryptionKey = encryptionKey; + return this; + } + + /** + * Enables or disables container reuse across JVM runs. + * + *

    Supported in external mode only. When Kibana is configured via + * {@link #withElasticsearchUrl(String)}, the container configuration is fully deterministic + * and TC can reliably locate the running container on subsequent runs. + * + *

    Reuse is not supported in managed mode (i.e. when this container was created with + * an {@link ElasticsearchContainer}). Managed mode introduces several non-deterministic inputs + * into the container hash on every run (ad-hoc network ID, random network alias, fresh service + * account token), so TC always sees a different hash and starts a fresh container instead of + * reusing the existing one. This is a framework-level characteristic that affects any container + * connected via {@code withNetwork()} — not specific to {@code KibanaContainer}. + * + * @param reusable whether to enable container reuse + * @return this container instance + * @throws IllegalStateException if {@code reusable} is {@code true} and managed mode is active + */ + @Override + public KibanaContainer withReuse(boolean reusable) { + if (reusable && elasticsearch != null) { + throw new IllegalStateException( + "withReuse(true) is not supported for KibanaContainer in managed mode. " + + "Use external mode (withElasticsearchUrl) to enable reuse." + ); + } + return super.withReuse(reusable); + } + /** * Configures the Elasticsearch URL for external mode. * @@ -212,7 +262,7 @@ public KibanaContainer withElasticsearchCaCertificate(byte[] caCertificate) { protected void configure() { super.configure(); - addEnv("XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY", generateRandomKey(32)); + addEnv("XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY", encryptionKey); addEnv("SERVER_NAME", "kibana"); if (elasticsearchCaCertificate != null) { @@ -541,8 +591,14 @@ private String createKibanaServiceAccountToken(String protocol) { ); } - private String generateRandomKey(int length) { - return Base58.randomString(length); + private static String stableConfigKey(DockerImageName imageName) { + // UUID v3 (name-based) gives a deterministic 32-character string from the image name, + // keeping xpack.encryptedSavedObjects.encryptionKey identical across JVM runs — + // a prerequisite for container reuse. Call withEncryptionKey() for real secret management. + return UUID + .nameUUIDFromBytes(imageName.asCanonicalNameString().getBytes(StandardCharsets.UTF_8)) + .toString() + .replace("-", ""); } /** diff --git a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java index a6b9466690a..0099b5613ca 100644 --- a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java +++ b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/KibanaContainerTest.java @@ -16,11 +16,15 @@ import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.assertj.core.api.Assertions; +import org.assertj.core.api.Assumptions; import org.junit.jupiter.api.Test; +import org.testcontainers.Testcontainers; import org.testcontainers.containers.Container; import org.testcontainers.containers.ContainerLaunchException; +import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.images.builder.Transferable; +import org.testcontainers.utility.TestcontainersConfiguration; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -440,6 +444,56 @@ private static String getKibanaStatus(KibanaContainer kibana) throws IOException } } + @Test + void withReuseShouldReuseTheSameContainer() { + Assumptions + .assumeThat(TestcontainersConfiguration.getInstance().environmentSupportsReuse()) + .as("testcontainers.reuse.enable must be true") + .isTrue(); + + final String kibanaImage = "docker.elastic.co/kibana/kibana:9.2.4"; + + // Testcontainers.exposeHostPorts + host.testcontainers.internal lets Kibana reach ES + // from inside the container on any platform (Linux Docker Engine included). + // No withNetwork() on Kibana keeps the hash fully deterministic: + // - no dynamic network ID + // - the random tc-* alias added by GenericContainer's constructor is only serialised + // into the CreateContainerCmd when withNetwork() has been called, so it is absent here + // The host.testcontainers.internal extra-host IP is the same for kibana1 and kibana2 + // because they start in the same JVM (same PortForwardingContainer instance). + // The first Kibana container must stay running while the second one starts, because + // withReuse(true) only skips JVM-shutdown cleanup — an explicit stop() still removes the + // container, so there would be nothing to find. + try ( + ElasticsearchContainer es = new ElasticsearchContainer(ES_IMAGE) + .withEnv("xpack.security.enabled", "false") + .withEnv("xpack.security.http.ssl.enabled", "false") + ) { + es.start(); + int esMappedPort = es.getMappedPort(9200); + Testcontainers.exposeHostPorts(esMappedPort); + String esUrl = "http://" + GenericContainer.INTERNAL_HOST_HOSTNAME + ":" + esMappedPort; + + KibanaContainer kibana1 = new KibanaContainer(kibanaImage).withElasticsearchUrl(esUrl).withReuse(true); + KibanaContainer kibana2 = new KibanaContainer(kibanaImage).withElasticsearchUrl(esUrl).withReuse(true); + + try { + kibana1.start(); + // kibana2 is started while kibana1 is still running; the reuse mechanism should + // find kibana1's container by hash and return the same container ID. + kibana2.start(); + + Assertions + .assertThat(kibana2.getContainerId()) + .as("KibanaContainer with withReuse(true) should reuse the same container on subsequent starts") + .isEqualTo(kibana1.getContainerId()); + } finally { + kibana1.stop(); + kibana2.stop(); + } + } + } + private static void applyTls(ElasticsearchContainer c, byte[] caCrt, byte[] nodeCrt, byte[] nodeKey) { final String certDir = "/usr/share/elasticsearch/config/certs";