Testcontainers Java Versions Save

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.

1.18.1

1 year ago

What's Changed

  • Favor copy compose file instead of mount (#6945) @eddumelendez
  • Allow @Container to be used as a meta-annotation (#6914) @eddumelendez

πŸš€ Features & Enhancements

  • Support Kraft post Confluent Platform 7.4.0 (#7014) @danielpetisme
  • Alternative waiting strategy for Mockserver container (#6951) @DenilssonMontoya
  • Update RedpandaContainer.java (#6939) @shelajev

πŸ› Bug Fixes

  • Lowercase identifier in DockerComposeContainer (#6944) @eddumelendez
  • Use the current thread's classloader for classes (#6926) @snowe2010

πŸ“– Documentation

  • Add new section for test integrations (#6930) @LeoColman

🧹 Housekeeping

  • Test against Cassandra 4.x (#7013) @wakingrufus
  • Update lombok version to 1.18.26 (#6935) @eddumelendez
  • Fix generated pom with duplicated entries (#6931) @eddumelendez

πŸ“¦ Dependency updates

  • Bump Pulsar version to 3.0.0 (#7016) @nicoloboschi
  • Update Gradle Wrapper to 8.1.1 (#6933) @github-actions
  • Combined dependencies PR (#6912) @eddumelendez
  • Combined dependencies PR (#6908) @eddumelendez

1.18.0

1 year ago

Core module

  • Modules images such as MySQLContainer are now automatically compatible with their corresponding images with the library prefix
MySQLContainer<?> mysql = new MySQLContainer<>("library/mysql");
  • testcontainers/vnc has been bumped to version 1.3.0, which brings ARM support.
  • Goodbye to the whale in the logs. In order to provide an easy way to filter container logs the tc prefix has been added to display all container logs or tc.<image-name:tag> for a specific one. Check the logging docs.
  • There is a new WaitStrategy, ShellStrategy. It can also be used by calling Wait.forSuccessfulCommand(<command>)

New integration

Jib has been integrated to Testcontainers in order to take advantage of the nice API it provides to create containers

GenericContainer<?> busybox = new GenericContainer<>(
                new JibImage(
                    "busybox:1.35",
                    jibContainerBuilder -> {
                        return jibContainerBuilder.setEntrypoint("echo", "Hello World");
                    }
                )
            )
                .withStartupCheckStrategy(new OneShotStartupCheckStrategy().withTimeout(Duration.ofSeconds(3)))

New modules πŸ†•

CrateDB module

In order to use CrateDBContainer , declare the dependency in your pom.xml/build.gradle

<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>cratedb</artifactId>
    <version>1.18.0</version>
    <scope>test</scope>
</dependency>
testImplementation "org.testcontainers:cratedb:1.18.0"

Choose a crate image version and use it as declared below with your postgres driver

CrateDBContainer cratedb = new CrateDBContainer("crate:5.2.5");

Solace Module

In order to use SolaceContainer , declare the dependency in your pom.xml/build.gradle

<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>solace</artifactId>
    <version>1.18.0</version>
    <scope>test</scope>
</dependency>
testImplementation "org.testcontainers:solace:1.18.0"

Now, you can use a Solace PubSub running in a container and connecting via AMQP by doing the following:

SolaceContainer solace = new SolaceContainer("solace/solace-pubsub-standard:10.2");
solace.start();
Session session = createSession(
                solaceContainer.getUsername(),
                solaceContainer.getPassword(),
                solaceContainer.getOrigin(Service.AMQP)
            );

More information about SolaceContainer can be found in the documentation.

Container modules

CockroachDB

Starting with cockroachdb/cockroach:22.1.0, there is support for setting the username, password and database name via environment variables. Now, the Testcontainers module provides convenient setters:

CockroachContainer cockroach = new CockroachContainer("cockroachdb/cockroach:22.1.0")
    .withUsername("test_user")
    .withPassword("test_password")
    .withDatabaseName("test_database");

GCloud module

Google has released a new image which supports ARM and therefore BigtableEmulatorContainer, DatastoreEmulatorContainer, FirestoreEmulatorContainer, PubSubEmulatorContainer now support it as well.

So, if previously you were doing something like

DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:380.0.0-emulators")
    .asCompatibleSubstituteFor("gcr.io/google.com/cloudsdktool/cloud-sdk");

Now, you can simply do

DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:380.0.0-emulators");

JUnit Jupiter Module

@Testcontainers offers a new attribute parallel, which start those containers classes annotated by @Container

@Testcontainers(parallel = true)
class ParallelTest {

	@Container
private static final PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:15-alpine")
    .withCopyFileToContainer(MountableFile.forClasspathResource("db.sql"), "/docker-entrypoint-initdb.d/")
    .withNetwork(network)
    .withNetworkAliases("postgres");

@Container
private static final ToxiproxyContainer toxiproxy = new ToxiproxyContainer("ghcr.io/shopify/toxiproxy:2.5.0")
    .withNetwork(network);

}

Kafka Module

Self-managed or Kraft mode (a.k.a Zookeeperless) support has been added

KafkaContainer kafka = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.0.1")).withKraft()

LocalStack Module

SERVICES environment variable became optional in version 0.13.0 and instead LocalStack will initialize a service once the first request is served. So, nowadays LocalStackContainer can be used just like this:

LocalStackContainer localstack = new LocalStackContainer("localstack/localstack:2.0.0");

Also, LocalStack module supports version 2.0. It is highly recommended to use the latest version of LocalStack images. Last but not least, dependency on AWS SDK V1 was dropped. So, that means by upgrading to version 1.18.0, the dependency can be removed if not used directly.

MongoDB Module

MongoDBContainer by default has been enabling ReplicaSet mode. Starting in this version, sharding has been added.

MongoDBContainer mongodb = new MongoDBContainer("mongo:6")
    .withSharding();

Selenium Module

Selenium 4 has built-in support for Microsoft Edge (which is based on Chromium) and now it is supported by BrowserWebDriverContainer as well:

BrowserWebDriverContainer<?> edge = new BrowserWebDriverContainer<>("selenium/standalone-edge:4.8.0")
    .withCapabilities(new EdgeOptions());

More

⚠️ Breaking API changes

  • Removed deprecated methods and undeclared transitive dependency to AWS SDK v1 (#5827) @AB-xdev
  • Move junit-jupiter-api's dependency configuration to implementation (#5985) @edysli

πŸš€ Features & Enhancements

  • Improve startup wait checks (#6384) @deejgregor
  • #6667: reset network creation state if network creation fails. (#6668) @k-wall
  • [Feature]: ShellStrategy, a new WaitStrategy (#6672) @m4rii0
  • feat: also check DOCKER_AUTH_CONFIG for registry auth config as an alternative to config.json (#6238) @roseo1
  • Ensure readability of MySQL and MariaDB config override (#6625) @famod
  • Bugfix: Log consumers are now called with exactly one complete log line (#5854) @SgtSilvio
  • ClickHouse uses new driver if it is available and version is compatible (#6236) @trolley813
  • Add devcontainer file (#6412) @eddumelendez
  • Add Docker image name to ContainerLaunchException message (#6408) @Donnerbart
  • Make sure we don't hide exceptions from waitUntilContainerStarted (#6167) @deejgregor
  • feat: enable reuse for mongodb (#6235) @tiboun
  • Avoid Pattern recompilation in log output processing (#6239) @dreis2211
  • Fixes the issue of missing root cause in container launch TimeoutException (e.g. SSLHandshakeException) (#5778) @cdanger

☠️ Deprecations

  • Deprecate VaultContainer#withLogLevel (#6795) @eddumelendez

πŸ› Bug Fixes

  • Short-circuit CompletableFuture returned by Startables#deepStart on exception (#5930) @pivovarit
  • fix: Don't return JSON auth config for partial registry name match (#6323) @kiview
  • Fix allowInsecure() on HttpWaitStrategy for non-localhost Docker daemon (#6314) @kiview

1.17.6

1 year ago

What's Changed

Highlights

This release has been made possible through the efforts of 20 contributors. The Testcontainers does not cease to amaze us, thanks to everyone of you and thanks for the ongoing support and collaboration πŸ₯°.

This release brings a lot of database love with 2 new modules, and as always a couple of bug fixes and improvements

New Module: QuestDB (#5995) @Vangreen

QuestDB, is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning, DevOps and observability.

var container = new QuestDBContainer("questdb/questdb:6.5.3")
container.start()
var connectionUrl = container.getHttpUrl()
// use the connectionUrl and start testing!

New Module: YugabyteDB (#4372) @srinivasa-vasu

YugabyteDB, is a modern distributed SQL database for transactional cloud native applications. PostgreSQL compatible. It offers two APIs, SQL and CQL.

var container = new YugabyteDBYSQLContainer("yugabytedb/yugabyte:2.14.4.0-b26");
container.start()
var jdbcUrl = container.getJdbcUrl();
// use the jdbcUrl and start testing!
var container = new YugabyteDBYCQLContainer("yugabytedb/yugabyte:2.14.4.0-b26");
container.start()
var contactPoint = container.getContactPoint();
// use the contactPoint and start testing!

πŸš€ Features & Enhancements

  • InfluxDB v2 support (#3669) @raminqaf
  • Add support for flags in DatastoreEmulatorContainer (#5993) @eddumelendez
  • Expose Redpanda schema registry (#5994) @gustavomonarin
  • Adds the ability to set a target build stage to a Dockerfile (#4810) @GenghisChen

πŸ› Bug Fixes

  • Fixes wrong timestamp calculation (#5988) @leblonk
  • Catch and ignore more errors when reflecting into container subclass (#5990) @akhaku
  • Return default for empty environment variable (#5983) @roulpriya

πŸ“– Documentation

  • Add Spotify in Donors section (#6083) @eddumelendez
  • Updated Vault docs, uplifted Vault image version (#3685) @RamazanYapparov
  • Add Hazelcast Example (#6117) @tomazfernandes
  • Improve ToxiProxyContainer test and docs (#6065) @eddumelendez
  • fix link zookeeper (#6079) @rnzit
  • chore: sync governance files (#6075) @kiview
  • Update docs to better reflect the links to other languages (#6068) @kiview
  • Add step to create symlink when Docker for Mac 4.13 is installed (#6064) @eddumelendez
  • Add language links to docs index (#6067) @leocross
  • Update gitlab_ci.md with clarifying note about the docker host port number (#6063) @BenManifold
  • Add zookeeper example (#6059) @eddumelendez
  • Add travis minimal configuration (#6056) @eddumelendez
  • fix: edit link in documentation (#6055) @DanielHabenicht
  • Deprecate setCustomContent and withCustomContent at NginxContainer (#5997) @eddumelendez
  • Add paragraph about Docker requirements to docs (#5987) @kiview
  • Add reference to supported languages (#5979) @eddumelendez
  • doc: Update logback-test.xml example to show how to enable DEBUG only for Testcontainers (#5976) @edysli

🧹 Housekeeping

  • Remove "Starting an elasticsearch container" message in constructor (#6127) @deejgregor
  • Apply spotless and checkstyle to examples (#6061) @eddumelendez
  • Remove unused Pipfiles (#6046) @kiview
  • Update toxiproxy image to ghcr.io/shopify/toxiproxy (#5996) @eddumelendez
  • Deprecate setCustomContent and withCustomContent at NginxContainer (#5997) @eddumelendez
  • Remove Transferable#of(java.lang.String,int) for japicmp (#5992) @eddumelendez
  • Remove unnecessary configuration from simple tests (#5973) @JanHendrikDolling
  • Fix dependabot.yml ignore section (#5999) @eddumelendez
  • Update set-output command in workflows (#6058) @eddumelendez
  • Use gradle/gradle-build-action (#6121) @eddumelendez
  • Add lang and version labels to containers (#6124) @eddumelendez
  • Fix labeler configuration (#6157) @eddumelendez

πŸ“¦ Dependency updates

9 changes * Ignore updates for org.neo4j:neo4j (#6112) @eddumelendez * Combined dependencies PR (#6210) @eddumelendez * Combined dependencies PR (#6205) @eddumelendez * Combined dependencies PR (#6173) @eddumelendez * Combined dependencies PR (#6153) @eddumelendez * Combined dependencies PR (#6150) @eddumelendez
  • Combined dependencies PR (#6118) @eddumelendez
  • Combined dependencies PR (#6114) @eddumelendez
  • Combined dependencies PR (#6113) @eddumelendez
  • Combined dependencies PR (#6212) @eddumelendez

1.17.5

1 year ago

What's Changed

Warning Version 1.17.4 was released upgrading slf4j-api to version 2.x. This dependency has been reverted to 1.17.x.

  • Rollback back to slf4j-api 1.7.36 (#5951) @kiview
  • Bump logback-classic versions (#5948) @eddumelendez
  • Bump kotlin plugins version to 1.7.20 (#5945) @eddumelendez
  • Add banner when Ryuk is disabled (#5929) @eddumelendez

πŸ“– Documentation

  • Test container example for ImmuDB (#5860) @hariohmprasath
  • Reference to GitHub Discussions (#5928) @eddumelendez
  • Rename main branch (#5847) @eddumelendez

πŸ“¦ Dependency updates

  • Combined dependencies PR (#5944) @eddumelendez
  • Combined dependencies PR (#5936) @eddumelendez
  • Combined dependencies PR (#5935) @eddumelendez
  • Combined dependencies PR (#5931) @eddumelendez

1.17.4

1 year ago

What's Changed

Highlights

This release has been made possible through the efforts of whopping 23 contributors, wow! 🀯

Besides 3 new modules, this release brings a couple of bugfixes, improved compatibility and resilience in certain scenarios, better defaults and more configurability.

You might also notice many PRs related to the documentation, templates for PRs and issues, and automation regarding OSS contributions. Testcontainers has always been a project with a lot of involvement by the community and we are very proud of this. That’s why want to make contributing to Testcontainers a great experience, no matter if you raise an issue, submit a PR or initiate a discussion in GitHhub Discussions.

🐼 New Module: Redpanda (#5740) @eddumelendez

Redpanda, a Kafka-compatible streaming platform, recently added a special dev-container mode to their container image, that allows even faster startup times. A great reason to work in a Testcontainers module that leverages this flag by default to give you a great integration testing experience when using Redpanda. And of course, using Redpanda with Testcontainers is as easy and convenient as you are used to:

var container = new RedpandaContainer("docker.redpanda.com/vectorized/redpanda:v22.2.1")
container.start()
var connectionUrl = container.getBootstrapServers()
// use the connectionUrl and start testing!

You can check out the docs to learn more.

New Module: TiDB (#5511) @Icemap

With TiDB, we are adding support for a new database module. As with other databases that can be accessed via JDBC, you can leverage Testcontainers’ special JDBC URL integration:

jdbc:tc:tidb:v6.1.0:///databasename

New Module: Hashicorp Consul (#4683) @julb

Consul

πŸš€ Features & Enhancements

  • getContainerByServiceName should work without suffix (#5776) @REslim30
  • Allow Pulsar default WaitStrategy to honour startup timeout (#5674) @nahguam
  • fix: ContainerDatabaseDriver does not register Properties object (#5829) @REslim30
  • couchbase: allow to configure bucket replicas and default to 0. (#5840) @daschl
  • Add compatibility with MongoDB 6 (#5771) @eddumelendez
  • Set default elasticsearch heap size to 2GB (Alternate PR) (#5684) @REslim30
  • Add Transferable.of(String, int) (#5741) @eddumelendez
  • Make TestcontainersExtension public (#5285) @hmatt1
  • Update Cassandra driver to 4.x (#2830) @emerkle826
  • Make outer maximum startup timeout in DockerComposeContainer configurable (#5588) @henri-tremblay
  • Improve Pulsar's wait strategy to rely on clusterName (#5613) @eddumelendez

πŸ› Bug Fixes

  • getLivenessCheckPortNumbers() should return mapped port (#5734) @REslim30

πŸ“– Documentation

  • Improve consistency of Testcontainers name in docs (#5866) @neslihanedes
  • Fix typos on index.md (#5832) @neslihanedes
  • docs: fix link to the bounty program (#5831) @mdelapenya
  • Fix link for Selenium examples (#5786) @kiview
  • Remove disque-job-queue and mongodb-container examples (#5782) @eddumelendez
  • Upgrade spring-boot version to 2.7.3 in examples (#5764) @eddumelendez
  • Add samples section (#5763) @eddumelendez
  • Add Consul module (#4683) @julb
  • Add syntax highlighting to colima usage doc (#5673) @kishaningithub
  • Link to the docs on environment discovery failure (#5615) @bsideup
  • Add docs for AWS CodeBuild and Tekton (#5614) @eddumelendez
  • Update CircleCI docs for current Cloud/v2/v3 configuration (#5611) @epragtbeamtree
  • Update Oracle-XE docs and use code example from tests (#4385) @kiview
  • Enable JUnitPlatform in Gradle for JUnit5 examples (#4130) @kiview
  • Add documentation for DependsOn (#5597) @QuinnBast
  • Improve docs (#5522) @eddumelendez
  • Improve Issue Templates (#5836) @eddumelendez
  • Fix type/docs label (#5759) @eddumelendez
  • Add Pull Request Template (#5735) @eddumelendez
    • Link to the docs on environment discovery failure (#5615) @bsideup

🧹 Housekeeping

  • Update localstack images in tests (#5783) @eddumelendez
  • Remove thundra from ci.yml (#5850) @eddumelendez
  • Exclude org.testcontainers.shaded.* package and upgrade deps (#5775) @eddumelendez
  • Revert "Update GHA runner image to latest Ubuntu" (#5766) @kiview
  • Add test-retry plugin (#5586) @eddumelendez
  • GitHub Workflows security hardening (#5821) @sashashura
  • Add host os and arch in bug report template (#5525) @eddumelendez
  • getLivenessCheckPortNumbers() should return mapped port (#5734) @REslim30
  • Use testCompileOnly instead of testCompileClasspath (#5849) @eddumelendez
  • Update slf4j in test-support to 2.0.0 (#5848) @kiview
  • Remove disque-job-queue and mongodb-container examples (#5782) @eddumelendez
  • Run mongosh or mongo if cmd exists (#5774) @eddumelendez
  • Add .sdkmanrc with 8.0.345-tem (#5772) @eddumelendez
  • Add link to GH Discussions to Issue forms (#5767) @eddumelendez
  • [couchbase] Only expose ports for enabled services (#4595) @daschl
  • Update GHA runner image to latest Ubuntu (#5761) @kiview
  • Enforce UTF-8 as Javadoc encoding (#5738) @gesellix
  • Drop usage of org.junit.platform.commons.util (#5729) @eddumelendez
  • Move junit4 to assertj (#5685) @eddumelendez
  • Removes unused module junit-toolbox (#5678) @froque
  • Move to assertj (#5679) @eddumelendez
  • Add pr label for area/docker-compose (#5610) @eddumelendez
  • Update alpine image to 3.16 (#4698) @tobiasstadler
  • Update spotless version to 6.8.0 (#5605) @eddumelendez
  • Fix javadoc comment in ToxiproxyContainer#getProxy(GenericContainer, int) (#5591) @kwart
  • chore: Set permissions for GitHub actions (#5523) @naveensrinivasan
  • Add labeler action (#5516) @eddumelendez

πŸ“¦ Dependency updates

  • Update ryuk version to 0.3.4 (#5619) @eddumelendez
  • Combined dependencies PR (#5820, #5816, #5762, #5758, #5757, #5733, #5730, #5672, #5671, #5668, #5587, #5583, #5580) @eddumelendez
  • Update Gradle Wrapper to 7.5.1 (#5676) @github-actions
  • Update Gradle Wrapper to 7.5 (#5598) @github-actions

1.17.3

1 year ago

What's Changed

πŸš€ Features & Enhancements

  • modules/clickhouse: JDBC driver name changed, liveness port (#5474) @anavrotski
  • Elasticsearch: Fix startup check for 8.3 and above (#5521) @spinscale
  • Switch toxiproxy default image to ghcr.io and update default tag to 2.4.0 (#5173) @gmunozfe
  • Check admin endpoint instead of metrics for Pulsar WaitStrategy. (#5514) @nahguam
  • [LocalStack] Remove usage of deprecated methods (#5491) @eddumelendez
  • Add clickhouse/clickhouse-server compatibility (#5488) @eddumelendez
  • Use sshd container 1.1.0 (#5486) @jerrinot
  • [HiveMQ] do not delete /opt/hivemq/temp-extensions in startup command (#5509) @YannickWeber
  • Pulsar: add flag to enable transactions and set configuration (#5479) @nicoloboschi
  • Don't ignore sql test query exception, add it as cause exception (#5484) @anatoly0karyakin
  • Get region from env variables or default (#3556) @adrianpozueco
  • Use TestInstances API from JUnit Jupiter (#2719) @tobiasstadler

☠️ Deprecations

  • [LocalStack] Deprecate methods using aws sdk v1 (#5489) @eddumelendez

πŸ› Bug Fixes

  • Don't delete images if deleteOnExit is false (#5391) @kiview

πŸ“– Documentation

  • Added the Bucket4j library to "Who is using Testcontainers?" (#5480) @MaxBartkov
  • Docs: Add Spark ClickHouse Connector use case (#5270) @pan3793
  • Polish examples (#5520) @eddumelendez
  • [LocalStack] Remove usage of deprecated methods (#5491) @eddumelendez
  • Feature template: Fix typo in Alternatives section label (#5505) @daniel-shuy
  • Fix missing link color in docs (#5508) @kiview
  • adds docs cockroach jdbc example (#5100) @cristianbriscaru
  • Remove free disk space check log in example (#5502) @KENNYSOFT
  • Add issue forms (#5490) @eddumelendez
  • Add MariaDB root user password section to docs (#5498) @kiview
  • Add section about MySQL root user password to docs (#5497) @kiview

🧹 Housekeeping

  • Cleanup japicmp baselines (#5463) @eddumelendez
  • JdbcDatabaseContainer: fix wrong instance call (#5465) @monosoul
  • Add try-with-resources to HttpWaitStrategyTest (#5397) @eddumelendez
  • Apply spotless and checkstyle (#5390) @eddumelendez
  • Add spotless and checkstyle (#5383) @eddumelendez

πŸ“¦ Dependency updates

Click to expand...
  • Bump common-custom-user-data-gradle-plugin from 1.7 to 1.7.2 in /examples (#5495) @dependabot
  • Bump neo4j-java-driver from 4.4.5 to 4.4.6 in /examples (#5468) @dependabot
  • Bump google-cloud-firestore from 3.0.21 to 3.2.0 in /modules/gcloud (#5444) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/azure (#5443) @dependabot
  • Bump slf4j-api from 1.7.32 to 1.7.36 in /examples (#5078) @dependabot
  • Bump gson from 2.8.9 to 2.9.0 in /examples (#5076) @dependabot
  • Bump r2dbc-mssql from 0.8.7.RELEASE to 0.9.0.RELEASE in /modules/mssqlserver (#4983) @dependabot
  • Bump mockito-core from 4.4.0 to 4.6.1 in /modules/junit-jupiter (#5473) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.210 to 1.12.233 in /modules/localstack (#5472) @dependabot
  • Bump google-cloud-datastore from 2.4.0 to 2.7.0 in /modules/gcloud (#5471) @dependabot
  • Bump s3 from 2.17.181 to 2.17.204 in /modules/localstack (#5470) @dependabot
  • Bump common-custom-user-data-gradle-plugin from 1.7 to 1.7.1 in /examples (#5469) @dependabot
  • Bump com.gradle.enterprise.gradle.plugin from 3.10 to 3.10.1 (#5461) @dependabot
  • Bump google-cloud-spanner from 6.20.0 to 6.25.5 in /modules/gcloud (#5455) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/r2dbc (#5454) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/gcloud (#5453) @dependabot
  • Bump google-cloud-firestore from 3.0.21 to 3.2.0 in /modules/gcloud (#5444) @dependabot
  • Bump elasticsearch-rest-client from 7.16.2 to 8.2.2 in /modules/elasticsearch (#5430) @dependabot
  • Bump jedis from 4.2.2 to 4.2.3 in /modules/junit-jupiter (#5426) @dependabot
  • Bump rest-assured from 5.0.1 to 5.1.0 in /modules/vault (#5419) @dependabot
  • Bump kafka-clients from 3.0.0 to 3.2.0 in /modules/kafka (#5372) @dependabot
  • Bump cucumber-junit from 7.2.3 to 7.3.4 in /examples (#5371) @dependabot
  • Bump jedis from 4.2.2 to 4.2.3 in /examples (#5369) @dependabot
  • Bump client-java from 15.0.0 to 15.0.1 in /modules/k3s (#5329) @dependabot
  • Bump mongodb-driver-sync from 4.5.1 to 4.6.0 in /modules/mongodb (#5328) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.6.20 to 1.6.21 in /examples (#5317) @dependabot
  • Bump mysql-connector-java from 8.0.27 to 8.0.29 in /modules/junit-jupiter (#5308) @dependabot
  • Bump mongo-java-driver from 3.12.10 to 3.12.11 in /core (#5291) @dependabot
  • Bump logback-classic from 1.2.10 to 1.2.11 in /modules/hivemq (#5243) @dependabot
  • Bump json from 20211205 to 20220320 in /examples (#5217) @dependabot
  • Bump r2dbc-postgresql from 0.8.11.RELEASE to 0.8.12.RELEASE in /modules/postgresql (#5201) @dependabot
  • Bump awaitility from 4.1.1 to 4.2.0 in /modules/couchbase (#5199) @dependabot
  • Bump slf4j-api from 1.7.35 to 1.7.36 in /core (#5085) @dependabot
  • Bump slf4j-api from 1.7.32 to 1.7.36 in /examples (#5078) @dependabot
  • Bump common-custom-user-data-gradle-plugin from 1.6.5 to 1.7 (#5462) @dependabot
  • Bump com.gradle.enterprise.gradle.plugin from 3.10 to 3.10.1 (#5461) @dependabot
  • Bump hivemq-extension-sdk from 4.8.0 to 4.8.1 in /modules/hivemq (#5459) @dependabot
  • Bump reactor-core from 3.4.17 to 3.4.18 in /modules/r2dbc (#5457) @dependabot
  • Bump google-cloud-bigtable from 2.6.2 to 2.8.0 in /modules/gcloud (#5456) @dependabot
  • Bump google-cloud-spanner from 6.20.0 to 6.25.5 in /modules/gcloud (#5455) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/gcloud (#5453) @dependabot
  • Bump azure-cosmos from 4.29.1 to 4.30.0 in /modules/azure (#5452) @dependabot
  • Bump postgresql from 42.3.4 to 42.3.6 in /modules/cockroachdb (#5450) @dependabot
  • Bump google-cloud-pubsub from 1.116.4 to 1.119.0 in /modules/gcloud (#5449) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/k3s (#5447) @dependabot
  • Bump trino-jdbc from 379 to 382 in /modules/trino (#5446) @dependabot
  • Bump google-cloud-firestore from 3.0.21 to 3.2.0 in /modules/gcloud (#5444) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/rabbitmq (#5442) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/orientdb (#5441) @dependabot
  • Bump release-drafter/release-drafter from 5.19.0 to 5.20.0 (#5440) @dependabot
  • Bump actions/cache from 3.0.2 to 3.0.3 (#5439) @dependabot
  • Bump peter-evans/create-pull-request from 4.0.2 to 4.0.3 (#5438) @dependabot
  • Bump postgresql from 42.3.3 to 42.3.6 in /examples (#5437) @dependabot
  • Bump transport from 7.17.3 to 7.17.4 in /modules/elasticsearch (#5435) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/database-commons (#5436) @dependabot
  • Bump aws-java-sdk-logs from 1.12.169 to 1.12.232 in /modules/localstack (#5434) @dependabot
  • Bump postgresql from 42.3.4 to 42.3.6 in /modules/junit-jupiter (#5433) @dependabot
  • Bump jedis from 4.2.2 to 4.2.3 in /core (#5432) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /core (#5431) @dependabot
  • Bump elasticsearch-rest-client from 7.16.2 to 8.2.2 in /modules/elasticsearch (#5430) @dependabot
  • Bump postgresql from 42.3.1 to 42.3.6 in /modules/spock (#5428) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.210 to 1.12.231 in /modules/localstack (#5427) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/vault (#5425) @dependabot
  • Bump common-custom-user-data-gradle-plugin from 1.6.2 to 1.7 in /examples (#5423) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/junit-jupiter (#5422) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.210 to 1.12.232 in /modules/dynalite (#5421) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.191 to 1.12.231 in /modules/localstack (#5420) @dependabot
  • Bump tomcat-jdbc from 10.0.20 to 10.0.21 in /modules/jdbc (#5417) @dependabot
  • Bump rest-assured from 5.0.1 to 5.1.0 in /modules/vault (#5419) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/neo4j (#5415) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/jdbc (#5410) @dependabot
  • Bump mockito-core from 4.3.1 to 4.6.0 in /core (#5411) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/kafka (#5413) @dependabot
  • Bump postgresql from 42.3.4 to 42.3.6 in /modules/postgresql (#5412) @dependabot
  • Bump assertj-core from 3.22.0 to 3.23.1 in /modules/pulsar (#5414) @dependabot
  • Bump neo4j from 3.5.32 to 3.5.33 in /modules/neo4j (#5408) @dependabot
  • Bump mariadb-java-client from 3.0.3 to 3.0.5 in /modules/mariadb (#5409) @dependabot
  • Bump tomcat-jdbc from 10.0.20 to 10.0.21 in /modules/jdbc-test (#5407) @dependabot

1.17.2

1 year ago

What's Changed

While this release had a major focus on stability, we managed to optimize the startup sequence and it should make your tests even faster!

Here is what it takes to have a Redis up and running with Testcontainers, end-to-end from the test's start to an instance ready to be connected: Before (1.17.1): 2.4s Before (1.17.2): 1.7s πŸš€

And here is just the "initialize Testcontainers" measurements:

Before (1.17.1): 1102ms Before (1.17.2): 928ms

How we did it? We noticed that we can cache a couple of Docker responses, plus also removed now obsolete (yet expensive!) disk space check.

πŸš€ Features & Enhancements

  • K3sContainer: expose kubeConfig for docker network access (#5097) @johnathana
  • Remove the disk space check (#5381) @bsideup
  • Use GenericContainer in RyukResourceReaper (#5358) @bsideup
  • Allow insecure HTTPS/TLS connection for HttpWaitStrategy (#4951) @reta
  • Read indexServerAddress from Docker's /info (#5347) @bsideup
  • Allow to create exchanges, queues, bindings in the same vhost (#5348) @eddumelendez
  • Test DOCKER_HOST in DockerClientProviderStrategy (#5357) @bsideup
  • Add getConnectionString() for MongoDBContainer (#5271) @mdedetrich
  • Rely on TransportConfig to read DOCKER_HOST env variable for DockerComposeContainer (#5276) @eddumelendez

πŸ› Bug Fixes

  • Reset WebDriver and vncRecordingContainer when Selenium container stops (#5116) @tobiasstadler
  • Synchronize removal of containers from JDBC URL cache (#4598) @edee111
  • Fix deadlock in LocalImagesCache (#5356) @bsideup
  • Elasticsearch: Don't throw exception on missing CA cert file (#5265) @spinscale
  • Fix connection leak in JDBC waitUntilContainerStarted (#5281) @rpygithub

πŸ“– Documentation

  • Add docs for using Gitlab CI with Docker wormhole executor (#4770) @JurrianFahner
  • Remove "Linux - Travis CI"from docs (#4374) @cac03
  • Add SeaTunnel to who is using testcontainers (#5272) @ruanwenjun
  • Fix docs: use getHost (#5288) @eddumelendez

🧹 Housekeeping

  • Fix TestcontainersTestDescription filename (#5387) @eddumelendez
  • run core tests in parallel (#5365) @bsideup
  • Correct usage of deprecated method createSubscription() (#5350) @felix-seifert
  • Fix docs: use getHost (#5288) @eddumelendez
  • Add testcontainers/java-team in CODEOWNERS (#5353) @eddumelendez
  • Manage Gradle Enterprise plugins with Dependabot (#5342) @jprinet
  • Use getHost instead of getContainerIpAddress() (#5277) @eddumelendez

πŸ“¦ Dependency updates

  • Upgrade lombok to be compatible with java 17 (#5388) @eddumelendez
  • Combined dependencies PR (#5367) @eddumelendez
  • Bump com.gradle.enterprise.gradle.plugin from 3.9 to 3.10 (#5343) @dependabot
  • Use latest version of alpine/socat container image (#5280) @dboreham

1.17.1

2 years ago

What's Changed

πŸ› Bug Fixes

  • Fix StackOverflowError in DockerClientFactory#client (#5262) @bsideup

πŸ“– Documentation

  • Update Testcontainers branding (#5258) @kiview

1.17.0

2 years ago

What's Changed

Highlights

This new version of Testcontainers comes packed with many new features and quality-of-life improvements, so we appropriately bumped the version to 1.17.0.

🐝 New Module: HiveMQ (#4797) @YannickWeber

Having started its Open Source life as its own 3rd-party Testcontainers library, we are very happy to welcome HiveMQ into the main repository. Now, using HiveMQ as part of your integration tests is as simple as a couple of lines of Java code:


@Container
HiveMQContainer hivemq = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce:2021.3"));
hivemq.start();

Mqtt5BlockingClient client = Mqtt5Client.builder()
    .serverPort(hivemqCe.getMqttPort())
    .serverHost(hivemqCe.getHost())
    .buildBlocking();

client.connect();

Check out the docs to learn more about its many features!

πŸ’€ Ryuk JVM mode (#4959) (#4960) @bsideup

Many Testcontainers user love the convenience Ryuk brings to Testcontainers: No matter what you do in your integration tests, Ryuk has got you covered and will cleanup all Docker resources created by Testcontainers after your test run is finished.

But some users operate Testcontainers in environments which do not support our container-based Ryuk implementation. So far their only option was to disable Ryuk alltogether.

Coming with this release, Testcontainers will now fallback to a JVM based resource-cleanup implementation in case of Ryuk being disabled. While this won't be as robust as the Ryuk container based implementation in all circumstances, it is nevertheless a great addition and acts as a useful compromise.

πŸš€ Features & Enhancements

  • Allow to create a container file from a Transferable (#3814) (#3815) @thomasdarimont
  • Elasticsearch: Ensure Elasticsearch 8 works OOTB secure as default (#5099) @spinscale
  • Deperecate getContainerIpAddress (#5247) @kiview
  • Fix ScriptUtils.runInitScript() in hierarchical classloader setup by using TCCL (#5167) @famod
  • [HiveMQ] added tmpFs (#5109) @YannickWeber
  • Replace deprecated checkAndPullImage with RemoteDockerImage (#5148) @bsideup
  • Enable Neo4j labs plugin definition. (#5035) @meistermeier
  • Deprecate getTestHostIpAddress and getContainerIpAddress (#5149) @bsideup
  • Add the session header to every Docker request (#5145) @bsideup
  • Start Ryuk lazily when in the reusable mode (#4938) @bsideup
  • [HiveMQ] replaced MultiLogMessageWaitStrategy.java with WaitAllStrategy (#5093) @YannickWeber
  • #5032 - MS SQL Server disable encrypt by default (#5033) @StefanHufschmidt
  • [Couchbase] Add support for Eventing service (#4953) @tchlyah

πŸ› Bug Fixes

  • Fix incorrect path for RABBITMQ_CONFIG_FILE (#5184) @mdedetrich
  • Update mkdocs to 1.3.0 (#5186) @kiview
  • Do not mount Selenium's SHM on Windows (#5105) @bsideup

πŸ“– Documentation

  • Improved jitpack dependencies page (#5189) @YannickWeber
  • Update mkdocs to 1.3.0 (#5186) @kiview
  • Mention that Spring Data Neo4j uses Testcontainers in the docs. (#5169) @meistermeier
  • Fix formatting in docs for image override configuration (#5147) @rnorth
  • [docs]Add the used organization Byzer. (#5125) @hellozepp
  • [Neo4j] Include code from tests in docs. (#5120) @meistermeier
  • Polish code samples so that they are easier to copy & paste (#5038) @maciejwalkowiak
  • Upgrade mkdocs (#3443) @rnorth
  • Remove the INCUBATING note from CockroachDB module docs (#4963) @kiview
  • Update docs version to ${GITHUB_REF##*/} (#4932) @github-actions
  • Simplify dependency management for JUnit Jupiter (#4704) @marcphilipp

🧹 Housekeeping

  • Increase default client ping timeout from 5 to 10 seconds (#5254) @kiview
  • add virtual environment to git ignore (#5156) @jetersen
  • Improve Gradle build cacheability (#5188) @jprinet
  • Remove OkHttp transport (#5113) @bsideup
  • use collapse-after for dependencies category (#5157) @jetersen
  • [HiveMQ] replaced non-ascii single quote with ascii single quote (#5102) @YannickWeber
  • Run tests using shaded dependencies (#5146) @bsideup
  • [HiveMQ] every IT now uses getHost() (#5106) @YannickWeber
  • Fix tests on Windows (#5096) @bsideup
  • Upgrade mkdocs (#3443) @rnorth
  • Remove some dead code from PostgreSQLContainer (#4948) @dajudge
  • Use JDK 1.8 in Azure pipelines (#4942) @kiview

πŸ“¦ Dependency updates

Click to expand...
  • Update Gradle Wrapper to 7.4.2 (#5193) @github-actions
  • Update Gradle Wrapper to 7.4.1 (#5168) @github-actions
  • Update to docker-java 3.2.13 (#5045) @bsideup
  • Update Gradle Wrapper to 7.4 (#5036) @github-actions
  • Upgrade mkdocs (#3443) @rnorth
  • Bump zip4j from 2.9.1 to 2.10.0 in /modules/hivemq (#5242) @dependabot
  • Bump hivemq-extension-sdk from 4.7.4 to 4.7.5 in /modules/hivemq (#5241) @dependabot
  • Bump google-cloud-firestore from 3.0.14 to 3.0.21 in /modules/gcloud (#5239) @dependabot
  • Bump google-cloud-pubsub from 1.115.1 to 1.116.3 in /modules/gcloud (#5238) @dependabot
  • Bump google-cloud-datastore from 2.2.2 to 2.3.0 in /modules/gcloud (#5236) @dependabot
  • Bump reactor-core from 3.4.15 to 3.4.16 in /modules/r2dbc (#5234) @dependabot
  • Bump google-cloud-bigtable from 2.5.2 to 2.6.1 in /modules/gcloud (#5233) @dependabot
  • Bump mongodb-driver-sync from 4.5.0 to 4.5.1 in /modules/mongodb (#5231) @dependabot
  • Bump client-java from 14.0.0 to 15.0.0 in /modules/k3s (#5230) @dependabot
  • Bump trino-jdbc from 369 to 375 in /modules/trino (#5228) @dependabot
  • Bump r2dbc-postgresql from 0.8.11.RELEASE to 0.8.12.RELEASE in /modules/r2dbc (#5227) @dependabot
  • Bump okhttp from 3.14.9 to 4.9.3 in /modules/solr (#5229) @dependabot
  • Bump peter-evans/create-pull-request from 3.12.1 to 4.0.1 (#5226) @dependabot
  • Bump actions/cache from 2.1.7 to 3.0.1 (#5225) @dependabot
  • Bump neo4j-java-driver from 4.4.3 to 4.4.5 in /examples (#5223) @dependabot
  • Bump s3 from 2.17.108 to 2.17.162 in /modules/localstack (#5222) @dependabot
  • Bump aws-java-sdk-logs from 1.12.169 to 1.12.191 in /modules/localstack (#5221) @dependabot
  • Bump awaitility from 4.1.1 to 4.2.0 in /core (#5219) @dependabot
  • Bump logback-classic from 1.2.10 to 1.2.11 in /examples (#5216) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.6.10 to 1.6.20 in /examples (#5215) @dependabot
  • Bump transport from 7.17.1 to 7.17.2 in /modules/elasticsearch (#5214) @dependabot
  • Bump mockito-core from 4.3.1 to 4.4.0 in /modules/junit-jupiter (#5212) @dependabot
  • Bump jedis from 4.1.1 to 4.2.1 in /examples (#5210) @dependabot
  • Bump java-client from 3.2.5 to 3.2.6 in /modules/couchbase (#5209) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.169 to 1.12.191 in /modules/localstack (#5206) @dependabot
  • Bump rest-assured from 4.5.1 to 5.0.0 in /modules/vault (#5207) @dependabot
  • Bump neo4j-java-driver from 4.4.3 to 4.4.5 in /modules/neo4j (#5205) @dependabot
  • Bump elasticsearch-rest-client from 7.16.2 to 8.1.2 in /modules/elasticsearch (#5202) @dependabot
  • Bump awaitility from 4.1.1 to 4.2.0 in /modules/couchbase (#5199) @dependabot
  • Bump tomcat-jdbc from 10.0.16 to 10.0.20 in /modules/jdbc (#5196) @dependabot
  • Bump tomcat-jdbc from 10.0.16 to 10.0.20 in /modules/jdbc-test (#5195) @dependabot
  • Bump actions/checkout from 2 to 3 (#5140) @dependabot
  • Bump google-cloud-firestore from 3.0.11 to 3.0.14 in /modules/gcloud (#5143) @dependabot
  • Bump google-cloud-spanner from 6.17.4 to 6.20.0 in /modules/gcloud (#5142) @dependabot
  • Bump actions/setup-java from 2.5.0 to 3 (#5141) @dependabot
  • Bump actions/checkout from 2 to 3 (#5140) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.150 to 1.12.169 in /modules/dynalite (#5138) @dependabot
  • Bump transport from 7.17.0 to 7.17.1 in /modules/elasticsearch (#5136) @dependabot
  • Bump org.springframework.boot from 2.6.3 to 2.6.4 in /examples (#5137) @dependabot
  • Bump elasticsearch-rest-client from 7.16.2 to 8.0.1 in /modules/elasticsearch (#5135) @dependabot
  • Bump guava from 31.0.1-jre to 31.1-jre in /modules/jdbc-test (#5133) @dependabot
  • Bump aws-java-sdk-logs from 1.12.139 to 1.12.169 in /modules/localstack (#5132) @dependabot
  • Bump neo4j from 3.5.29 to 3.5.31 in /modules/neo4j (#5131) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.150 to 1.12.169 in /modules/localstack (#5130) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.150 to 1.12.169 in /modules/localstack (#5127) @dependabot
  • Bump postgresql from 42.3.2 to 42.3.3 in /examples (#5090) @dependabot
  • Bump google-cloud-datastore from 2.2.2 to 2.2.4 in /modules/gcloud (#5088) @dependabot
  • Bump release-drafter/release-drafter from 5.17.6 to 5.18.1 (#5087) @dependabot
  • Bump amqp-client from 5.14.1 to 5.14.2 in /core (#5080) @dependabot
  • Bump azure-cosmos from 4.24.0 to 4.26.0 in /modules/azure (#5079) @dependabot
  • Bump google-cloud-bigtable from 2.5.2 to 2.5.3 in /modules/gcloud (#5075) @dependabot
  • Bump kubernetes-client from 5.11.0 to 5.12.1 in /modules/k3s (#5071) @dependabot
  • Bump amqp-client from 5.14.1 to 5.14.2 in /modules/rabbitmq (#5070) @dependabot
  • Bump rest-assured from 4.4.0 to 4.5.1 in /modules/vault (#5072) @dependabot
  • Bump postgresql from 42.3.1 to 42.3.3 in /modules/postgresql (#5064) @dependabot
  • Bump postgresql from 42.3.2 to 42.3.3 in /modules/cockroachdb (#5063) @dependabot
  • Bump reactor-core from 3.4.14 to 3.4.15 in /modules/r2dbc (#5065) @dependabot
  • Bump postgresql from 42.3.2 to 42.3.3 in /modules/junit-jupiter (#5059) @dependabot
  • Bump hivemq-extension-sdk from 4.7.3 to 4.7.4 in /modules/hivemq (#5061) @dependabot
  • Bump mongodb-driver-sync from 4.4.1 to 4.5.0 in /modules/mongodb (#5062) @dependabot
  • Bump spock-core from 2.0-groovy-3.0 to 2.1-groovy-3.0 in /modules/spock (#5057) @dependabot
  • Bump google-cloud-datastore from 2.2.2 to 2.2.3 in /modules/gcloud (#5013) @dependabot
  • Bump cucumber-junit from 7.2.2 to 7.2.3 in /examples (#4976) @dependabot
  • Bump mysql-connector-java from 8.0.27 to 8.0.28 in /modules/jdbc-test (#4971) @dependabot
  • Bump mysql-connector-java from 8.0.27 to 8.0.28 in /modules/mysql (#4972) @dependabot
  • Bump google-cloud-bigtable from 2.5.1 to 2.5.2 in /modules/gcloud (#5015) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/k3s (#5012) @dependabot
  • Bump jackson-dataformat-yaml from 2.8.8 to 2.13.1 in /modules/k3s (#5011) @dependabot
  • Bump amqp-client from 5.14.0 to 5.14.1 in /modules/rabbitmq (#5008) @dependabot
  • Bump google-cloud-firestore from 3.0.10 to 3.0.11 in /modules/gcloud (#5006) @dependabot
  • Bump postgresql from 42.3.1 to 42.3.2 in /modules/cockroachdb (#5005) @dependabot
  • Bump trino-jdbc from 367 to 369 in /modules/trino (#5004) @dependabot
  • Bump peter-evans/create-pull-request from 3.12.0 to 3.12.1 (#5003) @dependabot
  • Bump gradle-update/update-gradle-wrapper-action from 1.0.16 to 1.0.17 (#5002) @dependabot
  • Bump release-drafter/release-drafter from 5.15.0 to 5.17.6 (#5001) @dependabot
  • Bump cucumber-java from 7.2.2 to 7.2.3 in /examples (#4999) @dependabot
  • Bump amqp-client from 5.14.0 to 5.14.1 in /core (#4997) @dependabot
  • Bump kafka-clients from 3.0.0 to 3.1.0 in /examples (#4998) @dependabot
  • Bump postgresql from 42.3.1 to 42.3.2 in /examples (#4996) @dependabot
  • Bump mockito-core from 4.2.0 to 4.3.1 in /core (#4995) @dependabot
  • Bump postgresql from 42.3.1 to 42.3.2 in /modules/junit-jupiter (#4994) @dependabot
  • Bump slf4j-api from 1.7.32 to 1.7.35 in /core (#4991) @dependabot
  • Bump org.springframework.boot from 2.6.2 to 2.6.3 in /examples (#4992) @dependabot
  • Bump jedis from 4.0.1 to 4.1.1 in /modules/junit-jupiter (#4990) @dependabot
  • Bump transport from 7.16.2 to 7.17.0 in /modules/elasticsearch (#4988) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.137 to 1.12.150 in /modules/localstack (#4989) @dependabot
  • Bump jedis from 4.0.1 to 4.1.1 in /examples (#4986) @dependabot
  • Bump mockito-core from 4.2.0 to 4.3.1 in /modules/junit-jupiter (#4987) @dependabot
  • Bump mysql-connector-java from 8.0.27 to 8.0.28 in /modules/spock (#4985) @dependabot
  • Bump testcontainers from 1.16.2 to 1.16.3 in /core (#4984) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.137 to 1.12.150 in /modules/dynalite (#4980) @dependabot
  • Bump mariadb-java-client from 2.7.4 to 3.0.3 in /modules/mariadb (#4981) @dependabot
  • Bump neo4j-java-driver from 4.4.2 to 4.4.3 in /modules/neo4j (#4977) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.139 to 1.12.150 in /modules/localstack (#4978) @dependabot
  • Bump cucumber-junit from 7.2.2 to 7.2.3 in /examples (#4976) @dependabot
  • Bump tomcat-jdbc from 10.0.14 to 10.0.16 in /modules/jdbc-test (#4973) @dependabot
  • Bump mysql-connector-java from 8.0.27 to 8.0.28 in /modules/junit-jupiter (#4970) @dependabot
  • Bump tomcat-jdbc from 10.0.14 to 10.0.16 in /modules/jdbc (#4967) @dependabot
  • Bump java-client from 3.2.4 to 3.2.5 in /modules/couchbase (#4966) @dependabot

1.16.3

2 years ago

What's Changed

Highlights

Testcontainers 1.16.3 includes many changes, but there are two key highlights in this release:

k3s module (#4582) @rnorth, @kiview

We've had plenty of feedback from users wanting to use Testcontainers to help test Kubernetes components. In particular, this is useful for people developing Kubernetes controllers/operators, who need something more than just a mocked Kubernetes API. In this release we're bringing the k3s module, which gives you a neat way to spin up the K3S lightweight Kubernetes inside of a container. We believe that k3s hits a sweet spot for ease of use and performance, so is a good option for testing Kubernetes components.

Now, launching a lightweight single-node Kubernetes cluster within your tests is easy as:

K3sContainer k3s = new K3sContainer(DockerImageName.parse("rancher/k3s:v1.21.3-k3s1"));
k3s.start();

String kubeConfigYaml = k3s.getKubeConfigYaml();
ApiClient client = Config.fromConfig(new StringReader(kubeConfigYaml));

// now use `client` to talk to your cluster!

Check out the docs to find out more!

Selenium 4 compatibility (#4914) @GannaChernyshova, @tobiasstadler, @kiview, @rnorth

Selenium 4 was announced a while back, but we needed to make some changes to Testcontainers' Selenium/Webdriver module for compatibility. We're happy to announce that these changes have now been made, so you can now use Selenium 4 with Testcontainers!

As part of this upgrade we have to drop compatibility with Selenium 2, but believe that this will not have any practical impact.

πŸš€ Features & Enhancements

  • [Reusable mode] Don't log about starting container unnecessarily (#4844) @pkubowicz
  • Display Ryuk logs when it fails to start (#4842) @vincz7777
  • [couchbase] Explicitly configure service quotas (and allow customizat… (#4802) @daschl
  • removed hardcoded log level setting on mockserver (#4798) @szymonprz
  • [couchbase] Ignore transient primary index creation error. (#4681) @daschl
  • Execute Docker credential program through shell on Windows (#4763) @mruemeli

πŸ› Bug Fixes

  • change external port check to it can timeout and retry (#4680) @kmcgovern-apixio

πŸ“– Documentation

  • Add Gradle Enterprise badge in README (#4850) @jprinet
  • Remove references to Atlassian for LocalStack (#4796) @HarshCasper
  • Update sponsors as of Dec 2021 (#4806) @rnorth
  • Use a relative path to the Selenium module (#4700) @bsideup
  • Add link to webdrivers module (#4699) @brunoborges
  • jdbc.md: Fix typo (#4678) @perlun
  • Fix Documentation not displaying properly for 'Docker wormhole pattern' (#4658) @wimdeblauwe

🧹 Housekeeping

  • Replace jcenter with mavenCentral in all examples (#4931) @kiview
  • Update dependabot rules for new modules (#4864) @rnorth
  • Tweak logging around reusable mode (#4858) @rnorth
  • Add GE remote cache to examples project (#4855) @kiview
  • Increase AzureCI timeout to 120 minutes instead of using the default of 60 minutes (#4854) @kiview
  • Reinstate usage of READ_ONLY_REMOTE_GRADLE_CACHE to avoid wrong cache hits (#4853) @kiview
  • Gradle Enterprise Trial (#4705) @kiview
  • Update GE plugin in examples to 3.6.1 (#4672) @kiview
  • Use key=value format for GRADLE_ENTERPRISE_ACCESS_KEY value (#4671) @kiview
  • Add Gradle Enterprise (#4057) @kiview
  • Use automated PR to update docs version (#4606) @rnorth
  • Add Thundra test summary badge to README (#4604) @rwxdash

πŸ“¦ Dependency updates

Click to expand...
  • Bump actions/cache from 2.1.6 to 2.1.7 (#4757) @dependabot
  • Bump actions/setup-java from 2.3.1 to 2.4.0 (#4756) @dependabot
  • Bump actions/setup-java from 2.4.0 to 2.5.0 (#4832) @dependabot
  • Bump amqp-client from 5.13.1 to 5.14.0 in /core (#4745) @dependabot
  • Bump amqp-client from 5.7.0 to 5.14.0 in /modules/rabbitmq (#4889) @dependabot
  • Bump amqp-client from 5.7.0 to 5.14.0 in /modules/rabbitmq (#4889) @dependabot
  • Bump annotations from 20.0.0 to 23.0.0 in /modules/presto (#4880) @dependabot
  • Bump annotations from 20.0.0 to 23.0.0 in /modules/presto (#4880) @dependabot
  • Bump annotations from 20.0.0 to 23.0.0 in /modules/rabbitmq (#4894) @dependabot
  • Bump annotations from 20.0.0 to 23.0.0 in /modules/rabbitmq (#4894) @dependabot
  • Bump annotations from 20.0.0 to 23.0.0 in /modules/trino (#4892) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /core (#4747) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /examples (#4753) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/jdbc (#4726) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/mysql (#4738) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/nginx (#4733) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/oracle-xe (#4725) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/postgresql (#4719) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/selenium (#4718) @dependabot
  • Bump annotations from 22.0.0 to 23.0.0 in /modules/spock (#4723) @dependabot
  • Bump assertj-core from 3.12.0 to 3.22.0 in /modules/orientdb (#4897) @dependabot
  • Bump assertj-core from 3.12.2 to 3.22.0 in /modules/rabbitmq (#4898) @dependabot
  • Bump assertj-core from 3.14.0 to 3.22.0 in /modules/r2dbc (#4900) @dependabot
  • Bump assertj-core from 3.15.0 to 3.22.0 in /modules/azure (#4870) @dependabot
  • Bump assertj-core from 3.15.0 to 3.22.0 in /modules/azure (#4870) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /core (#4874) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /examples (#4896) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/database-commons (#4867) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/jdbc (#4866) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/junit-jupiter (#4869) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/kafka (#4873) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/neo4j (#4876) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/pulsar (#4893) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/pulsar (#4893) @dependabot
  • Bump assertj-core from 3.21.0 to 3.22.0 in /modules/vault (#4878) @dependabot
  • Bump auto-service from 1.0 to 1.0.1 in /modules/mariadb (#4720) @dependabot
  • Bump auto-service from 1.0 to 1.0.1 in /modules/mssqlserver (#4728) @dependabot
  • Bump auto-service from 1.0 to 1.0.1 in /modules/mysql (#4730) @dependabot
  • Bump auto-service from 1.0 to 1.0.1 in /modules/postgresql (#4740) @dependabot
  • Bump auto-service from 1.0-rc6 to 1.0.1 in /modules/r2dbc (#4909) @dependabot
  • Bump awaitility from 4.1.0 to 4.1.1 in /core (#4640) @dependabot
  • Bump awaitility from 4.1.0 to 4.1.1 in /modules/couchbase (#4622) @dependabot
  • Bump awaitility from 4.1.0 to 4.1.1 in /modules/couchbase (#4622) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.100 to 1.12.122 in /modules/dynalite (#4734) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.122 to 1.12.131 in /modules/dynalite (#4820) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.131 to 1.12.137 in /modules/dynalite (#4871) @dependabot
  • Bump aws-java-sdk-dynamodb from 1.12.60 to 1.12.100 in /modules/dynalite (#4621) @dependabot
  • Bump aws-java-sdk-logs from 1.12.119 to 1.12.122 in /modules/localstack (#4750) @dependabot
  • Bump aws-java-sdk-logs from 1.12.122 to 1.12.132 in /modules/localstack (#4849) @dependabot
  • Bump aws-java-sdk-logs from 1.12.132 to 1.12.139 in /modules/localstack (#4919) @dependabot
  • Bump aws-java-sdk-logs from 1.12.132 to 1.12.139 in /modules/localstack (#4919) @dependabot
  • Bump aws-java-sdk-logs from 1.12.60 to 1.12.100 in /modules/localstack (#4641) @dependabot
  • Bump aws-java-sdk-logs from 1.12.60 to 1.12.119 in /modules/localstack (#4710) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.100 to 1.12.122 in /modules/localstack (#4746) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.122 to 1.12.131 in /modules/localstack (#4827) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.131 to 1.12.137 in /modules/localstack (#4904) @dependabot
  • Bump aws-java-sdk-s3 from 1.12.80 to 1.12.100 in /modules/localstack (#4618) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.100 to 1.12.122 in /modules/localstack (#4735) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.100 to 1.12.124 in /modules/localstack (#4766) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.124 to 1.12.131 in /modules/localstack (#4825) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.131 to 1.12.137 in /modules/localstack (#4895) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.131 to 1.12.139 in /modules/localstack (#4920) @dependabot
  • Bump aws-java-sdk-sqs from 1.12.82 to 1.12.100 in /modules/localstack (#4633) @dependabot
  • Bump azure-cosmos from 4.16.0 to 4.24.0 in /modules/azure (#4877) @dependabot
  • Bump clickhouse-jdbc from 0.3.1-patch to 0.3.2 in /modules/clickhouse (#4813) @dependabot
  • Bump com.gradle.enterprise.gradle.plugin from 3.7.2 to 3.8 in /examples (#4836) @dependabot
  • Bump cucumber-java from 6.11.0 to 7.1.0 in /examples (#4709) @dependabot
  • Bump cucumber-java from 7.1.0 to 7.2.2 in /examples (#4907) @dependabot
  • Bump cucumber-java from 7.1.0 to 7.2.2 in /examples (#4907) @dependabot
  • Bump cucumber-junit from 6.11.0 to 7.0.0 in /examples (#4650) @dependabot
  • Bump cucumber-junit from 7.0.0 to 7.1.0 in /examples (#4748) @dependabot
  • Bump cucumber-junit from 7.1.0 to 7.2.2 in /examples (#4911) @dependabot
  • Bump elasticsearch-rest-client from 7.15.0 to 7.15.1 in /modules/elasticsearch (#4625) @dependabot
  • Bump elasticsearch-rest-client from 7.15.0 to 7.15.2 in /modules/elasticsearch (#4707) @dependabot
  • Bump elasticsearch-rest-client from 7.15.2 to 7.16.2 in /modules/elasticsearch (#4823) @dependabot
  • Bump google-cloud-bigtable from 2.4.0 to 2.5.1 in /modules/gcloud (#4879) @dependabot
  • Bump google-cloud-bigtable from 2.4.0 to 2.5.1 in /modules/gcloud (#4879) @dependabot
  • Bump google-cloud-datastore from 2.2.1 to 2.2.2 in /modules/gcloud (#4872) @dependabot
  • Bump google-cloud-firestore from 3.0.9 to 3.0.10 in /modules/gcloud (#4875) @dependabot
  • Bump google-cloud-pubsub from 1.115.0 to 1.115.1 in /modules/gcloud (#4890) @dependabot
  • Bump google-cloud-spanner from 6.17.3 to 6.17.4 in /modules/gcloud (#4901) @dependabot
  • Bump gradle-update/update-gradle-wrapper-action from 1.0.15 to 1.0.16 (#4829) @dependabot
  • Bump gson from 2.8.8 to 2.8.9 in /examples (#4651) @dependabot
  • Bump java-client from 3.2.1 to 3.2.2 in /modules/couchbase (#4636) @dependabot
  • Bump java-client from 3.2.2 to 3.2.3 in /modules/couchbase (#4724) @dependabot
  • Bump java-client from 3.2.3 to 3.2.4 in /modules/couchbase (#4815) @dependabot
  • Bump jcc from 11.5.0.0 to 11.5.7.0 in /modules/db2 (#4865) @dependabot
  • Bump jedis from 3.0.1 to 4.0.1 in /modules/toxiproxy (#4828) @dependabot
  • Bump jedis from 3.7.0 to 4.0.1 in /core (#4822) @dependabot
  • Bump jedis from 3.7.0 to 4.0.1 in /examples (#4835) @dependabot
  • Bump jedis from 3.7.0 to 4.0.1 in /modules/junit-jupiter (#4814) @dependabot
  • Rollback jedis to 3.0.1 (#4852) @kiview
  • Bump json from 20210307 to 20211205 in /examples (#4838) @dependabot
  • Bump junit-jupiter-api from 5.8.1 to 5.8.2 in /modules/junit-jupiter (#4722) @dependabot
  • Bump junit-jupiter-engine from 5.8.1 to 5.8.2 in /modules/junit-jupiter (#4743) @dependabot
  • Bump junit-jupiter-params from 5.8.1 to 5.8.2 in /modules/junit-jupiter (#4742) @dependabot
  • Bump logback-classic from 1.2.6 to 1.2.7 in /examples (#4754) @dependabot
  • Bump logback-classic from 1.2.7 to 1.2.10 in /examples (#4831) @dependabot
  • Bump lombok from 1.18.20 to 1.18.22 in /examples (#4649) @dependabot
  • Bump mkdocs from 1.0.4 to 1.2.3 (#4771) @dependabot
  • Bump mockito-core from 3.12.4 to 4.0.0 in /core (#4632) @dependabot
  • Bump mockito-core from 3.12.4 to 4.1.0 in /modules/junit-jupiter (#4706) @dependabot
  • Bump mockito-core from 4.0.0 to 4.1.0 in /core (#4731) @dependabot
  • Bump mockito-core from 4.1.0 to 4.2.0 in /core (#4819) @dependabot
  • Bump mockito-core from 4.1.0 to 4.2.0 in /modules/junit-jupiter (#4821) @dependabot
  • Bump mongodb-driver-sync from 4.0.2 to 4.4.1 in /modules/mongodb (#4888) @dependabot
  • Bump mssql-jdbc from 9.4.0.jre8 to 9.5.0.jre8-preview in /modules/mssqlserver (#4739) @dependabot
  • Bump mysql-connector-java from 8.0.26 to 8.0.27 in /modules/jdbc-test (#4628) @dependabot
  • Bump mysql-connector-java from 8.0.26 to 8.0.27 in /modules/junit-jupiter (#4630) @dependabot
  • Bump mysql-connector-java from 8.0.26 to 8.0.27 in /modules/junit-jupiter (#4630) @dependabot
  • Bump mysql-connector-java from 8.0.26 to 8.0.27 in /modules/mysql (#4617) @dependabot
  • Bump mysql-connector-java from 8.0.26 to 8.0.27 in /modules/spock (#4623) @dependabot
  • Bump neo4j from 3.5.9 to 3.5.29 in /modules/neo4j (#4616) @dependabot
  • Bump okhttp from 4.9.2 to 4.9.3 in /examples (#4749) @dependabot
  • Bump org.jetbrains.kotlin.jvm from 1.5.31 to 1.6.0 in /examples (#4759) @dependabot
  • Bump org.jetbrains.kotlin.jvm from 1.6.0 to 1.6.10 in /examples (#4839) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.5.31 to 1.6.0 in /examples (#4737) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.5.31 to 1.6.0 in /examples (#4737) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.6.0 to 1.6.10 in /examples (#4833) @dependabot
  • Bump org.jetbrains.kotlin.plugin.spring from 1.6.0 to 1.6.10 in /examples (#4833) @dependabot
  • Bump org.springframework.boot from 2.5.5 to 2.5.6 in /examples (#4653) @dependabot
  • Bump org.springframework.boot from 2.5.6 to 2.6.1 in /examples (#4752) @dependabot
  • Bump org.springframework.boot from 2.5.6 to 2.6.1 in /examples (#4752) @dependabot
  • Bump org.springframework.boot from 2.6.1 to 2.6.2 in /examples (#4837) @dependabot
  • Bump org.springframework.boot from 2.6.1 to 2.6.2 in /examples (#4837) @dependabot
  • Bump peter-evans/create-pull-request from 3.11.0 to 3.12.0 (#4834) @dependabot
  • Bump peter-evans/create-pull-request from 3c3d696d5b8aa2eb0e70f76c251e4b149122acf1 to 3.11.0 (#4755) @dependabot
  • Bump postgresql from 42.2.12 to 42.3.1 in /modules/cockroachdb (#4868) @dependabot
  • Bump postgresql from 42.2.24 to 42.3.1 in /examples (#4648) @dependabot
  • Bump postgresql from 42.2.24 to 42.3.1 in /modules/junit-jupiter (#4643) @dependabot
  • Bump postgresql from 42.2.24 to 42.3.1 in /modules/postgresql (#4620) @dependabot
  • Bump postgresql from 42.2.24 to 42.3.1 in /modules/spock (#4629) @dependabot
  • Bump presto-jdbc from 331 to 350 in /modules/presto (#4887) @dependabot
  • Bump pulsar-client from 2.7.2 to 2.7.3 in /modules/pulsar (#4627) @dependabot
  • Bump pulsar-client from 2.7.3 to 2.7.4 in /modules/pulsar (#4902) @dependabot
  • Bump pulsar-client-admin from 2.7.2 to 2.7.3 in /modules/pulsar (#4638) @dependabot
  • Bump pulsar-client-admin from 2.7.3 to 2.7.4 in /modules/pulsar (#4882) @dependabot
  • Bump r2dbc-postgresql from 0.8.1.RELEASE to 0.8.11.RELEASE in /modules/r2dbc (#4921) @dependabot
  • Bump r2dbc-postgresql from 0.8.8.RELEASE to 0.8.11.RELEASE in /modules/postgresql (#4918) @dependabot
  • Bump reactor-core from 3.3.4.RELEASE to 3.4.14 in /modules/r2dbc (#4883) @dependabot
  • Bump s3 from 2.17.102 to 2.17.108 in /modules/localstack (#4908) @dependabot
  • Bump s3 from 2.17.52 to 2.17.72 in /modules/localstack (#4646) @dependabot
  • Bump s3 from 2.17.72 to 2.17.102 in /modules/localstack (#4824) @dependabot
  • Bump snakeyaml from 1.29 to 1.30 in /core (#4826) @dependabot
  • Bump solr-solrj from 8.10.0 to 8.10.1 in /examples (#4644) @dependabot
  • Bump solr-solrj from 8.10.1 to 8.11.1 in /examples (#4830) @dependabot
  • Bump solr-solrj from 8.3.0 to 8.11.1 in /modules/solr (#4906) @dependabot
  • Bump testcontainers from 1.16.0 to 1.16.2 in /core (#4619) @dependabot
  • Bump testng from 7.4.0 to 7.5 in /examples (#4899) @dependabot
  • Bump tomcat-jdbc from 10.0.12 to 10.0.13 in /modules/jdbc (#4736) @dependabot
  • Bump tomcat-jdbc from 10.0.12 to 10.0.13 in /modules/jdbc-test (#4721) @dependabot
  • Bump tomcat-jdbc from 10.0.12 to 10.0.14 in /modules/jdbc (#4775) @dependabot
  • Bump tomcat-jdbc from 10.0.13 to 10.0.14 in /modules/jdbc-test (#4812) @dependabot
  • Bump toxiproxy-java from 2.1.4 to 2.1.5 in /modules/toxiproxy (#4654) @dependabot
  • Bump transport from 7.15.0 to 7.15.1 in /modules/elasticsearch (#4637) @dependabot
  • Bump transport from 7.15.1 to 7.15.2 in /modules/elasticsearch (#4727) @dependabot
  • Bump transport from 7.15.2 to 7.16.2 in /modules/elasticsearch (#4818) @dependabot
  • Bump transport from 7.15.2 to 7.16.2 in /modules/elasticsearch (#4818) @dependabot
  • Bump trino-jdbc from 352 to 367 in /modules/trino (#4885) @dependabot
  • Update Gradle Wrapper to 7.3.3 (#4800) @github-actions
  • Update Gradle Wrapper to 7.3.1 (#4761) @github-actions
  • Bump up Gradle plugin dependencies (#4926) @jprinet
  • Fixes #4856 - update gCloud dependencies (#4857) @ddobrin
  • Upgrade Neo4j server and driver dependencies. (#4789) @meistermeier
  • Use jackson 2.8.8 in k3s module (#4928) @kiview