Class AmqpMessagingListenerAdapter
java.lang.Object
org.springframework.amqp.client.listener.AmqpMessagingListenerAdapter
- All Implemented Interfaces:
AcknowledgingProtonDeliveryListener,ProtonDeliveryListener,MessageListener
public class AmqpMessagingListenerAdapter
extends Object
implements AcknowledgingProtonDeliveryListener
The
ProtonDeliveryListener implementation for POJO listeners
delegating to the provided HandlerAdapter.
Wraps the incoming Delivery to Message,
and further to the Spring's Message abstraction,
copying the standard headers using a configurable
AmqpHeaderMapper.
The original Delivery and Message
are provided as additional arguments so that these can be injected as method arguments if necessary.
- Since:
- 4.1
- Author:
- Artem Bilan
-
Constructor Summary
ConstructorsConstructorDescriptionAmqpMessagingListenerAdapter(HandlerAdapter handlerAdapter) Create an instance based on the providedHandlerAdapter. -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled by the container to inform the listener of its acknowledgement mode.booleanReturn true if this listener is request/reply and the replies are async.voidonDelivery(org.apache.qpid.protonj2.client.Delivery delivery, @Nullable AmqpAcknowledgment acknowledgment) Process ProtonJDeliveryand optionally acknowledge it with a callback from the listener container.voidsetBeanResolver(BeanResolver beanResolver) Set a bean resolver for runtime SpEL expressions.voidsetDefaultRequeueRejected(boolean defaultRequeueRejected) Set the default behavior for messages rejection, for example, when the listener threw an exception.voidsetErrorHandler(AmqpListenerErrorHandler errorHandler) Set theAmqpListenerErrorHandlerto invoke if the listener method throws an exception.voidsetHeaderMapper(AmqpHeaderMapper headerMapper) Set theAmqpHeaderMapperimplementation to use to map the standard AMQP headers.voidsetMessageConverter(MessageConverter messageConverter) Set the converter to convert incoming messages to listener method arguments, and objects returned from listener methods for response messages.voidsetReplyContentType(String replyContentType) Set the reply content type.voidsetReplyPostProcessor(ReplyPostProcessor replyPostProcessor) Set aReplyPostProcessorto post process a response message before it is sent.voidsetResponseAddress(String defaultReplyTo) Set the default replyTo address to use when sending response messages.voidsetReturnExceptions(boolean returnExceptions) Set whether exceptions thrown by the listener should be returned as a response message body to the sender using the normalreplyTo/@SendTosemantics.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.amqp.client.listener.AcknowledgingProtonDeliveryListener
onDeliveryMethods inherited from interface org.springframework.amqp.core.MessageListener
onMessageBatchMethods inherited from interface org.springframework.amqp.client.listener.ProtonDeliveryListener
onMessage
-
Constructor Details
-
AmqpMessagingListenerAdapter
Create an instance based on the providedHandlerAdapter.- Parameters:
handlerAdapter- theHandlerAdapterto invoke as POJO message listener.
-
-
Method Details
-
containerAckMode
Description copied from interface:MessageListenerCalled by the container to inform the listener of its acknowledgement mode.- Specified by:
containerAckModein interfaceMessageListener- Parameters:
mode- theAcknowledgeMode.
-
isAsyncReplies
public boolean isAsyncReplies()Description copied from interface:MessageListenerReturn true if this listener is request/reply and the replies are async.- Specified by:
isAsyncRepliesin interfaceMessageListener- Returns:
- true for async replies.
-
setDefaultRequeueRejected
public void setDefaultRequeueRejected(boolean defaultRequeueRejected) Set the default behavior for messages rejection, for example, when the listener threw an exception. Whentrue(default), messages will be requeued, otherwise - rejected. Setting tofalsecauses all rejections to not be requeued. When set totrue, the default can be overridden by the listener throwing anAmqpRejectAndDontRequeueException.- Parameters:
defaultRequeueRejected- false to reject messages by default.
-
setReplyPostProcessor
Set aReplyPostProcessorto post process a response message before it is sent. It is called afterpostProcessResponse(Message, Message)which sets up acorrelationIdproperty on the response message.- Parameters:
replyPostProcessor- the post-processor.
-
setErrorHandler
Set theAmqpListenerErrorHandlerto invoke if the listener method throws an exception.- Parameters:
errorHandler- the error handler.
-
setReturnExceptions
public void setReturnExceptions(boolean returnExceptions) Set whether exceptions thrown by the listener should be returned as a response message body to the sender using the normalreplyTo/@SendTosemantics.- Parameters:
returnExceptions- true to return exceptions.
-
setReplyContentType
Set the reply content type. Overrides the one populated by a message converter.- Parameters:
replyContentType- the content type.
-
setResponseAddress
Set the default replyTo address to use when sending response messages. This is only used if the replyTo from the received message is null.Response destinations are only relevant for listener methods that return result objects, which will be wrapped in a response message and sent to a response destination.
It can be a string surrounded by "!{...}" in which case the expression is evaluated at runtime; see the reference manual for more information.
- Parameters:
defaultReplyTo- The replyTo address.
-
setHeaderMapper
Set theAmqpHeaderMapperimplementation to use to map the standard AMQP headers. By default, aSimpleAmqpHeaderMapperis used.- Parameters:
headerMapper- theAmqpHeaderMapperinstance.- See Also:
-
setMessageConverter
Set the converter to convert incoming messages to listener method arguments, and objects returned from listener methods for response messages. The default converter is aSimpleMessageConverter.- Parameters:
messageConverter- The message converter.- See Also:
-
setBeanResolver
Set a bean resolver for runtime SpEL expressions.- Parameters:
beanResolver- the resolver.
-
onDelivery
public void onDelivery(org.apache.qpid.protonj2.client.Delivery delivery, @Nullable AmqpAcknowledgment acknowledgment) throws Exception Description copied from interface:AcknowledgingProtonDeliveryListenerProcess ProtonJDeliveryand optionally acknowledge it with a callback from the listener container. The implementation may choose to settle and replenish link credits some other way.- Specified by:
onDeliveryin interfaceAcknowledgingProtonDeliveryListener- Parameters:
delivery- the delivery to handle.acknowledgment- the acknowledgment callback for this delivery.- Throws:
Exception- any exception from the handling logic.
-