Releases: testcontainers/testcontainers-java
1.9.0-rc1
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_FAILINGmode (#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
Fixed
- Fixed
with*methods ofCouchbaseContainer(#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
1.8.1
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_FILEenvironment 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
1.8.0
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
latesttag as default image tag (#676)
Changed
- Allow
HttpWaitStrategyto wait for a specific port (#703) - New module: Apache Pulsar (#713)
- Add support for defining container labels (#725)
- Use
quay.io/testcontainers/ryukinstead ofbsideup/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 existingnewInstance(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)
- Extracted JDBC URL manipulations to a separate class -
- Changed internal port of KafkaContainer back to 9092 (#733)
- Add support for Dockerfile based images to OracleContainer (#734)
- Read from both
/proc/net/tcpand/proc/net/tcp6inInternalCommandPortListeningCheck(#750) - Added builder methods for timeouts in
JdbcDatabaseContainer(#748) - Added an alternative experimental transport based on OkHttp. Enable it with
transport.type=okhttpproperty (#710) - Framework-agnostic container & test lifecycle (#702)
1.7.3
https://github.com/testcontainers/testcontainers-java/milestone/34
Fixed
- Fix for setting
ryuk.container.timeoutcauses aClassCastException(#684) - Fixed provided but shaded dependencies in modules (#693)
Changed
1.7.2
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
https://github.com/testcontainers/testcontainers-java/milestone/32?closed=1
Fixed
- Fixed missing
commons-codecdependency (#642) - Fixed
HostPortWaitStrategythrowsNumberFormatExceptionwhen 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
1.7.0
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 overloadedwithExposedService()methods toDockerComposeContainerto allow user to defineWaitStrategyfor compose containers. (#174, #515 and (#600)) - Deprecated
WaitStrategyand implementations in favour of classes with same names inorg.testcontainers.containers.strategy(#600) - Added
ContainerStateinterface representing the state of a started container (#600) - Added
WaitStrategyTargetinterface which is the target of the newWaitStrategy(#600) - Breaking: Removed hard-coded
wnamelessOracle database image name. Users should instead place a file on the classpath namedtestcontainers.propertiescontainingoracle.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
DockerHealthcheckWaitStrategythat is based on Docker's built-in healthcheck (#618). - Added
withLogConsumer(String serviceName, Consumer<OutputFrame> consumer)method toDockerComposeContainer(#605)
Fixed
- Fixed extraneous insertion of
useSSL=falsein 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 ofJdbcDatabaseContainersubclasses (#568) - Fixed
getServicePortonDockerComposeContainerthrows 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
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
withFileSystemBindoverloaded method withREAD_WRITEfile mode by default (#550) - All connections to JDBC containers (e.g. MySQL) don't use SSL anymore. (#374)