Class ConvertingMessageListener<V>
java.lang.Object
org.springframework.kafka.listener.adapter.ConvertingMessageListener<V>
- Type Parameters:
V
- the desired value type after conversion.
- All Implemented Interfaces:
AcknowledgingConsumerAwareMessageListener<Object,
,Object> DelegatingMessageListener<MessageListener>
,GenericMessageListener<org.apache.kafka.clients.consumer.ConsumerRecord<Object,
,Object>> MessageListener<Object,
Object>
public class ConvertingMessageListener<V>
extends Object
implements DelegatingMessageListener<MessageListener>, AcknowledgingConsumerAwareMessageListener<Object,Object>
A
AcknowledgingConsumerAwareMessageListener
adapter that implements
converting received ConsumerRecord
using specified MessageConverter
and then passes result to specified MessageListener
. If directly set, also headers
can be mapped with implementation of KafkaHeaderMapper
and then passed to converter
as a part of message being actually processed. Otherwise, if header mapper is not specified,
headers will not be accessible from converter's perspective.- Since:
- 3.0
- Author:
- Adrian Chlebosz
- See Also:
-
Constructor Summary
ConstructorDescriptionConvertingMessageListener
(MessageListener<?, V> delegateMessageListener, Class<V> desiredValueType) Construct an instance with the providedMessageListener
andClass
as a desired type ofConsumerRecord
's value after conversion. -
Method Summary
Modifier and TypeMethodDescriptionReturn the delegate.void
onMessage
(org.apache.kafka.clients.consumer.ConsumerRecord receivedRecord, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer consumer) Invoked with data from kafka and provides access to theConsumer
.void
setKafkaHeaderMapper
(KafkaHeaderMapper headerMapper) Set aKafkaHeaderMapper
.void
setMessageConverter
(MessageConverter messageConverter) Set aMessageConverter
.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.AcknowledgingConsumerAwareMessageListener
onMessage
Methods inherited from interface org.springframework.kafka.listener.GenericMessageListener
onMessage, onMessage
-
Constructor Details
-
ConvertingMessageListener
public ConvertingMessageListener(MessageListener<?, V> delegateMessageListener, Class<V> desiredValueType) Construct an instance with the providedMessageListener
andClass
as a desired type ofConsumerRecord
's value after conversion. Default value ofMessageConverter
is used, which isGenericMessageConverter
.- Parameters:
delegateMessageListener
- theMessageListener
to use when passing convertedConsumerRecord
further.desiredValueType
- theClass
setting desired type ofConsumerRecord
's value.
-
-
Method Details
-
setMessageConverter
Set aMessageConverter
.- Parameters:
messageConverter
- the message converter to use for conversion of incomingConsumerRecord
.- Since:
- 3.0
-
setKafkaHeaderMapper
Set aKafkaHeaderMapper
.- Parameters:
headerMapper
- the header mapper to use for mapping headers of incomingConsumerRecord
.- Since:
- 3.0
-
getDelegate
Description copied from interface:DelegatingMessageListener
Return the delegate.- Specified by:
getDelegate
in interfaceDelegatingMessageListener<V>
- Returns:
- the delegate.
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecord receivedRecord, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer consumer) Description copied from interface:GenericMessageListener
Invoked with data from kafka and provides access to theConsumer
. The default implementation throwsUnsupportedOperationException
.- Specified by:
onMessage
in interfaceAcknowledgingConsumerAwareMessageListener<Object,
Object> - Specified by:
onMessage
in interfaceGenericMessageListener<V>
- Parameters:
receivedRecord
- the data to be processed.acknowledgment
- the acknowledgment.consumer
- the consumer.
-