Class ErrorMessagePublisher

java.lang.Object
org.springframework.integration.core.ErrorMessagePublisher
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware
Direct Known Subclasses:
ErrorMessageSendingRecoverer, MessagePublishingErrorHandler

public class ErrorMessagePublisher
extends java.lang.Object
implements org.springframework.beans.factory.BeanFactoryAware
The component which can be used as general purpose of errors publishing. Can be called or extended in any error handling or retry scenarios.

An ErrorMessageStrategy can be used to provide customization for the target ErrorMessage based on the AttributeAccessor (or the message and/or throwable when using the other publish() methods).

Since:
4.3.10
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected org.apache.commons.logging.Log logger  
    protected MessagingTemplate messagingTemplate  
  • Constructor Summary

    Constructors 
    Constructor Description
    ErrorMessagePublisher()  
  • Method Summary

    Modifier and Type Method Description
    protected java.lang.Throwable determinePayload​(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
    Build a Throwable payload for future ErrorMessage.
    org.springframework.messaging.MessageChannel getChannel()  
    protected org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> getChannelResolver()  
    ErrorMessageStrategy getErrorMessageStrategy()  
    protected MessagingTemplate getMessagingTemplate()  
    protected java.lang.Throwable payloadWhenNull​(org.springframework.core.AttributeAccessor context)
    Build a Throwable payload based on the provided context for future ErrorMessage when there is original Throwable.
    void publish​(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
    Publish an error message for the supplied throwable and context.
    void publish​(org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
    Publish an error message for the supplied message and throwable.
    void publish​(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
    Publish an error message for the supplied message and throwable.
    void publish​(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.MessagingException exception)
    Publish an error message for the supplied exception.
    void publish​(org.springframework.messaging.MessagingException exception)
    Publish an error message for the supplied exception.
    void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)  
    void setChannel​(org.springframework.messaging.MessageChannel channel)  
    void setChannelName​(java.lang.String channelName)  
    void setChannelResolver​(org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> channelResolver)  
    void setErrorMessageStrategy​(ErrorMessageStrategy errorMessageStrategy)  
    void setSendTimeout​(long sendTimeout)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • setErrorMessageStrategy

      public final void setErrorMessageStrategy​(ErrorMessageStrategy errorMessageStrategy)
    • setChannel

      public final void setChannel​(org.springframework.messaging.MessageChannel channel)
    • setChannelName

      public void setChannelName​(java.lang.String channelName)
    • getErrorMessageStrategy

      public ErrorMessageStrategy getErrorMessageStrategy()
    • getChannel

      public org.springframework.messaging.MessageChannel getChannel()
    • setSendTimeout

      public final void setSendTimeout​(long sendTimeout)
    • setChannelResolver

      public final void setChannelResolver​(org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> channelResolver)
    • setBeanFactory

      public void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)
      Specified by:
      setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
    • getMessagingTemplate

      protected MessagingTemplate getMessagingTemplate()
    • getChannelResolver

      @Nullable protected org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> getChannelResolver()
    • publish

      public void publish​(org.springframework.messaging.MessagingException exception)
      Publish an error message for the supplied exception.
      Parameters:
      exception - the exception.
    • publish

      public void publish​(org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
      Publish an error message for the supplied message and throwable. If the throwable is already a MessagingException containing the message in its failedMessage property, use publish(MessagingException) instead.
      Parameters:
      failedMessage - the message.
      throwable - the throwable.
    • publish

      public void publish​(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.MessagingException exception)
      Publish an error message for the supplied exception.
      Parameters:
      inputMessage - the message that started the subflow.
      exception - the exception.
    • publish

      public void publish​(@Nullable org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
      Publish an error message for the supplied message and throwable. If the throwable is already a MessagingException containing the message in its failedMessage property, use publish(MessagingException) instead.
      Parameters:
      inputMessage - the message that started the subflow.
      failedMessage - the message.
      throwable - the throwable.
    • publish

      public void publish​(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
      Publish an error message for the supplied throwable and context. The errorMessageStrategy is used to build a ErrorMessage to publish.
      Parameters:
      throwable - the throwable. May be null.
      context - the context for ErrorMessage properties.
    • determinePayload

      protected java.lang.Throwable determinePayload​(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
      Build a Throwable payload for future ErrorMessage.
      Parameters:
      throwable - the error to determine an ErrorMessage payload. Can be null.
      context - the context for error.
      Returns:
      the throwable for the ErrorMessage payload
      See Also:
      ErrorMessageUtils
    • payloadWhenNull

      protected java.lang.Throwable payloadWhenNull​(org.springframework.core.AttributeAccessor context)
      Build a Throwable payload based on the provided context for future ErrorMessage when there is original Throwable.
      Parameters:
      context - the AttributeAccessor to use for exception properties.
      Returns:
      the Throwable for an ErrorMessage payload.
      See Also:
      ErrorMessageUtils