Skip to content

Releases: testcontainers/testcontainers-java

1.9.0

23 Sep 20:09
Compare
Choose a tag to compare

🎉 1.9.0 is here and it's a big release! 🎉

Many bugs were squashed, and we have some awesome new features for you. As always, thanks so much to our growing list of amazing contributors! Everybody on this list deserves thanks (and beers!).

Here are some highlights of the 1.9.0 release:

A vastly improved way to expose host ports to containers ✨

It's similar to host.docker.internal, except this should work anywhere that Testcontainers works. It's like magic:

// tell Testcontainers which host ports to expose to your containers
Testcontainers.exposeHostPorts(someHostPortNumber);

// later, just give your container this address to use to reach back to the host:
address = "http://host.testcontainers.internal:" + someHostPortNumber;

For a more complete example see here.

Npipe support for Docker on Windows 🎈

Testcontainers now uses OkHttp by default to talk to Docker, with Npipe support. This means no more need to configure Docker for Windows to use TCP mode.

Many improvements to registry authentication 🔑

Support for Docker credential stores/credential helpers has continued to be improved, and is now supported on Windows!

Many updates and improvements to the Couchbase module 🎊

And lots, lots more:

What's Changed

Changed

  • Switch to OkHttp as default transport (#853) @bsideup
  • Add cross-platform support for exposing host ports to containers using SSH port forwarding (#806) @bsideup
  • Add ClickHouse module (#846) @VladRassokhin
  • Allow Couchbase container to support random ports using socat sidecar container (#815) @Kaidowei
  • Add support to override default username and password in Oracle XE container (#823) @kiptix
  • Docs: Added example of using Kafka Test Containers (#840) @iNikem
  • Tests: replace boolean parameters with EnumSet in JDBCDriverTest (#849) @VladRassokhin
  • Improve copyFileToContainer support (#829) @bsideup
  • Allow specifying the rate limiter for AbstractWaitStrategy (#838, #837) @chibenwa
  • Make MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD the same value (#857) @dougEfresh
  • Update mockserver to 5.4.1 (#832) @lanwen
  • Update Pulsar to 2.1.0 (#824) @haphut
  • Update CouchbaseContainer to 5.1.1 (#830) @Kaidowei
  • Update docker-java to 3.1.0-rc4 (fixes support for identitytoken auth - #293)
  • Add support for Postgis to JDBC driver (#864) @kiview
  • Update Pulsar Container (#858) @aahmed-se
  • Mark Windows npipe support as stable (with a fix) (#865) @bsideup
  • Enable RegistryAuthLocator for Windows, improve, and add Windows test coverage (#868) @aulea
  • Remove Netty classes from OkHttpInvocationBuilder (#869) @bsideup
  • Update Pulsar to 2.1.1 (#874) @haphut
  • Check FS mounting lazily (#875) @bsideup
  • Allow configuration of user settings to support couchbase community version (#777) @kstrek

Fixed

  • Improve support for docker registry authentication and docker hub private registry credentials (#845) @rnorth
  • Fix NginxContainer wait behaviour (#818) @rnorth
  • Fix inverted logic in Selenium module - ensures that correct sessions are captured when using RECORD_FAILING mode (#821) @bsideup
  • Fix deadlock when ryuk does not acknowledge filters (#843) @thammerl
  • Various CouchbaseContainer fixes (#830) @Kaidowei
  • CouchbaseContainer: Fix java.net.SocketException exception in stop() (#859) @dnault
  • Fix UnixDomainSocketInitializer to use configured docker host in connect() (#855) @aantoniadisatypon
  • Fix local docker-compose support on Windows10 (#863) @kiview
  • MockServerContainer: remove dependency to java api (#833) @lanwen
  • Guard against potential NPE if startup fails before container creation (#876) @rnorth
  • Remove unnecessary start() call in initCouchbaseContainer() method - improves stability of tests based on AbstractCouchbaseTest (#877) @kiview

1.9.0-rc2

21 Sep 07:25
75e0ee4
Compare
Choose a tag to compare

What's Changed

Changed

  • Add support for Postgis to JDBC driver (#864) @kiview
  • Update Pulsar Container (#858) @aahmed-se
  • Mark Windows npipe support as stable (with a fix) (#865) @bsideup
  • Enable RegistryAuthLocator for Windows, improve, and add Windows test coverage (#868) @aulea
  • Remove Netty classes from OkHttpInvocationBuilder (#869) @bsideup

Fixed

  • Fix local docker-compose support on Windows10 (#863) @kiview
  • MockServerContainer: remove dependency to java api (#833) @lanwen

1.9.0-rc1

09 Sep 20:40
d127fd7
Compare
Choose a tag to compare

Please note: this release candidate build is not published to Maven Central, but is published to Bintray.

What's Changed

Changed

  • Switch to OkHttp as default transport (with opt-inable Npipe support) (#853) @bsideup
  • Add cross-platform support for exposing host ports to containers using SSH port forwarding (#806) @bsideup
  • Add ClickHouse module (#846) @VladRassokhin
  • Allow Couchbase container to support random ports using socat sidecar container (#815) @Kaidowei
  • Add support to override default username and password in Oracle XE container (#823) @kiptix
  • Docs: Added example of using Kafka Test Containers (#840) @iNikem
  • Tests: replace boolean parameters with EnumSet in JDBCDriverTest (#849) @VladRassokhin
  • Improve copyFileToContainer support (#829) @bsideup
  • Allow specifying the rate limiter for AbstractWaitStrategy (#838, #837) @chibenwa
  • Make MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD the same value (#857) @dougEfresh
  • Update mockserver to 5.4.1 (#832) @lanwen
  • Update Pulsar to 2.1.0 (#824) @haphut
  • Update CouchbaseContainer to 5.1.1 (#830) @Kaidowei
  • Update docker-java to 3.1.0-rc4 (fixes support for identitytoken auth - #293)

Fixed

  • Improve support for docker registry authentication and docker hub private registry credentials (#845) @rnorth
  • Fix NginxContainer wait behaviour (#818) @rnorth
  • Fix inverted logic in Selenium module - ensures that correct sessions are captured when using RECORD_FAILING mode (#821) @bsideup
  • Fix deadlock when ryuk does not acknowledge filters (#843) @thammerl
  • Various CouchbaseContainer fixes (#830) @Kaidowei
  • CouchbaseContainer: Fix java.net.SocketException exception in stop() (#859) @dnault
  • Fix UnixDomainSocketInitializer to use configured docker host in connect() (#855) @aantoniadisatypon

1.8.3

05 Aug 20:59
Compare
Choose a tag to compare

Fixed

  • Fixed with* methods of CouchbaseContainer (#810)
  • Fix problem with gzip encoded streams (e.g. copy file from container), by adding decompression support to netty exec factory (#817, fixes #681, relates to docker-java/docker-java#1079)

1.8.2

31 Jul 07:21
e1bf156
Compare
Choose a tag to compare

Fixed

  • Add support for transparently using local images with docker-compose (#798, fixes #674)
  • Fix bug with Dockerfile image creation with Docker for Mac 18.06-ce (#808, fixes #680)

Changed

  • Update Visible Assertions to 2.1.1 (#779).
  • KafkaContainer optimization (group.initial.rebalance.delay.ms=0) (#782).

1.8.1

10 Jul 21:13
Compare
Choose a tag to compare

We fixed some bugs! 🐞

We added a few new features!

🥇 Apache Cassandra module
🎈 Support for Docker credential helpers, for pulling images from private registries (Linux/Mac only right now)
👍 and several other changes

As always, thanks to everyone who contributed to this release - you're awesome 😍

Fixed

  • Linux/Mac: Added support for docker credential helpers so that images may be pulled from private registries. See #729, #647 and #567.
  • Ensure that the COMPOSE_FILE environment variable is populated with all relevant compose file names when running docker-compose in local mode #755.
  • Fixed issue whereby specified command in MariaDB image was not being applied. (#534)
  • Changed Oracle thin URL to support both Oracle 11 and 12 XE (#769)
  • Ensure that full JDBC URL query string is passed to JdbcDatabaseDelegate during initscript invocation (#741; fixes #727)
  • Ensure that necessary transitive dependency inclusions are applied to generated project POMs (#772; fixes #753 and #652)

Changed

  • Update Apache Pulsar module to 2.0.1 #760.
  • Make JdbcDatabaseContainer#getDriverClassName public #743.
  • enable copyFileToContainer feature during container startup #742.
  • avoid using file mounting in KafkaContainer #775.
  • Added Apache Cassandra module #776.

1.8.0

14 Jun 12:44
Compare
Choose a tag to compare

This release brings some awesome new features:

  • 🎉 Apache Pulsar and Couchbase modules!
  • 🎊 An experimental OkHttp transport for docker-java!
  • 😍 Abstractions to make wider test framework support much easier!

In addition, there are numerous fixes for general container usage and database containers. Thank you to all the contributors to this release. Please check out the full list!

Fixed

  • Fixed JDBC URL Regex Pattern to ensure all supported Database URL's are accepted (#596)
  • Filtered out TestContainer parameters (TC_*) from query string before passing to database (#345)
  • Use latest tag as default image tag (#676)

Changed

  • Allow HttpWaitStrategy to wait for a specific port (#703)
  • New module: Apache Pulsar (#713)
  • Add support for defining container labels (#725)
  • Use quay.io/testcontainers/ryuk instead of bsideup/ryuk (#721)
  • Added Couchbase module (#688)
  • Enhancements and Fixes for JDBC URL usage to create Containers (#594)
    • Extracted JDBC URL manipulations to a separate class - ConnectionUrl.
    • Added an overloaded method JdbcDatabaseContainerProvider.newInstance(ConnectionUrl), with default implementation delegating to the existing newInstance(tag) method. (Relates to #566)
    • Added an implementation of MySQLContainerProvider.newInstance(ConnectionUrl) that uses Database Name, User, and Password from JDBC URL while creating new MySQL Container. (#566 for MySQL Container)
  • Changed internal port of KafkaContainer back to 9092 (#733)
  • Add support for Dockerfile based images to OracleContainer (#734)
  • Read from both /proc/net/tcp and /proc/net/tcp6 in InternalCommandPortListeningCheck (#750)
  • Added builder methods for timeouts in JdbcDatabaseContainer (#748)
  • Added an alternative experimental transport based on OkHttp. Enable it with transport.type=okhttp property (#710)
  • Framework-agnostic container & test lifecycle (#702)

1.7.3

16 May 20:36
02e38b4
Compare
Choose a tag to compare

https://github.com/testcontainers/testcontainers-java/milestone/34

Fixed

  • Fix for setting ryuk.container.timeout causes a ClassCastException (#684)
  • Fixed provided but shaded dependencies in modules (#693)

Changed

  • Added InfluxDB module (#686)
  • Added MockServer module (#696)
  • Changed LocalStackContainer to extend GenericContainer (#695)

1.7.2

30 Apr 16:09
Compare
Choose a tag to compare

https://github.com/testcontainers/testcontainers-java/milestone/33?closed=1

Fixed

  • Retry any exceptions (not just DockerClientException) on image pull (#662)
  • Fixed handling of the paths with + in them (#664)

Changed

  • Database container images are now pinned to a specific version rather than using latest. The tags selected are the most recent as of the time of this change. If a JDBC URL is used with no tag specified, a WARN level log message is output, pending a future change to make tags mandatory in the JDBC URL. (#671)
  • Updated docker-java to 3.1.0-rc-3, enforced org.jetbrains:annotations:15.0. (#672)

1.7.1

20 Apr 08:29
Compare
Choose a tag to compare

https://github.com/testcontainers/testcontainers-java/milestone/32?closed=1

Fixed

  • Fixed missing commons-codec dependency (#642)
  • Fixed HostPortWaitStrategy throws NumberFormatException when port is exposed but not mapped (#640)
  • Fixed log processing: multibyte unicode, linebreaks and ASCII color codes. Color codes can be turned on with withRemoveAnsiCodes(false) (#643)
  • Fixed Docker host IP detection within docker container (detect only if not explicitly set) (#648)

Changed

  • Support multiple HTTP status codes for HttpWaitStrategy (#630)
  • Mark all long-living threads started by Testcontainers as daemons and group them. (#646)
  • Remove noisy DEBUG logging of Netty packets (#646)
  • Updated docker-java to 3.1.0-rc-2 (#646)