diff --git a/README.md b/README.md
index 5eb3a16..9065af9 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,10 @@
[](https://sonarcloud.io/dashboard?id=dropwizard_dropwizard-kafka)
[](https://maven-badges.herokuapp.com/maven-central/io.dropwizard.modules/dropwizard-kafka/)
-Provides easy integration for Dropwizard applications with the Apache Kafka client.
+Provides easy integration for Dropwizard applications with the Apache Kafka client.
This bundle comes with out-of-the-box support for:
-* YAML Configuration integration
+* YAML Configuration integration
* Producer and Consumer lifecycle management
* Producer and Cluster connection health checks
* Metrics integration for the Kafka client
@@ -16,14 +16,16 @@ This bundle comes with out-of-the-box support for:
For more information on Kafka, take a look at the official documentation here: http://kafka.apache.org/documentation/
## Dropwizard Version Support Matrix
-dropwizard-kafka | Dropwizard v1.3.x | Dropwizard v2.0.x | Dropwizard v2.1.x
------------------------ | ------------------ | ------------------ | ------------------
-v1.3.x | :white_check_mark: | :white_check_mark: | :white_check_mark:
-v1.4.x | :white_check_mark: | :white_check_mark: | :white_check_mark:
-v1.5.x | :white_check_mark: | :white_check_mark: | :white_check_mark:
-v1.6.x | | :white_check_mark: | :white_check_mark:
-v1.7.x | | :white_check_mark: | :white_check_mark:
-v1.8.x | | | :white_check_mark:
+| dropwizard-kafka | Dropwizard v1.3.x | Dropwizard v2.0.x | Dropwizard v2.1.x | Dropwizard v3.0.x | Dropwizard v4.0.x |
+|------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
+| v1.3.x | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| v1.4.x | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| v1.5.x | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| v1.6.x | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| v1.7.x | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| v1.8.x | :x: | :x: | :white_check_mark: | :x: | :x: |
+| v3.0.x | :x: | :x: | :x: | :white_check_mark: | :x: |
+| v4.0.x | :x: | :x: | :x: | :x: | :white_check_mark: |
## Usage
Add dependency on library.
@@ -131,14 +133,14 @@ public void run(ExampleConfiguration config, Environment environment) {
Configure your factory in your `config.yml` file:
```yaml
-consumer:
+consumer:
type: basic
bootstrapServers:
- 127.0.0.1:9092
- 127.0.0.1:9093
- 127.0.0.1:9094
consumerGroupId: consumer1
- name: consumerNameToBeUsedInMetrics
+ name: consumerNameToBeUsedInMetrics
keyDeserializer:
type: string
valueDeserializer:
@@ -168,7 +170,7 @@ For example, say you would like to use version `1.1.1` of the Kafka client. One
${dropwizard.version}
-```
+```
## Adding support for additional serializers and/or deserializers
In order to support additional serializers or deserializers, you'll need to create a new factory:
@@ -179,11 +181,11 @@ public class MySerializerFactory extends SerializerFactory {
@NotNull
@JsonProperty
private String someConfig;
-
+
public String getSomeConfig() {
return someConfig;
}
-
+
public void setSomeConfig(final String someConfig) {
this.someConfig = someConfig;
}
@@ -196,14 +198,14 @@ public class MySerializerFactory extends SerializerFactory {
}
```
-Then you will need to add the following files to your `src/main/resources/META-INF/services` directory in order to support Jackson
+Then you will need to add the following files to your `src/main/resources/META-INF/services` directory in order to support Jackson
polymorphic serialization:
File named `io.dropwizard.jackson.Discoverable`:
```
io.dropwizard.kafka.serializer.SerializerFactory
-```
+```
File named `io.dropwizard.kafka.serializer.SerializerFactory`:
diff --git a/pom.xml b/pom.xml
index 97bd291..7d98756 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,7 +73,7 @@
https://sonarcloud.io
5.15.0
- 2.1.6
+ 3.0.0
3.4.0
2.9.7
@@ -160,8 +160,8 @@
- junit
- junit
+ org.junit.vintage
+ junit-vintage-engine
test
diff --git a/src/main/java/io/dropwizard/kafka/BasicKafkaConsumerFactory.java b/src/main/java/io/dropwizard/kafka/BasicKafkaConsumerFactory.java
index e60ed61..e12bb89 100644
--- a/src/main/java/io/dropwizard/kafka/BasicKafkaConsumerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/BasicKafkaConsumerFactory.java
@@ -9,6 +9,7 @@
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;
+import org.checkerframework.checker.nullness.qual.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -17,8 +18,6 @@
import java.util.Map;
import java.util.Optional;
-import javax.annotation.Nullable;
-
import static java.util.Objects.requireNonNull;
@JsonTypeName("basic")
diff --git a/src/main/java/io/dropwizard/kafka/BasicKafkaProducerFactory.java b/src/main/java/io/dropwizard/kafka/BasicKafkaProducerFactory.java
index 384a26a..f570b28 100644
--- a/src/main/java/io/dropwizard/kafka/BasicKafkaProducerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/BasicKafkaProducerFactory.java
@@ -7,6 +7,7 @@
import io.dropwizard.lifecycle.setup.LifecycleEnvironment;
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.clients.producer.Producer;
+import org.checkerframework.checker.nullness.qual.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,8 +17,6 @@
import java.util.Map;
import java.util.Optional;
-import javax.annotation.Nullable;
-
import static java.util.Objects.requireNonNull;
@JsonTypeName("basic")
diff --git a/src/main/java/io/dropwizard/kafka/KafkaAdminClientBundle.java b/src/main/java/io/dropwizard/kafka/KafkaAdminClientBundle.java
index 2b9a569..a09899c 100644
--- a/src/main/java/io/dropwizard/kafka/KafkaAdminClientBundle.java
+++ b/src/main/java/io/dropwizard/kafka/KafkaAdminClientBundle.java
@@ -1,20 +1,19 @@
package io.dropwizard.kafka;
import brave.Tracing;
-import io.dropwizard.Configuration;
-import io.dropwizard.ConfiguredBundle;
-import io.dropwizard.setup.Bootstrap;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.Configuration;
+import io.dropwizard.core.ConfiguredBundle;
+import io.dropwizard.core.setup.Bootstrap;
+import io.dropwizard.core.setup.Environment;
import org.apache.kafka.clients.admin.AdminClient;
import org.apache.kafka.clients.admin.NewTopic;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Objects;
-import javax.annotation.Nullable;
-
import static java.util.Objects.requireNonNull;
public abstract class KafkaAdminClientBundle implements ConfiguredBundle {
diff --git a/src/main/java/io/dropwizard/kafka/KafkaConsumerBundle.java b/src/main/java/io/dropwizard/kafka/KafkaConsumerBundle.java
index f932cfa..3e065d3 100644
--- a/src/main/java/io/dropwizard/kafka/KafkaConsumerBundle.java
+++ b/src/main/java/io/dropwizard/kafka/KafkaConsumerBundle.java
@@ -1,20 +1,19 @@
package io.dropwizard.kafka;
import brave.Tracing;
-import io.dropwizard.Configuration;
-import io.dropwizard.ConfiguredBundle;
-import io.dropwizard.setup.Bootstrap;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.Configuration;
+import io.dropwizard.core.ConfiguredBundle;
+import io.dropwizard.core.setup.Bootstrap;
+import io.dropwizard.core.setup.Environment;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Objects;
-import javax.annotation.Nullable;
-
import static java.util.Objects.requireNonNull;
public abstract class KafkaConsumerBundle implements ConfiguredBundle {
diff --git a/src/main/java/io/dropwizard/kafka/KafkaConsumerFactory.java b/src/main/java/io/dropwizard/kafka/KafkaConsumerFactory.java
index afd0dbc..77e238c 100644
--- a/src/main/java/io/dropwizard/kafka/KafkaConsumerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/KafkaConsumerFactory.java
@@ -16,12 +16,12 @@
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;
import org.apache.kafka.clients.consumer.KafkaConsumer;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import javax.annotation.Nullable;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
diff --git a/src/main/java/io/dropwizard/kafka/KafkaProducerBundle.java b/src/main/java/io/dropwizard/kafka/KafkaProducerBundle.java
index eca8cc2..388542b 100644
--- a/src/main/java/io/dropwizard/kafka/KafkaProducerBundle.java
+++ b/src/main/java/io/dropwizard/kafka/KafkaProducerBundle.java
@@ -1,18 +1,17 @@
package io.dropwizard.kafka;
import brave.Tracing;
-import io.dropwizard.Configuration;
-import io.dropwizard.ConfiguredBundle;
-import io.dropwizard.setup.Bootstrap;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.Configuration;
+import io.dropwizard.core.ConfiguredBundle;
+import io.dropwizard.core.setup.Bootstrap;
+import io.dropwizard.core.setup.Environment;
import org.apache.kafka.clients.producer.Producer;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
-import javax.annotation.Nullable;
-
import static java.util.Objects.requireNonNull;
public abstract class KafkaProducerBundle implements ConfiguredBundle {
diff --git a/src/main/java/io/dropwizard/kafka/KafkaProducerFactory.java b/src/main/java/io/dropwizard/kafka/KafkaProducerFactory.java
index 30f3a89..16dbb82 100644
--- a/src/main/java/io/dropwizard/kafka/KafkaProducerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/KafkaProducerFactory.java
@@ -18,8 +18,8 @@
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.record.CompressionType;
+import org.checkerframework.checker.nullness.qual.Nullable;
-import javax.annotation.Nullable;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
diff --git a/src/main/java/io/dropwizard/kafka/MockKafkaConsumerFactory.java b/src/main/java/io/dropwizard/kafka/MockKafkaConsumerFactory.java
index 834d4a6..d35ad4c 100644
--- a/src/main/java/io/dropwizard/kafka/MockKafkaConsumerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/MockKafkaConsumerFactory.java
@@ -8,8 +8,8 @@
import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;
import org.apache.kafka.clients.consumer.MockConsumer;
import org.apache.kafka.clients.consumer.OffsetResetStrategy;
+import org.checkerframework.checker.nullness.qual.Nullable;
-import javax.annotation.Nullable;
import java.util.Map;
@JsonTypeName("mock")
diff --git a/src/main/java/io/dropwizard/kafka/MockKafkaProducerFactory.java b/src/main/java/io/dropwizard/kafka/MockKafkaProducerFactory.java
index 653f63c..8e25140 100644
--- a/src/main/java/io/dropwizard/kafka/MockKafkaProducerFactory.java
+++ b/src/main/java/io/dropwizard/kafka/MockKafkaProducerFactory.java
@@ -6,8 +6,8 @@
import io.dropwizard.lifecycle.setup.LifecycleEnvironment;
import org.apache.kafka.clients.producer.MockProducer;
import org.apache.kafka.clients.producer.Producer;
+import org.checkerframework.checker.nullness.qual.Nullable;
-import javax.annotation.Nullable;
import java.util.Collection;
import java.util.Map;