
io.dropwizard.kafka.KafkaAdminClientBundle Maven / Gradle / Ivy
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 org.apache.kafka.clients.admin.AdminClient;
import org.apache.kafka.clients.admin.NewTopic;
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 {
private final Collection topics;
private final Map configOverrides;
@Nullable
private AdminClient adminClient;
protected KafkaAdminClientBundle(final Collection topics) {
this(topics, Collections.emptyMap());
}
public KafkaAdminClientBundle(final Map configOverrides) {
this(Collections.emptyList(), configOverrides);
}
protected KafkaAdminClientBundle(final Collection topics, final Map configOverrides) {
this.topics = Objects.requireNonNull(topics);
this.configOverrides = Objects.requireNonNull(configOverrides);
}
@Override
public void initialize(final Bootstrap> bootstrap) {
// do nothing
}
@Override
public void run(final T configuration, final Environment environment) throws Exception {
final KafkaAdminClientFactory kafkaAdminClientFactory = requireNonNull(getKafkaAdminClientFactory(configuration));
final Tracing tracing = Tracing.current();
this.adminClient = kafkaAdminClientFactory.build(environment.lifecycle(), environment.healthChecks(), configOverrides, topics);
}
public abstract KafkaAdminClientFactory getKafkaAdminClientFactory(final T configuration);
public AdminClient getAdminClient() {
return requireNonNull(adminClient);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy