Skip to content

Releases: testcontainers/testcontainers-java

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)

1.7.0

07 Apr 17:30
Compare
Choose a tag to compare

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

This release brings:

  • Maven BOM support (org.testcontainers:testcontainers-bom:1.7.0)
  • DockerCompose improvements: waiting strategies, log consumers, better defaults
  • Various JDBC improvements
  • Docker's built-in healthcheck support with DockerHealthcheckWaitStrategy
  • Auto detection of classpath's Selenium 3.x version

Changed

  • Added compatibility with selenium greater than 3.X (#611)
  • Abstracted and changed database init script functionality to support use of SQL-like scripts with non-JDBC connections. (#551)
  • Added JdbcDatabaseContainer(Future) constructor. (#543)
  • Mark DockerMachineClientProviderStrategy as not persistable (#593)
  • Added waitingFor(String serviceName, WaitStrategy waitStrategy) and overloaded withExposedService() methods to DockerComposeContainer to allow user to define WaitStrategy for compose containers. (#174, #515 and (#600))
  • Deprecated WaitStrategy and implementations in favour of classes with same names in org.testcontainers.containers.strategy (#600)
  • Added ContainerState interface representing the state of a started container (#600)
  • Added WaitStrategyTarget interface which is the target of the new WaitStrategy (#600)
  • Breaking: Removed hard-coded wnameless Oracle database image name. Users should instead place a file on the classpath named testcontainers.properties containing oracle.container.image=IMAGE, where IMAGE is a suitable image name and tag/SHA hash. For information, the approach recommended by Oracle for creating an Oracle XE docker image is described here.
  • Added DockerHealthcheckWaitStrategy that is based on Docker's built-in healthcheck (#618).
  • Added withLogConsumer(String serviceName, Consumer<OutputFrame> consumer) method to DockerComposeContainer (#605)

Fixed

  • Fixed extraneous insertion of useSSL=false in all JDBC URL strings, even for DBs that do not understand it. Usage is now restricted to MySQL by default and can be overridden by authors of JdbcDatabaseContainer subclasses (#568)
  • Fixed getServicePort on DockerComposeContainer throws NullPointerException if service instance number in not used. (#619)
  • Increase Ryuk's timeout and make it configurable with ryuk.container.timeout. (#621#635)

1.6.0

29 Jan 08:06
Compare
Choose a tag to compare

Fixed

  • Fixed incompatibility of Docker-Compose container with JDK9. (#562)
  • Fixed retrieval of Docker host IP when running inside Docker. (#479)
  • Compose is now able to pull images from private repositories. (#536)
  • Fixed overriding MySQL image command. (#534)
  • Fixed shading for javax.annotation.CheckForNull (#563 and testcontainers/testcontainers-scala#11).

Changed

  • Added JDK9 build and tests to Travis-CI. (#562)
  • Added Kafka module (#546)
  • Added "Death Note" to track & kill spawned containers even if the JVM was "kill -9"ed (#545)
  • Environment variables are now stored as Map instead of List (#550)
  • Added withEnv(String name, Function<Optional<String>, String> mapper) with optional previous value (#550)
  • Added withFileSystemBind overloaded method with READ_WRITE file mode by default (#550)
  • All connections to JDBC containers (e.g. MySQL) don't use SSL anymore. (#374)

1.5.1

19 Dec 12:36
Compare
Choose a tag to compare
Update changelog for 1.5.1 release

1.5.0

12 Dec 19:53
Compare
Choose a tag to compare
Update changelog for 1.5.0 release

1.4.3

14 Oct 12:27
Compare
Choose a tag to compare
Update changelog for release