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) throws MessagingException
      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
      Throws:
      MessagingException
    • sendAndReceive

      @Nullable public Message<?> sendAndReceive(D destination, Message<?> requestMessage) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(Object request, Class<T> targetClass) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(Object request, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      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
      Throws:
      MessagingException
    • convertSendAndReceive

      @Nullable public <T> T convertSendAndReceive(D destination, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      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
      Throws:
      MessagingException
    • doSendAndReceive

      @Nullable protected abstract Message<?> doSendAndReceive(D destination, Message<?> requestMessage)
      Actually send the given request message to the given destination and receive a reply message for it.
      Parameters:
      destination - the target destination
      requestMessage - the message to send
      Returns:
      the received reply, possibly null if the message could not be received, for example due to a timeout