Class AbstractMessagingTemplate<D>

Type Parameters:
D - the destination type
All Implemented Interfaces:
MessageReceivingOperations<D>, MessageRequestReplyOperations<D>, MessageSendingOperations<D>
Direct Known Subclasses:
AbstractDestinationResolvingMessagingTemplate, JmsMessagingTemplate

public abstract class AbstractMessagingTemplate<D> extends AbstractMessageReceivingTemplate<D> implements MessageRequestReplyOperations<D>
An extension of AbstractMessageReceivingTemplate that adds support for request-reply style operations as defined by MessageRequestReplyOperations.
Since:
4.0
Author:
Mark Fisher, Rossen Stoyanchev, Stephane Nicoll
  • Constructor Details

    • AbstractMessagingTemplate

      public AbstractMessagingTemplate()
  • Method Details

    • sendAndReceive

      @Nullable public Message<?> sendAndReceive(Message<?> requestMessage)
      Description copied from interface: MessageRequestReplyOperations
      Send a request message and receive the reply from a default destination.
      Specified by:
      sendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      requestMessage - the message to send
      Returns:
      the reply, possibly null if the message could not be received, for example due to a timeout
    • sendAndReceive

      @Nullable public Message<?> sendAndReceive(D destination, Message<?> requestMessage)
      Description copied from interface: MessageRequestReplyOperations
      Send a request message and receive the reply from the given destination.
      Specified by:
      sendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      destination - the target destination
      requestMessage - the message to send
      Returns:
      the reply, possibly null if the message could not be received, for example due to a timeout
    • doSendAndReceive

      @Nullable protected abstract Message<?> doSendAndReceive(D destination, Message<?> requestMessage)
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(Object request, Class<T> targetClass)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, send it as a Message to a default destination, receive the reply and convert its body of the specified target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      request - payload for the request message to send
      targetClass - the target type to convert the payload of the reply to
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, send it as a Message to the given destination, receive the reply and convert its body of the specified target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      destination - the target destination
      request - payload for the request message to send
      targetClass - the target type to convert the payload of the reply to
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, send it as a Message with the given headers, to the specified destination, receive the reply and convert its body of the specified target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      destination - the target destination
      request - payload for the request message to send
      headers - the headers for the request message to send
      targetClass - the target type to convert the payload of the reply to
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(Object request, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, apply the given post processor and send the resulting Message to a default destination, receive the reply and convert its body of the given target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      request - payload for the request message to send
      targetClass - the target type to convert the payload of the reply to
      postProcessor - post process to apply to the request message
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, apply the given post processor and send the resulting Message to the given destination, receive the reply and convert its body of the given target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      destination - the target destination
      request - payload for the request message to send
      targetClass - the target type to convert the payload of the reply to
      postProcessor - post process to apply to the request message
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor)
      Description copied from interface: MessageRequestReplyOperations
      Convert the given request Object to serialized form, possibly using a MessageConverter, wrap it as a message with the given headers, apply the given post processor and send the resulting Message to the specified destination, receive the reply and convert its body of the given target class.
      Specified by:
      convertSendAndReceive in interface MessageRequestReplyOperations<D>
      Parameters:
      destination - the target destination
      request - payload for the request message to send
      targetClass - the target type to convert the payload of the reply to
      postProcessor - post process to apply to the request message
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout