Class ListenerContainerFactoryConfigurer
- java.lang.Object
-
- org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer
-
public class ListenerContainerFactoryConfigurer extends java.lang.Object
Decorates the providedConcurrentKafkaListenerContainerFactory
to add aDefaultErrorHandler
and theDeadLetterPublishingRecoverer
created by theDeadLetterPublishingRecovererFactory
. Also setsContainerProperties.setIdlePartitionEventInterval(Long)
andConsumerProperties.setPollTimeout(long)
if its defaults haven't been overridden by the user. Since 2.8.3 these configurations don't interfere with the provided factory instance itself, so the same factory instance can be shared among retryable and non-retryable endpoints.- Since:
- 2.7
-
-
Constructor Summary
Constructors Constructor Description ListenerContainerFactoryConfigurer(KafkaConsumerBackoffManager kafkaConsumerBackoffManager, DeadLetterPublishingRecovererFactory deadLetterPublishingRecovererFactory, java.time.Clock clock)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ConcurrentKafkaListenerContainerFactory<?,?>
configure(ConcurrentKafkaListenerContainerFactory<?,?> containerFactory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Deprecated.protected void
configurePollTimeoutAndIdlePartitionInterval(ConcurrentMessageListenerContainer<?,?> container, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
ConcurrentKafkaListenerContainerFactory<?,?>
configureWithoutBackOffValues(ConcurrentKafkaListenerContainerFactory<?,?> containerFactory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
protected CommonErrorHandler
createErrorHandler(DeadLetterPublishingRecoverer deadLetterPublishingRecoverer, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
KafkaListenerContainerFactory<?>
decorateFactory(ConcurrentKafkaListenerContainerFactory<?,?> factory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Decorates the providedConcurrentKafkaListenerContainerFactory
.KafkaListenerContainerFactory<?>
decorateFactoryWithoutSettingContainerProperties(ConcurrentKafkaListenerContainerFactory<?,?> factory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Decorates the providedConcurrentKafkaListenerContainerFactory
.protected long
getIdlePartitionInterval(ContainerProperties containerProperties, long pollTimeoutValue)
protected long
getPollTimeoutValue(ContainerProperties containerProperties, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
void
setContainerCustomizer(java.util.function.Consumer<ConcurrentMessageListenerContainer<?,?>> containerCustomizer)
void
setErrorHandlerCustomizer(java.util.function.Consumer<CommonErrorHandler> errorHandlerCustomizer)
protected void
setupBackoffAwareMessageListenerAdapter(ConcurrentMessageListenerContainer<?,?> container, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration, boolean isSetContainerProperties)
-
-
-
Constructor Detail
-
ListenerContainerFactoryConfigurer
public ListenerContainerFactoryConfigurer(KafkaConsumerBackoffManager kafkaConsumerBackoffManager, DeadLetterPublishingRecovererFactory deadLetterPublishingRecovererFactory, @Qualifier("internalBackOffClock") java.time.Clock clock)
-
-
Method Detail
-
configure
@Deprecated public ConcurrentKafkaListenerContainerFactory<?,?> configure(ConcurrentKafkaListenerContainerFactory<?,?> containerFactory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Deprecated.Configures the providedConcurrentKafkaListenerContainerFactory
.- Parameters:
containerFactory
- the factory instance to be configured.configuration
- the configuration provided by theRetryTopicConfiguration
.- Returns:
- the configured factory instance.
-
configureWithoutBackOffValues
@Deprecated public ConcurrentKafkaListenerContainerFactory<?,?> configureWithoutBackOffValues(ConcurrentKafkaListenerContainerFactory<?,?> containerFactory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Deprecated.Configures the providedConcurrentKafkaListenerContainerFactory
. Meant to be used for the main endpoint, this method ignores the provided backOff values.- Parameters:
containerFactory
- the factory instance to be configured.configuration
- the configuration provided by theRetryTopicConfiguration
.- Returns:
- the configured factory instance.
-
decorateFactory
public KafkaListenerContainerFactory<?> decorateFactory(ConcurrentKafkaListenerContainerFactory<?,?> factory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Decorates the providedConcurrentKafkaListenerContainerFactory
.- Parameters:
factory
- the factory instance to be decorated.configuration
- the configuration provided by theRetryTopicConfiguration
.- Returns:
- the decorated factory instance.
-
decorateFactoryWithoutSettingContainerProperties
public KafkaListenerContainerFactory<?> decorateFactoryWithoutSettingContainerProperties(ConcurrentKafkaListenerContainerFactory<?,?> factory, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
Decorates the providedConcurrentKafkaListenerContainerFactory
. Meant to be used for the main endpoint, this method ignores the provided backOff values.- Parameters:
factory
- the factory instance to be decorated.configuration
- the configuration provided by theRetryTopicConfiguration
.- Returns:
- the decorated factory instance.
-
setContainerCustomizer
public void setContainerCustomizer(java.util.function.Consumer<ConcurrentMessageListenerContainer<?,?>> containerCustomizer)
-
setErrorHandlerCustomizer
public void setErrorHandlerCustomizer(java.util.function.Consumer<CommonErrorHandler> errorHandlerCustomizer)
-
createErrorHandler
protected CommonErrorHandler createErrorHandler(DeadLetterPublishingRecoverer deadLetterPublishingRecoverer, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
-
setupBackoffAwareMessageListenerAdapter
protected void setupBackoffAwareMessageListenerAdapter(ConcurrentMessageListenerContainer<?,?> container, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration, boolean isSetContainerProperties)
-
configurePollTimeoutAndIdlePartitionInterval
protected void configurePollTimeoutAndIdlePartitionInterval(ConcurrentMessageListenerContainer<?,?> container, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
-
getIdlePartitionInterval
protected long getIdlePartitionInterval(ContainerProperties containerProperties, long pollTimeoutValue)
-
getPollTimeoutValue
protected long getPollTimeoutValue(ContainerProperties containerProperties, org.springframework.kafka.retrytopic.ListenerContainerFactoryConfigurer.Configuration configuration)
-
-