Die Key-Statistiken werden in einer MongoDB gespeichert
[demos/kafka/training] / src / main / java / de / juplo / kafka / Application.java
index 85d0e07..23c845a 100644 (file)
@@ -5,6 +5,7 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
 import org.springframework.util.Assert;
 
 import java.util.concurrent.Executors;
@@ -19,7 +20,7 @@ public class Application
 
 
   @Bean
-  public EndlessConsumer consumer()
+  public EndlessConsumer consumer(PartitionStatisticsRepository repository)
   {
     Assert.hasText(properties.getBootstrapServer(), "consumer.bootstrap-server must be set");
     Assert.hasText(properties.getGroupId(), "consumer.group-id must be set");
@@ -29,16 +30,28 @@ public class Application
     EndlessConsumer consumer =
         new EndlessConsumer(
             Executors.newFixedThreadPool(1),
+            repository,
             properties.getBootstrapServer(),
             properties.getGroupId(),
             properties.getClientId(),
-            properties.getTopic());
+            properties.getTopic(),
+            properties.getAutoOffsetReset());
 
     consumer.start();
 
     return consumer;
   }
 
+  @Bean
+  public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder()
+  {
+    return
+        new Jackson2ObjectMapperBuilder().serializers(
+            new TopicPartitionSerializer(),
+            new PartitionStatisticsSerializer());
+  }
+
+
   public static void main(String[] args)
   {
     SpringApplication.run(Application.class, args);