Class MessageProducerSupport

All Implemented Interfaces:
Aware, BeanFactoryAware, BeanNameAware, DisposableBean, InitializingBean, SmartInitializingSingleton, ApplicationContextAware, Lifecycle, Phased, SmartLifecycle, ExpressionCapable, MessageProducer, IntegrationPattern, NamedComponent, ManageableLifecycle, ManageableSmartLifecycle, TrackableComponent
Direct Known Subclasses:
AbstractHazelcastMessageProducer, AbstractInternetProtocolReceivingChannelAdapter, AbstractMqttMessageDrivenChannelAdapter, AbstractXmppConnectionAwareEndpoint, AmqpInboundChannelAdapter, ExpressionMessageProducerSupport, FileTailingMessageProducerSupport, HazelcastClusterMonitorMessageProducer, ImapIdleChannelAdapter, JmsMessageDrivenEndpoint, KafkaMessageDrivenChannelAdapter, MongoDbChangeStreamMessageProducer, NotificationListeningMessageProducer, ReactiveMessageSourceProducer, ReactiveRedisStreamMessageProducer, RedisInboundChannelAdapter, RedisQueueMessageDrivenEndpoint, StompInboundChannelAdapter, SyslogReceivingChannelAdapterSupport, TcpReceivingChannelAdapter, WebSocketInboundChannelAdapter, ZeroMqMessageProducer

public abstract class MessageProducerSupport extends AbstractEndpoint implements MessageProducer, TrackableComponent, SmartInitializingSingleton, IntegrationPattern
A support class for producer endpoints that provides a setter for the output channel and a convenience method for sending Messages.
Author:
Mark Fisher, Artem Bilan, Gary Russell
  • Constructor Details

    • MessageProducerSupport

      protected MessageProducerSupport()
  • Method Details

    • setOutputChannel

      public void setOutputChannel(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(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 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(MessageChannel errorChannel)
    • setErrorChannelName

      public void setErrorChannelName(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 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:
    • 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
    • getErrorMessageStrategy

      protected ErrorMessageStrategy getErrorMessageStrategy()
      Get an ErrorMessageStrategy to use to build an error message when a exception occurs. Default is the DefaultErrorMessageStrategy.
      Returns:
      the errorMessageStrategy
      Since:
      6.0
    • 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 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(Message<?> messageArg)
    • subscribeToPublisher

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

      protected final boolean sendErrorMessageIfNecessary(@Nullable Message<?> message, 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 ErrorMessage buildErrorMessage(@Nullable Message<?> message, 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 AttributeAccessor getErrorMessageAttributes(@Nullable 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