Class AmqpMessagingListenerAdapter
java.lang.Object
org.springframework.amqp.client.listener.AmqpMessagingListenerAdapter
- All Implemented Interfaces:
AcknowledgingProtonDeliveryListener, ProtonDeliveryListener, org.springframework.amqp.core.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
-
Constructor Summary
ConstructorsConstructorDescriptionAmqpMessagingListenerAdapter(org.springframework.amqp.listener.adapter.HandlerAdapter handlerAdapter) Create an instance based on the providedHandlerAdapter. -
Method Summary
Modifier and TypeMethodDescriptionvoidcontainerAckMode(org.springframework.amqp.core.AcknowledgeMode mode) booleanvoidonDelivery(org.apache.qpid.protonj2.client.Delivery delivery, @Nullable org.springframework.amqp.core.AmqpAcknowledgment acknowledgment) Process ProtonJDeliveryand optionally acknowledge it with a callback from the listener container.voidsetBeanResolver(org.springframework.expression.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(org.springframework.amqp.support.AmqpHeaderMapper headerMapper) Set theAmqpHeaderMapperimplementation to use to map the standard AMQP headers.voidsetMessageConverter(org.springframework.amqp.support.converter.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(org.springframework.amqp.listener.adapter.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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AcknowledgingProtonDeliveryListener
onDeliveryMethods inherited from interface org.springframework.amqp.core.MessageListener
onMessageBatchMethods inherited from interface ProtonDeliveryListener
onMessage
-
Constructor Details
-
AmqpMessagingListenerAdapter
public AmqpMessagingListenerAdapter(org.springframework.amqp.listener.adapter.HandlerAdapter handlerAdapter) Create an instance based on the providedHandlerAdapter.- Parameters:
handlerAdapter- theHandlerAdapterto invoke as POJO message listener.
-
-
Method Details
-
containerAckMode
public void containerAckMode(org.springframework.amqp.core.AcknowledgeMode mode) - Specified by:
containerAckModein interfaceorg.springframework.amqp.core.MessageListener
-
isAsyncReplies
public boolean isAsyncReplies()- Specified by:
isAsyncRepliesin interfaceorg.springframework.amqp.core.MessageListener
-
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
public void setReplyPostProcessor(org.springframework.amqp.listener.adapter.ReplyPostProcessor replyPostProcessor) 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
public void setHeaderMapper(org.springframework.amqp.support.AmqpHeaderMapper headerMapper) Set theAmqpHeaderMapperimplementation to use to map the standard AMQP headers. By default, aSimpleAmqpHeaderMapperis used.- Parameters:
headerMapper- theAmqpHeaderMapperinstance.- See Also:
-
setMessageConverter
public void setMessageConverter(org.springframework.amqp.support.converter.MessageConverter messageConverter) 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
public void setBeanResolver(org.springframework.expression.BeanResolver beanResolver) Set a bean resolver for runtime SpEL expressions.- Parameters:
beanResolver- the resolver.
-
onDelivery
public void onDelivery(org.apache.qpid.protonj2.client.Delivery delivery, @Nullable org.springframework.amqp.core.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.
-