diff --git a/pom.xml b/pom.xml index 42ac998..1c1be59 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ develop - false + true 2 diff --git a/src/main/java/me/bvn13/kafka/health/KafkaHealthAutoConfiguration.java b/src/main/java/me/bvn13/kafka/health/KafkaHealthAutoConfiguration.java new file mode 100644 index 0000000..a07e01c --- /dev/null +++ b/src/main/java/me/bvn13/kafka/health/KafkaHealthAutoConfiguration.java @@ -0,0 +1,30 @@ +package me.bvn13.kafka.health; + +import org.springframework.boot.actuate.health.AbstractHealthIndicator; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.kafka.KafkaProperties; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConditionalOnClass(AbstractHealthIndicator.class) +public class KafkaHealthAutoConfiguration { + + @Bean + @ConditionalOnMissingBean(KafkaHealthProperties.class) + @ConfigurationProperties("kafka.health") + public KafkaHealthProperties kafkaHealthProperties() { + return new KafkaHealthProperties(); + } + + @Bean + @ConditionalOnMissingBean(KafkaConsumingHealthIndicator.class) + public KafkaConsumingHealthIndicator kafkaConsumingHealthIndicator(KafkaHealthProperties kafkaHealthProperties, + KafkaProperties kafkaProperties) { + return new KafkaConsumingHealthIndicator(kafkaHealthProperties, kafkaProperties.buildConsumerProperties(), + kafkaProperties.buildProducerProperties()); + } + +} diff --git a/src/main/resources/META-INF/spring.factories b/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..ba32998 --- /dev/null +++ b/src/main/resources/META-INF/spring.factories @@ -0,0 +1 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=me.bvn13.kafka.health.KafkaHealthAutoConfiguration