Class AbstractMessageConvertingMessageSource<T,S>

java.lang.Object
io.awspring.cloud.sqs.listener.source.AbstractMessageConvertingMessageSource<T,S>
All Implemented Interfaces:
ConfigurableContainerComponent, MessageSource<T>
Direct Known Subclasses:
AbstractPollingMessageSource

public abstract class AbstractMessageConvertingMessageSource<T,S> extends Object implements MessageSource<T>
A MessageSource implementation capable of converting messages from a Source type to a Target type. Subclasses can use the convertMessage(S) or convertMessages(java.util.Collection<S>) methods to perform the conversion.

The MessagingMessageConverter can be retrieved from the ContainerOptions or from a subclass.

For converters that implement ContextAwareMessagingMessageConverter, a MessageConversionContext will be created, which can contain more useful information for message conversion.

If such context implements the AcknowledgementAwareMessageConversionContext, an AcknowledgementCallback can be added to the context by using the setupAcknowledgementForConversion(io.awspring.cloud.sqs.listener.acknowledgement.AcknowledgementCallback<T>) method/.

Since:
3.0
Author:
Tomaz Fernandes
  • Constructor Details

    • AbstractMessageConvertingMessageSource

      public AbstractMessageConvertingMessageSource()
  • Method Details

    • configure

      public void configure(ContainerOptions<?,?> containerOptions)
      Description copied from interface: ConfigurableContainerComponent
      Configure the component with the provided ContainerOptions instance
      Specified by:
      configure in interface ConfigurableContainerComponent
    • configureMessageSource

      protected void configureMessageSource(ContainerOptions<?,?> containerOptions)
    • setupAcknowledgementForConversion

      protected void setupAcknowledgementForConversion(AcknowledgementCallback<T> callback)
    • setPayloadDeserializationType

      public void setPayloadDeserializationType(@Nullable Class<?> payloadDeserializationType)
      Set the payload deserialization type. This will be used by the message converter to deserialize messages to the target type. Note that type mappers in MessagingMessageConverters take precedence over this type.
      Parameters:
      payloadDeserializationType - the target class
    • doConfigurePayloadTypeOnContext

      protected void doConfigurePayloadTypeOnContext(Class<?> payloadType, MessageConversionContext context)
      Hook method for subclasses to configure the payload type on their specific MessageConversionContext implementation.
      Parameters:
      payloadType - the payload type to configure
      context - the message conversion context
    • convertMessages

      protected Collection<Message<T>> convertMessages(Collection<S> messages)
    • convertMessage

      protected @Nullable Message<T> convertMessage(S msg)
    • getMessageConversionContext

      protected @Nullable MessageConversionContext getMessageConversionContext()