Class MessageProducerSupport

java.lang.Object
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.SmartInitializingSingleton, org.springframework.context.ApplicationContextAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle, ExpressionCapable, MessageProducer, IntegrationPattern, NamedComponent, ManageableLifecycle, ManageableSmartLifecycle, TrackableComponent
Direct Known Subclasses:
ExpressionMessageProducerSupport, ReactiveMessageSourceProducer

public abstract class MessageProducerSupport
extends AbstractEndpoint
implements MessageProducer, TrackableComponent, org.springframework.beans.factory.SmartInitializingSingleton, IntegrationPattern
A support class for producer endpoints that provides a setter for the output channel and a convenience method for sending Messages.
  • Constructor Details

  • Method Details

    • setOutputChannel

      public void setOutputChannel​(org.springframework.messaging.MessageChannel outputChannel)
      Description copied from interface: MessageProducer
      Specify the MessageChannel to which produced Messages should be sent.
      Specified by:
      setOutputChannel in interface MessageProducer
      Parameters:
      outputChannel - The output channel.
    • setOutputChannelName

      public void setOutputChannelName​(java.lang.String outputChannelName)
      Set the output channel name; overrides outputChannel if provided.
      Specified by:
      setOutputChannelName in interface MessageProducer
      Parameters:
      outputChannelName - the channel name.
      Since:
      4.3
    • getOutputChannel

      public org.springframework.messaging.MessageChannel getOutputChannel()
      Description copied from interface: MessageProducer
      Return the the output channel.
      Specified by:
      getOutputChannel in interface MessageProducer
      Returns:
      the channel.
    • setErrorChannel

      public void setErrorChannel​(org.springframework.messaging.MessageChannel errorChannel)
    • setErrorChannelName

      public void setErrorChannelName​(java.lang.String errorChannelName)
      Set the error channel name. If no error channel is provided, this endpoint will propagate Exceptions to the message-driven source. To completely suppress Exceptions, provide a reference to the "nullChannel" here.
      Parameters:
      errorChannelName - The error channel bean name.
      Since:
      4.3
    • getErrorChannel

      @Nullable public org.springframework.messaging.MessageChannel getErrorChannel()
      Return the error channel (if provided) to which error messages will be routed.
      Returns:
      the channel or null.
      Since:
      4.3
    • setSendTimeout

      public void setSendTimeout​(long sendTimeout)
      Configure the default timeout value to use for send operations. May be overridden for individual messages.
      Parameters:
      sendTimeout - the send timeout in milliseconds
      See Also:
      GenericMessagingTemplate.setSendTimeout(long)
    • setShouldTrack

      public void setShouldTrack​(boolean shouldTrack)
      Specified by:
      setShouldTrack in interface TrackableComponent
    • setErrorMessageStrategy

      public final void setErrorMessageStrategy​(ErrorMessageStrategy errorMessageStrategy)
      Set an ErrorMessageStrategy to use to build an error message when a exception occurs. Default is the DefaultErrorMessageStrategy.
      Parameters:
      errorMessageStrategy - the ErrorMessageStrategy.
      Since:
      4.3.10
    • getMessagingTemplate

      protected MessagingTemplate getMessagingTemplate()
    • getIntegrationPatternType

      public IntegrationPatternType getIntegrationPatternType()
      Description copied from interface: IntegrationPattern
      Return a pattern type this component implements.
      Specified by:
      getIntegrationPatternType in interface IntegrationPattern
      Returns:
      the IntegrationPatternType this component implements.
    • afterSingletonsInstantiated

      public void afterSingletonsInstantiated()
      Specified by:
      afterSingletonsInstantiated in interface org.springframework.beans.factory.SmartInitializingSingleton
    • onInit

      protected void onInit()
      Description copied from class: IntegrationObjectSupport
      Subclasses may implement this for initialization logic.
      Overrides:
      onInit in class AbstractEndpoint
    • doStart

      protected void doStart()
      Take no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.
      Specified by:
      doStart in class AbstractEndpoint
    • doStop

      protected void doStop()
      Take no action by default. Subclasses may override this if they need lifecycle-managed behavior.
      Specified by:
      doStop in class AbstractEndpoint
    • sendMessage

      protected void sendMessage​(org.springframework.messaging.Message<?> messageArg)
    • subscribeToPublisher

      protected void subscribeToPublisher​(org.reactivestreams.Publisher<? extends org.springframework.messaging.Message<?>> publisher)
    • sendErrorMessageIfNecessary

      protected final boolean sendErrorMessageIfNecessary​(@Nullable org.springframework.messaging.Message<?> message, java.lang.Exception exception)
      Send an error message based on the exception and message.
      Parameters:
      message - the message.
      exception - the exception.
      Returns:
      true if the error channel is available and message sent.
      Since:
      4.3.10
    • buildErrorMessage

      protected final org.springframework.messaging.support.ErrorMessage buildErrorMessage​(@Nullable org.springframework.messaging.Message<?> message, java.lang.Exception exception)
      Build an error message for the exception and message using the configured ErrorMessageStrategy.
      Parameters:
      message - the message.
      exception - the exception.
      Returns:
      the error message.
      Since:
      4.3.10
    • getErrorMessageAttributes

      protected org.springframework.core.AttributeAccessor getErrorMessageAttributes​(@Nullable org.springframework.messaging.Message<?> message)
      Populate an AttributeAccessor to be used when building an error message with the errorMessageStrategy.
      Parameters:
      message - the message.
      Returns:
      the attributes.
      Since:
      4.3.10