Class AbstractAwsMessageHandler<H>

java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.aws.outbound.AbstractAwsMessageHandler<H>
Type Parameters:
H - the headers container type.
All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>, 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.context.ApplicationContextAware, org.springframework.core.Ordered, org.springframework.integration.context.ExpressionCapable, org.springframework.integration.context.Orderable, org.springframework.integration.core.MessageProducer, org.springframework.integration.handler.HeaderPropagationAware, org.springframework.integration.IntegrationPattern, org.springframework.integration.support.context.NamedComponent, org.springframework.integration.support.management.IntegrationManagement, org.springframework.integration.support.management.TrackableComponent, org.springframework.messaging.MessageHandler, reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>
Direct Known Subclasses:
KinesisMessageHandler, KplMessageHandler, SnsMessageHandler, SqsMessageHandler

public abstract class AbstractAwsMessageHandler<H> extends org.springframework.integration.handler.AbstractMessageProducingHandler
The base AbstractMessageProducingHandler for AWS services. Utilizes common logic (AsyncHandler, ErrorMessageStrategy, failureChannel etc.) and message pre- and post-processing,
Since:
2.0
Author:
Artem Bilan
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement

    org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final long
     

    Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler

    messagingTemplate

    Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport

    EXPRESSION_PARSER, logger

    Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement

    METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract void
    additionalOnSuccessHeaders(org.springframework.integration.support.AbstractIntegrationMessageBuilder<?> messageBuilder, AmazonWebServiceRequest request, Object result)
     
    protected final void
    doSetHeaderMapper(org.springframework.integration.mapping.HeaderMapper<H> headerMapper)
     
    protected AsyncHandler<? extends AmazonWebServiceRequest,?>
     
    protected org.springframework.integration.support.ErrorMessageStrategy
     
    protected org.springframework.expression.EvaluationContext
     
    protected org.springframework.messaging.MessageChannel
     
    protected org.springframework.integration.mapping.HeaderMapper<H>
     
    protected org.springframework.expression.Expression
     
    protected void
    handleMessageInternal(org.springframework.messaging.Message<?> message)
     
    protected abstract Future<?>
    handleMessageToAws(org.springframework.messaging.Message<?> message)
     
    protected boolean
     
    protected <I extends AmazonWebServiceRequest, O>
    AsyncHandler<I,O>
    obtainAsyncHandler(org.springframework.messaging.Message<?> message, AmazonWebServiceRequest request)
     
    protected void
     
    void
     
    void
    setErrorMessageStrategy(org.springframework.integration.support.ErrorMessageStrategy errorMessageStrategy)
     
    void
    setFailureChannel(org.springframework.messaging.MessageChannel failureChannel)
    Set the failure channel.
    void
    setFailureChannelName(String failureChannelName)
    Set the failure channel name.
    void
    setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<H> headerMapper)
    Specify a HeaderMapper to map outbound headers.
    void
    setSendTimeout(long sendTimeout)
     
    void
    setSendTimeoutExpression(org.springframework.expression.Expression sendTimeoutExpression)
     
    void
    setSendTimeoutExpressionString(String sendTimeoutExpression)
     
    void
    setSync(boolean sync)
     

    Methods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler

    addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders

    Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler

    handleMessage, onComplete, onError, onNext, onSubscribe

    Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport

    buildSendTimer, destroy, getComponentType, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack

    Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport

    afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface reactor.core.CoreSubscriber

    currentContext

    Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement

    getThisAs

    Methods inherited from interface org.springframework.integration.support.context.NamedComponent

    getBeanName, getComponentName
  • Field Details

    • DEFAULT_SEND_TIMEOUT

      protected static final long DEFAULT_SEND_TIMEOUT
      See Also:
  • Constructor Details

    • AbstractAwsMessageHandler

      public AbstractAwsMessageHandler()
  • Method Details

    • setAsyncHandler

      public void setAsyncHandler(AsyncHandler<? extends AmazonWebServiceRequest,?> asyncHandler)
    • getAsyncHandler

      protected AsyncHandler<? extends AmazonWebServiceRequest,?> getAsyncHandler()
    • setSync

      public void setSync(boolean sync)
    • isSync

      protected boolean isSync()
    • setSendTimeout

      public void setSendTimeout(long sendTimeout)
      Overrides:
      setSendTimeout in class org.springframework.integration.handler.AbstractMessageProducingHandler
    • setSendTimeoutExpressionString

      public void setSendTimeoutExpressionString(String sendTimeoutExpression)
    • setSendTimeoutExpression

      public void setSendTimeoutExpression(org.springframework.expression.Expression sendTimeoutExpression)
    • getSendTimeoutExpression

      protected org.springframework.expression.Expression getSendTimeoutExpression()
    • setFailureChannel

      public void setFailureChannel(org.springframework.messaging.MessageChannel failureChannel)
      Set the failure channel. After a failure on put, an ErrorMessage will be sent to this channel with a payload of a AwsRequestFailureException with the failed message and cause.
      Parameters:
      failureChannel - the failure channel.
    • setFailureChannelName

      public void setFailureChannelName(String failureChannelName)
      Set the failure channel name. After a failure on put, an ErrorMessage will be sent to this channel name with a payload of a AwsRequestFailureException with the failed message and cause.
      Parameters:
      failureChannelName - the failure channel name.
    • getFailureChannel

      protected org.springframework.messaging.MessageChannel getFailureChannel()
    • setErrorMessageStrategy

      public void setErrorMessageStrategy(org.springframework.integration.support.ErrorMessageStrategy errorMessageStrategy)
    • getErrorMessageStrategy

      protected org.springframework.integration.support.ErrorMessageStrategy getErrorMessageStrategy()
    • setHeaderMapper

      public void setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<H> headerMapper)
      Specify a HeaderMapper to map outbound headers.
      Parameters:
      headerMapper - the HeaderMapper to map outbound headers.
    • doSetHeaderMapper

      protected final void doSetHeaderMapper(org.springframework.integration.mapping.HeaderMapper<H> headerMapper)
    • getHeaderMapper

      protected org.springframework.integration.mapping.HeaderMapper<H> getHeaderMapper()
    • getEvaluationContext

      protected org.springframework.expression.EvaluationContext getEvaluationContext()
    • onInit

      protected void onInit()
      Overrides:
      onInit in class org.springframework.integration.handler.AbstractMessageProducingHandler
    • handleMessageInternal

      protected void handleMessageInternal(org.springframework.messaging.Message<?> message)
      Specified by:
      handleMessageInternal in class org.springframework.integration.handler.AbstractMessageHandler
    • obtainAsyncHandler

      protected <I extends AmazonWebServiceRequest, O> AsyncHandler<I,O> obtainAsyncHandler(org.springframework.messaging.Message<?> message, AmazonWebServiceRequest request)
    • handleMessageToAws

      protected abstract Future<?> handleMessageToAws(org.springframework.messaging.Message<?> message)
    • additionalOnSuccessHeaders

      protected abstract void additionalOnSuccessHeaders(org.springframework.integration.support.AbstractIntegrationMessageBuilder<?> messageBuilder, AmazonWebServiceRequest request, Object result)