Version 1.0.0 of Kafka for JUnit released

Version 1.0.0 of Kafka for Junit has been released. It features a couple of small improvements and bugfixes but most notably works now with Kafka 1.1.x and adds two significant epics Multiple Brokers and Failure Modes as well as an extended queriability when reading from or observing a topic, since both operations now accept a filter on record headers. With this release, it is possible to provision an embedded cluster with multiple brokers. This led to the possiblity to introduce failure modes on the broker-level as well: EmbeddedKafkaCluster provides a set of methods that allow you to disconnect specific brokers or disconnect as many brokers as required to fall below the minimum size of the In-Sync-Replica Set of a dedicated topic. This enables you to test if your Kafka-enabled component or application behaves correctly in the presence of broker outages.

more ...

Version 0.3.0 of Kafka for JUnit released

Version 0.3.0 of Kafka for JUnit has been released. It features a couple of small improvements to the code and introduces metadata acquisition as well as seek-semantics when reading or observing topics.

more ...

Version 0.2.0 of Kafka for JUnit released

Version 0.2.0 of Kafka for Junit has been released. It features a couple of small improvements to the code and documentation, as well as the addition of ExternalKafkaCluster, which is an abstraction that allows you to use the same convenient accessor interfaces that you are already familiar with when interacting with embedded Kafka clusters, against external Kafka clusters.

more ...

Version 0.1.0 of Kafka for JUnit released

The first version of Kafka for JUnit has been released. It features a customizable embedded Kafka broker setup with Kafka Connect and a rich set of convenient accessors to interact with the cluster.

more ...

Using a default service provider

What if there is no module on the module path that provides a suitable implementation of Matcher? What if there is no implementation of that interface at all? In this case, it is possible to provide a default implementation alongside the public API. The benefit is, that once the API module is distributed, it can definitely be put to use, even if the default implementation does not exhibit the quality aspects that we aimed for. Providing a default implementation is quite simple.

more ...