WIP
[demos/kafka/training] / src / main / java / de / juplo / kafka / ApplicationConfiguration.java
1 package de.juplo.kafka;
2
3 import org.apache.kafka.clients.producer.KafkaProducer;
4 import org.apache.kafka.clients.producer.Producer;
5 import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
6 import org.springframework.boot.context.properties.EnableConfigurationProperties;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.context.annotation.Configuration;
9 import org.springframework.kafka.annotation.EnableKafka;
10 import org.springframework.kafka.core.KafkaTemplate;
11 import org.springframework.kafka.core.ProducerFactory;
12
13 import java.util.Properties;
14
15
16 @Configuration
17 @EnableConfigurationProperties({ KafkaProperties.class, ApplicationProperties.class })
18 @EnableKafka
19 public class ApplicationConfiguration
20 {
21   @Bean
22   public RestGateway restGateway(
23       ApplicationProperties applicationProperties,
24       KafkaProperties kafkaProperties,
25       KafkaTemplate<String, Integer> kafkaTemplate)
26   {
27     return
28         new RestGateway(
29             kafkaProperties.getClientId(),
30             applicationProperties.getPartition(),
31             kafkaTemplate);
32   }
33
34   @Bean(destroyMethod = "close")
35   public Producer<String, Integer> kafkaProducer(ProducerFactory<String, Integer> factory)
36   {
37     return factory.createProducer();
38   }
39 }