Interface ReplyManager

All Superinterfaces:
org.springframework.jms.listener.SessionAwareMessageListener
All Known Implementing Classes:
QueueReplyManager, ReplyManagerSupport, TemporaryQueueReplyManager

public interface ReplyManager extends org.springframework.jms.listener.SessionAwareMessageListener
The ReplyManager is responsible for handling request-reply over JMS.
  • Method Summary

    Modifier and Type
    Method
    Description
    jakarta.jms.Destination
    Gets the reply to queue being used
    void
    Process the reply
    registerReply(ReplyManager replyManager, org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback, String originalCorrelationId, String correlationId, long requestTimeout)
    Register a reply
    void
    setCorrelationProperty(String correlationProperty)
    Sets the JMS message property used for message correlation.
    void
    Sets the belonging JmsEndpoint.
    void
    Sets the thread pool to use for continue routing Exchange when a timeout was triggered when doing request/reply over JMS.
    void
    setReplyTo(jakarta.jms.Destination replyTo)
    Sets the reply to queue the manager should listen for replies.
    void
    setReplyToSelectorHeader(org.apache.camel.Message camelMessage, jakarta.jms.Message jmsMessage)
    To be used when a reply queue is used with a custom JMS selector is being used.
    void
    Sets the scheduled thread pool to use when checking for timeouts (no reply received within a given time period)
    void
    updateCorrelationId(String correlationId, String newCorrelationId, long requestTimeout)
    Updates the correlation id to the new correlation id.

    Methods inherited from interface org.springframework.jms.listener.SessionAwareMessageListener

    onMessage
  • Method Details

    • setEndpoint

      void setEndpoint(JmsEndpoint endpoint)
      Sets the belonging JmsEndpoint.
    • setReplyTo

      void setReplyTo(jakarta.jms.Destination replyTo)
      Sets the reply to queue the manager should listen for replies.

      The queue is either a temporary or a persistent queue.

    • setScheduledExecutorService

      void setScheduledExecutorService(ScheduledExecutorService executorService)
      Sets the scheduled thread pool to use when checking for timeouts (no reply received within a given time period)
    • setOnTimeoutExecutorService

      void setOnTimeoutExecutorService(ExecutorService executorService)
      Sets the thread pool to use for continue routing Exchange when a timeout was triggered when doing request/reply over JMS.
    • setCorrelationProperty

      void setCorrelationProperty(String correlationProperty)
      Sets the JMS message property used for message correlation. If set message correlation will be performed on the value of this JMS property, JMSCorrelationID will be ignored.
    • getReplyTo

      jakarta.jms.Destination getReplyTo()
      Gets the reply to queue being used
    • setReplyToSelectorHeader

      void setReplyToSelectorHeader(org.apache.camel.Message camelMessage, jakarta.jms.Message jmsMessage) throws jakarta.jms.JMSException
      To be used when a reply queue is used with a custom JMS selector is being used.
      Throws:
      jakarta.jms.JMSException
    • registerReply

      String registerReply(ReplyManager replyManager, org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback, String originalCorrelationId, String correlationId, long requestTimeout)
      Register a reply
      Parameters:
      replyManager - the reply manager being used
      exchange - the exchange
      callback - the callback
      originalCorrelationId - an optional original correlation id
      correlationId - the correlation id to expect being used
      requestTimeout - the timeout
      Returns:
      the correlation id used
    • updateCorrelationId

      void updateCorrelationId(String correlationId, String newCorrelationId, long requestTimeout)
      Updates the correlation id to the new correlation id.

      This is only used when useMessageIDasCorrelationID option is used, which means a provisional correlation id is first used, then after the message has been sent, the real correlation id is known. This allows us then to update the internal mapping to expect the real correlation id.

      Parameters:
      correlationId - the provisional correlation id
      newCorrelationId - the real correlation id
      requestTimeout - the timeout
    • processReply

      void processReply(ReplyHolder holder)
      Process the reply
      Parameters:
      holder - containing needed data to process the reply and continue routing