Please enumerate all user-facing changes using format <githib issue/pr number>: <short description>, with changes ordered in reverse chronological order.
- #544: Replace Keytool certificate generator by netty certificate builder
- This release deprecates the
KeytoolCertificateGeneratorclass. UseKeystoreManagerinstead.
- #519: Enable Users to customize automatically created Topic names
- #474: Remove deprecated @SaslPlainAuth annotation
- #501: Upgrade to Kafka 4.1.0
- This release removes the
@SaslPlainAuthannotation that was deprecated at 0.9.0. Users should switch to using the general@SaslMechanism, which supports authentication several SASL mechanisms. - This release changes the images used with testcontainers mode from 'quay.io/ogunalp/kafka-native'
native images to Apache Kafka JRE-based images. If you target a kafka version less-than to 4.1.0, then
the old images will be uses. If you target a kafka version greater-than-or-equal-to 4.1.0, then an
apache image will be used. Images will be pulled from
mirror.gcr.io/apache/kafka, this value can be overridden by setting theAPACHE_KAFKA_IMAGE_REPOenvironment variable. - Introduces the
@TopicNameMethodSourceannotation. If users need to control the naming of automatically created topics, then they can annotate their Topic parameter or field with a reference to a static no-args method that returns String. This method will be invoked by the extension to obtain the name for the topic. This allows you to precisely control the characters used and length of the name, or add a prefix to the topic names for a test.
- This release introduces support for Kafka 4.0.0. The extension continues to support earlier versions of Kafka and continues to support the creation of Kafka clusters with Zookeeper controllers when using a Kafka version < 4.0.
- #419: Refactor endpoint creation and allow client connections to be formed to controllers in container mode.
- #417: Bump kafka.version from 3.8.0 to 3.9.0
- #365: Bump kafka.version from 3.7.1 to 3.8.0
- #355: Changes for Kafka 3.8.0 compatibility
- #322: Allow test Kafka Clusters to use SASL SCRAM-SHA and OAUTH bearer
- #289: Bump org.testcontainers:testcontainers-bom from 1.19.6 to 1.19.7
- #283: Bump kafka.version from 3.6.1 to 3.7.0.
- For SCRAM support in KRaft mode, the Kafka Broker must be 3.5 or above and it must use storage format IBP_3_5_IV2 or higher. If using CONTAINER mode, be aware that support for this combination was introduced in kafka-native 0.9.0.
- In KRaft mode, the metadata storage format used by the test clusters defaults to
MetadataVersion.LATEST_PRODUCTIONrather thanMINIMUM_BOOTSTRAP_VERSIONas was the case in previous releases. To get back the old behaviour, override theinter.broker.protocol.versionbroker configuration option and set the desired version. This config option also controls the metadata storage format when the storage is formatted for the first time. - This release deprecates the
@SaslPlainAuthannotation. Use@SaslMechanisminstead.
- #262: Support embedding a 3.7 broker
- #250: Bump Apache Kafka to 3.6.1
- #248: Allow user to bring their own test templating when using KafkaClusterExtension
- #244: Bump org.testcontainers:testcontainers-bom from 1.19.2 to 1.19.3
- #221: Add ability to inject test topics into tests #229
- #231: Bump org.testcontainers:testcontainers-bom from 1.19.1 to 1.19.2
- #219: Allow kafka configuration to be provided for Producers, Consumer and Admin clients too
- #143: Default native kafka image tag from the version of Kafka on the classpath.
- #197: Consumer of the extension should be able to choose the version of the kafka dependency.
- It is now necessary to declare
org.apache.kafka:kafka_2.13as a test dependency. - If you wish to use kafka in-vm with zookeeper,
org.apache.zookeeper:zookeepermust be declared as test dependency too. - The way
TestcontainersKafkaClusterdetermines the native image version tag to use for kafka and zookeeper is changed. PreviouslyTestcontainersKafkaClusteralways used thelatest-snapshotversion. With this release, it will now default to use the version of the kafka native image that corresponds to the version of Kafka Broker found on the classpath. This will give consumers of the test extension that have tests usingTestcontainersKafkaClustertest repeatability and consumers who use bothInVMKafkaClusterandTestcontainersKafkaClusterkafka broker version consistency. To get back the original behaviour, annotate theKafkaClusterwith@Version("latest-snapshot"). - The annotation
@ClientConfigis now available to pass configuration to Kafka Clients. This is understood byProducer,Consumer, andAdmintypes.
- #193: Bump Apache Kafka from 3.5.1 to 3.6.0
- #190: Allow controller-only nodes in container mode
- #187: Tighten the conditions under which the extension will inject values.
- #186: Replace a Null Pointer Exception with a more meaningful one when there is no existing cluster
- #182: Prevent possibility of loop when performing consistency test (workaround KAFKA-15507)
- #180: Update kafka version range in testVersions to include 3.5.1
- #146: Expose TestInfo (and thus DisplayName) when clusters are injected via annotations.
- #145 Direct storage formatting stdout to the log
- #86 Added API to restart one or more brokers of a kafka cluster.
- #142 Prevent spinning in Utils#createTopic.
- #140 Prevent docker networks accumulations during test runs.
- #134: Support @BeforeEach and test cases referring to same cluster
- #130: Small KeytoolCertificateGenerator improvements (eliminates use of openssl)
- It is now legal to declare multiple KafkaCluster parameters with the same explicit name, as long as later declarations only supply an @Name annotation and no constraint annotations. This will inject a reference to the existing cluster.