Class SqsMessageHandler

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<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>
org.springframework.integration.aws.outbound.SqsMessageHandler
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<?>>

public class SqsMessageHandler extends AbstractAwsMessageHandler<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>
The AbstractMessageHandler implementation for the Amazon SQS sendMessage.
Author:
Artem Bilan, Rahul Pilani, Taylor Wicksell, Seth Kelly
See Also:
  • SqsAsyncClient.sendMessage(SendMessageRequest)
  • AsyncHandler
  • 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 inherited from class org.springframework.integration.aws.outbound.AbstractAwsMessageHandler

    DEFAULT_SEND_TIMEOUT

    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
    SqsMessageHandler(software.amazon.awssdk.services.sqs.SqsAsyncClient amazonSqs)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Map<String,?>
    additionalOnSuccessHeaders(software.amazon.awssdk.awscore.AwsRequest request, software.amazon.awssdk.awscore.AwsResponse response)
     
    protected CompletableFuture<? extends software.amazon.awssdk.awscore.AwsResponse>
    handleMessageToAws(org.springframework.messaging.Message<?> message, software.amazon.awssdk.awscore.AwsRequest request)
     
    protected software.amazon.awssdk.awscore.AwsRequest
    messageToAwsRequest(org.springframework.messaging.Message<?> message)
     
    protected void
     
    void
    setDelay(int delaySeconds)
     
    void
    setDelayExpression(org.springframework.expression.Expression delayExpression)
     
    void
     
    void
    setMessageConverter(org.springframework.messaging.converter.MessageConverter messageConverter)
     
    void
    setMessageDeduplicationId(String messageDeduplicationId)
     
    void
    setMessageDeduplicationIdExpression(org.springframework.expression.Expression messageDeduplicationIdExpression)
     
    void
    setMessageDeduplicationIdExpressionString(String messageDeduplicationIdExpression)
     
    void
    setMessageGroupId(String messageGroupId)
     
    void
    setMessageGroupIdExpression(org.springframework.expression.Expression messageGroupIdExpression)
     
    void
     
    void
     
    void
    setQueueExpression(org.springframework.expression.Expression queueExpression)
     
    void
     
    void
    setQueueNotFoundStrategy(io.awspring.cloud.sqs.listener.QueueNotFoundStrategy queueNotFoundStrategy)
    Set a QueueNotFoundStrategy; defaults to QueueNotFoundStrategy.FAIL.

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

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

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

    handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention

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

    buildSendTimer, destroy, getComponentType, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, 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
  • Constructor Details

    • SqsMessageHandler

      public SqsMessageHandler(software.amazon.awssdk.services.sqs.SqsAsyncClient amazonSqs)
  • Method Details

    • setQueue

      public void setQueue(String queue)
    • setQueueExpressionString

      public void setQueueExpressionString(String queueExpression)
    • setQueueExpression

      public void setQueueExpression(org.springframework.expression.Expression queueExpression)
    • setQueueNotFoundStrategy

      public void setQueueNotFoundStrategy(io.awspring.cloud.sqs.listener.QueueNotFoundStrategy queueNotFoundStrategy)
      Set a QueueNotFoundStrategy; defaults to QueueNotFoundStrategy.FAIL.
      Parameters:
      queueNotFoundStrategy - the QueueNotFoundStrategy to use.
      Since:
      3.0
    • setDelay

      public void setDelay(int delaySeconds)
    • setDelayExpressionString

      public void setDelayExpressionString(String delayExpression)
    • setDelayExpression

      public void setDelayExpression(org.springframework.expression.Expression delayExpression)
    • setMessageGroupId

      public void setMessageGroupId(String messageGroupId)
    • setMessageGroupIdExpressionString

      public void setMessageGroupIdExpressionString(String groupIdExpression)
    • setMessageGroupIdExpression

      public void setMessageGroupIdExpression(org.springframework.expression.Expression messageGroupIdExpression)
    • setMessageDeduplicationId

      public void setMessageDeduplicationId(String messageDeduplicationId)
    • setMessageDeduplicationIdExpressionString

      public void setMessageDeduplicationIdExpressionString(String messageDeduplicationIdExpression)
    • setMessageDeduplicationIdExpression

      public void setMessageDeduplicationIdExpression(org.springframework.expression.Expression messageDeduplicationIdExpression)
    • setMessageConverter

      public void setMessageConverter(org.springframework.messaging.converter.MessageConverter messageConverter)
    • onInit

      protected void onInit()
      Overrides:
      onInit in class AbstractAwsMessageHandler<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>
    • messageToAwsRequest

      protected software.amazon.awssdk.awscore.AwsRequest messageToAwsRequest(org.springframework.messaging.Message<?> message)
      Specified by:
      messageToAwsRequest in class AbstractAwsMessageHandler<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>
    • handleMessageToAws

      protected CompletableFuture<? extends software.amazon.awssdk.awscore.AwsResponse> handleMessageToAws(org.springframework.messaging.Message<?> message, software.amazon.awssdk.awscore.AwsRequest request)
      Specified by:
      handleMessageToAws in class AbstractAwsMessageHandler<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>
    • additionalOnSuccessHeaders

      protected Map<String,?> additionalOnSuccessHeaders(software.amazon.awssdk.awscore.AwsRequest request, software.amazon.awssdk.awscore.AwsResponse response)
      Specified by:
      additionalOnSuccessHeaders in class AbstractAwsMessageHandler<Map<String,software.amazon.awssdk.services.sqs.model.MessageAttributeValue>>