Class RabbitAmqpMessageListenerAdapter

java.lang.Object
org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener
org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter
org.springframework.amqp.rabbitmq.client.listener.RabbitAmqpMessageListenerAdapter
All Implemented Interfaces:
org.springframework.amqp.core.MessageListener, org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener, RabbitAmqpMessageListener

public class RabbitAmqpMessageListenerAdapter extends org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter implements RabbitAmqpMessageListener
A MessagingMessageListenerAdapter extension for the RabbitAmqpMessageListener. Provides these arguments for the MessagingMessageListenerAdapter.getHandlerAdapter() invocation:
  • Message - the native AMQP 1.0 message without any conversions
  • Message - Spring AMQP message abstraction as conversion result from the native AMQP 1.0 message
  • Message - Spring Messaging abstraction as conversion result from the Spring AMQP message
  • Consumer.Context - RabbitMQ AMQP client consumer settlement API.
  • AmqpAcknowledgment - Spring AMQP acknowledgment abstraction: delegates to the Consumer.Context

This class reuses the MessagingMessageListenerAdapter as much as possible just to avoid duplication. The Channel abstraction from AMQP Client 0.9.1 is out use and present here just for API compatibility and to follow DRY principle. Can be reworked eventually, when this AMQP 1.0 client won't be based on spring-rabbit dependency.

Since:
4.0
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter

    org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.MessagingMessageConverterAdapter

    Nested classes/interfaces inherited from class org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener

    org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener.ReplyExpressionRoot
  • Field Summary

    Fields inherited from class org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter

    errorHandler, messagingMessageConverter, returnExceptions

    Fields inherited from class org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener

    logger
  • Constructor Summary

    Constructors
    Constructor
    Description
    RabbitAmqpMessageListenerAdapter(@Nullable Object bean, @Nullable Method method, boolean returnExceptions, @Nullable org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler errorHandler, boolean batch)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    asyncFailure(org.springframework.amqp.core.Message request, @Nullable com.rabbitmq.client.Channel channel, Throwable t, @Nullable Object source)
     
    protected void
    basicAck(org.springframework.amqp.core.Message request, @Nullable com.rabbitmq.client.Channel channel)
     
    void
    onAmqpMessage(com.rabbitmq.client.amqp.Message amqpMessage, @Nullable com.rabbitmq.client.amqp.Consumer.Context context)
    Process an AMQP message.
    void
    onMessageBatch(List<org.springframework.amqp.core.Message> messages)
     
    protected void
    sendResponse(@Nullable com.rabbitmq.client.Channel channel, org.springframework.amqp.core.Address replyTo, org.springframework.amqp.core.Message messageIn)
     
    void
    setAfterReceivePostProcessors(Collection<org.springframework.amqp.core.MessagePostProcessor> afterReceivePostProcessors)
     
    void
    Set a AmqpConnectionFactory for publishing replies from this adapter.

    Methods inherited from class org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter

    buildMessage, getHandlerAdapter, getMessagingMessageConverter, handleException, invokeHandler, invokeHandlerAndProcessResult, isAsyncReplies, onMessage, setHandlerAdapter, setHeaderMapper, setMessageConverter, toMessagingMessage

    Methods inherited from class org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener

    containerAckMode, convert, doHandleResult, doPublish, extractMessage, getBeforeSendReplyPostProcessors, getEncoding, getMessageConverter, getReceivedExchange, getReplyContentType, getReplyToAddress, handleListenerException, handleResult, handleResult, isConverterWinsContentType, isDefaultRequeueRejected, isManualAck, postProcessChannel, postProcessResponse, setBeanResolver, setBeforeSendReplyPostProcessors, setConverterWinsContentType, setDefaultRequeueRejected, setEncoding, setMandatoryPublish, setRecoveryCallback, setReplyContentType, setReplyPostProcessor, setResponseAddress, setResponseExchange, setResponseRoutingKey, setRetryTemplate

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener

    onMessage, onMessageBatch

    Methods inherited from interface org.springframework.amqp.core.MessageListener

    containerAckMode, isAsyncReplies
  • Constructor Details

    • RabbitAmqpMessageListenerAdapter

      public RabbitAmqpMessageListenerAdapter(@Nullable Object bean, @Nullable Method method, boolean returnExceptions, @Nullable org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler errorHandler, boolean batch)
  • Method Details

    • setAfterReceivePostProcessors

      public void setAfterReceivePostProcessors(Collection<org.springframework.amqp.core.MessagePostProcessor> afterReceivePostProcessors)
    • setConnectionFactory

      public void setConnectionFactory(AmqpConnectionFactory connectionFactory)
      Set a AmqpConnectionFactory for publishing replies from this adapter.
      Parameters:
      connectionFactory - the AmqpConnectionFactory for replies.
    • onAmqpMessage

      public void onAmqpMessage(com.rabbitmq.client.amqp.Message amqpMessage, @Nullable com.rabbitmq.client.amqp.Consumer.Context context)
      Description copied from interface: RabbitAmqpMessageListener
      Process an AMQP message.
      Specified by:
      onAmqpMessage in interface RabbitAmqpMessageListener
      Parameters:
      amqpMessage - the message to process.
      context - the consumer context to settle message. Null if container is configured for autoSettle.
    • asyncFailure

      protected void asyncFailure(org.springframework.amqp.core.Message request, @Nullable com.rabbitmq.client.Channel channel, Throwable t, @Nullable Object source)
      Overrides:
      asyncFailure in class org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter
    • sendResponse

      protected void sendResponse(@Nullable com.rabbitmq.client.Channel channel, org.springframework.amqp.core.Address replyTo, org.springframework.amqp.core.Message messageIn)
      Overrides:
      sendResponse in class org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener
    • basicAck

      protected void basicAck(org.springframework.amqp.core.Message request, @Nullable com.rabbitmq.client.Channel channel)
      Overrides:
      basicAck in class org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener
    • onMessageBatch

      public void onMessageBatch(List<org.springframework.amqp.core.Message> messages)
      Specified by:
      onMessageBatch in interface org.springframework.amqp.core.MessageListener