Class BatchMessagingMessageListenerAdapter<K,V>
- java.lang.Object
-
- org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter<K,V>
-
- org.springframework.kafka.listener.adapter.BatchMessagingMessageListenerAdapter<K,V>
-
- Type Parameters:
K- the key type.V- the value type.
- All Implemented Interfaces:
BatchAcknowledgingConsumerAwareMessageListener<K,V>,BatchMessageListener<K,V>,ConsumerSeekAware,GenericMessageListener<java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>>>
public class BatchMessagingMessageListenerAdapter<K,V> extends MessagingMessageListenerAdapter<K,V> implements BatchAcknowledgingConsumerAwareMessageListener<K,V>
AMessageListeneradapter that invokes a configurableHandlerAdapter; used when the factory is configured for the listener to receive batches of messages.Wraps the incoming Kafka Message to Spring's
Messageabstraction.The original
List<ConsumerRecord>and theAcknowledgmentare provided as additional arguments so that these can be injected as method arguments if necessary.- Since:
- 1.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter
MessagingMessageListenerAdapter.ReplyExpressionRoot
-
Nested classes/interfaces inherited from interface org.springframework.kafka.listener.ConsumerSeekAware
ConsumerSeekAware.ConsumerSeekCallback
-
-
Field Summary
-
Fields inherited from class org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter
logger, NULL_MESSAGE
-
-
Constructor Summary
Constructors Constructor Description BatchMessagingMessageListenerAdapter(java.lang.Object bean, java.lang.reflect.Method method)Create an instance with the provided parameters.BatchMessagingMessageListenerAdapter(java.lang.Object bean, java.lang.reflect.Method method, KafkaListenerErrorHandler errorHandler)Create an instance with the provided parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BatchMessageConvertergetBatchMessageConverter()Return theBatchMessagingMessageConverterfor this listener, being able to convertMessage.protected voidinvoke(java.lang.Object records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, org.springframework.messaging.Message<?> messageArg)voidonMessage(java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer)KafkaMessageListenerentry point.voidonMessage(org.apache.kafka.clients.consumer.ConsumerRecords<K,V> records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<K,V> consumer)Listener receives the originalConsumerRecordsobject instead of a list ofConsumerRecord.voidsetBatchMessageConverter(BatchMessageConverter messageConverter)Set the BatchMessageConverter.voidsetBatchToRecordAdapter(BatchToRecordAdapter<K,V> batchToRecordAdapter)Set aBatchToRecordAdapter.protected org.springframework.messaging.Message<?>toMessagingMessage(java.util.List records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer)booleanwantsPollResult()Return true if this listener wishes to receive the originalConsumerRecordsobject instead of a list ofConsumerRecord.-
Methods inherited from class org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter
createMessagingErrorMessage, determineInferredType, getMessageConverter, getReplyHeadersConfigurer, getType, handleResult, invokeHandler, isConsumerRecordList, isConsumerRecords, isConversionNeeded, isMessageList, isSplitIterables, onIdleContainer, onPartitionsAssigned, onPartitionsRevoked, registerSeekCallback, sendResponse, setBeanResolver, setFallbackType, setHandlerMethod, setMessageConverter, setReplyHeadersConfigurer, setReplyTemplate, setReplyTopic, setSplitIterables, toMessagingMessage
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.springframework.kafka.listener.BatchAcknowledgingConsumerAwareMessageListener
onMessage
-
Methods inherited from interface org.springframework.kafka.listener.ConsumerSeekAware
unregisterSeekCallback
-
Methods inherited from interface org.springframework.kafka.listener.GenericMessageListener
onMessage, onMessage
-
-
-
-
Constructor Detail
-
BatchMessagingMessageListenerAdapter
public BatchMessagingMessageListenerAdapter(java.lang.Object bean, java.lang.reflect.Method method)Create an instance with the provided parameters.- Parameters:
bean- the listener bean.method- the listener method.
-
BatchMessagingMessageListenerAdapter
public BatchMessagingMessageListenerAdapter(java.lang.Object bean, java.lang.reflect.Method method, KafkaListenerErrorHandler errorHandler)Create an instance with the provided parameters.- Parameters:
bean- the listener bean.method- the listener method.errorHandler- the error handler.
-
-
Method Detail
-
setBatchMessageConverter
public void setBatchMessageConverter(BatchMessageConverter messageConverter)
Set the BatchMessageConverter.- Parameters:
messageConverter- the converter.
-
setBatchToRecordAdapter
public void setBatchToRecordAdapter(BatchToRecordAdapter<K,V> batchToRecordAdapter)
Set aBatchToRecordAdapter.- Parameters:
batchToRecordAdapter- the adapter.- Since:
- 2.4.2
-
getBatchMessageConverter
protected final BatchMessageConverter getBatchMessageConverter()
Return theBatchMessagingMessageConverterfor this listener, being able to convertMessage.- Returns:
- the
BatchMessagingMessageConverterfor this listener, being able to convertMessage.
-
wantsPollResult
public boolean wantsPollResult()
Description copied from interface:BatchMessageListenerReturn true if this listener wishes to receive the originalConsumerRecordsobject instead of a list ofConsumerRecord.- Specified by:
wantsPollResultin interfaceBatchMessageListener<K,V>- Returns:
- true for consumer records.
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecords<K,V> records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<K,V> consumer)
Description copied from interface:BatchMessageListenerListener receives the originalConsumerRecordsobject instead of a list ofConsumerRecord.- Specified by:
onMessagein interfaceBatchMessageListener<K,V>- Parameters:
records- the records.acknowledgment- the acknowledgment (null if not manual acks)consumer- the consumer.
-
onMessage
public void onMessage(java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer)
KafkaMessageListenerentry point.Delegate the message to the target listener method, with appropriate conversion of the message argument.
- Specified by:
onMessagein interfaceBatchAcknowledgingConsumerAwareMessageListener<K,V>- Specified by:
onMessagein interfaceGenericMessageListener<K>- Parameters:
records- the incoming list of KafkaConsumerRecord.acknowledgment- the acknowledgment.consumer- the consumer.
-
invoke
protected void invoke(java.lang.Object records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, org.springframework.messaging.Message<?> messageArg)
-
toMessagingMessage
protected org.springframework.messaging.Message<?> toMessagingMessage(java.util.List records, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?,?> consumer)
-
-