1 package de.juplo.kafka;
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.boot.autoconfigure.SpringBootApplication;
6 import org.springframework.boot.context.properties.EnableConfigurationProperties;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
9 import org.springframework.util.Assert;
11 import java.util.concurrent.Executors;
14 @SpringBootApplication
15 @EnableConfigurationProperties(ApplicationProperties.class)
16 public class Application
19 ApplicationProperties properties;
23 public EndlessConsumer consumer(PartitionStatisticsRepository repository)
25 Assert.hasText(properties.getBootstrapServer(), "consumer.bootstrap-server must be set");
26 Assert.hasText(properties.getGroupId(), "consumer.group-id must be set");
27 Assert.hasText(properties.getClientId(), "consumer.client-id must be set");
28 Assert.hasText(properties.getTopic(), "consumer.topic must be set");
30 EndlessConsumer consumer =
32 Executors.newFixedThreadPool(1),
34 properties.getBootstrapServer(),
35 properties.getGroupId(),
36 properties.getClientId(),
37 properties.getTopic(),
38 properties.getAutoOffsetReset());
46 public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder()
49 new Jackson2ObjectMapperBuilder().serializers(
50 new TopicPartitionSerializer(),
51 new PartitionStatisticsSerializer());
55 public static void main(String[] args)
57 SpringApplication.run(Application.class, args);