package de.juplo.kafka;
import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
-import org.springframework.kafka.config.KafkaListenerContainerFactory;
import org.springframework.kafka.core.ConsumerFactory;
-import org.springframework.kafka.listener.CommonContainerStoppingErrorHandler;
import java.util.function.Consumer;
public class ApplicationConfiguration
{
@Bean
- public Consumer<ConsumerRecord<String, Long>> consumer()
+ public Consumer<ConsumerRecord<String, ClientMessage>> consumer()
{
return (record) ->
{
}
@Bean
- public KafkaListenerContainerFactory<?> batchFactory(ConsumerFactory<String, Long> consumerFactory)
+ public ApplicationErrorHandler errorHandler()
{
- ConcurrentKafkaListenerContainerFactory<String, Long> factory =
- new ConcurrentKafkaListenerContainerFactory<>();
-
- factory.setConsumerFactory(consumerFactory);
- factory.setBatchListener(true);
-
- return factory;
+ return new ApplicationErrorHandler();
}
- @Bean
- public CommonContainerStoppingErrorHandler errorHandler()
+ @Bean(destroyMethod = "close")
+ public org.apache.kafka.clients.consumer.Consumer<String, ClientMessage> kafkaConsumer(ConsumerFactory<String, ClientMessage> factory)
{
- return new CommonContainerStoppingErrorHandler();
+ return factory.createConsumer();
}
}