Class KinesisMessageChannelBinder

java.lang.Object
org.springframework.cloud.stream.binder.AbstractBinder<MessageChannel,org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>>
org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
io.awspring.cloud.kinesis.stream.binder.KinesisMessageChannelBinder
All Implemented Interfaces:
Aware, InitializingBean, org.springframework.cloud.stream.binder.Binder<MessageChannel,org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>>, org.springframework.cloud.stream.binder.ExtendedBindingProperties<KinesisConsumerProperties,KinesisProducerProperties>, org.springframework.cloud.stream.binder.ExtendedPropertiesBinder<MessageChannel,KinesisConsumerProperties,KinesisProducerProperties>, org.springframework.cloud.stream.binder.PollableConsumerBinder<MessageHandler,org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>>, ApplicationContextAware, ApplicationEventPublisherAware

public class KinesisMessageChannelBinder extends org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner> implements org.springframework.cloud.stream.binder.ExtendedPropertiesBinder<MessageChannel,KinesisConsumerProperties,KinesisProducerProperties>
The Spring Cloud Stream Binder implementation for AWS Kinesis.
Since:
4.0
Author:
Peter Oates, Artem Bilan, Arnaud Lecollaire, Dirk Bonhomme, Asiel Caballero, Dmytro Danilenkov, Minkyu Moon
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder

    org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.ErrorInfrastructure, org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.PolledConsumerResources
  • Field Summary

    Fields inherited from class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder

    provisioningProvider

    Fields inherited from class org.springframework.cloud.stream.binder.AbstractBinder

    logger
  • Constructor Summary

    Constructors
    Constructor
    Description
    KinesisMessageChannelBinder(KinesisBinderConfigurationProperties configurationProperties, KinesisStreamProvisioner provisioningProvider, software.amazon.awssdk.services.kinesis.KinesisAsyncClient amazonKinesis, @Nullable software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient dynamoDBClient, @Nullable software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient dynamoDBStreams, @Nullable software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient cloudWatchClient)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.springframework.integration.core.MessageProducer
    createConsumerEndpoint(org.springframework.cloud.stream.provisioning.ConsumerDestination destination, String group, org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties> properties)
     
    protected MessageHandler
    createProducerMessageHandler(org.springframework.cloud.stream.provisioning.ProducerDestination destination, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties, MessageChannel errorChannel)
     
    protected MessageHandler
    createProducerMessageHandler(org.springframework.cloud.stream.provisioning.ProducerDestination destination, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties, MessageChannel channel, @Nullable MessageChannel errorChannel)
     
    software.amazon.awssdk.services.kinesis.KinesisAsyncClient
     
     
     
    protected org.springframework.integration.support.ErrorMessageStrategy
     
     
     
    Class<? extends org.springframework.cloud.stream.binder.BinderSpecificPropertiesProvider>
     
     
    protected void
     
    protected void
    postProcessOutputChannel(MessageChannel outputChannel, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties)
     
    void
    setCheckpointStore(org.springframework.integration.metadata.ConcurrentMetadataStore checkpointStore)
     
    void
     
    void
    setKinesisProducerConfiguration(software.amazon.kinesis.producer.KinesisProducerConfiguration kinesisProducerConfiguration)
     
    void
    setLockRegistry(org.springframework.integration.support.locks.LockRegistry<?> lockRegistry)
     
    void
    setObservationRegistry(@Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
     

    Methods inherited from class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder

    afterUnbindConsumer, afterUnbindProducer, bindPollableConsumer, createPolledConsumerResources, customizeProducerMessageHandler, doBindConsumer, doBindProducer, doGetAdditionalConfigurationProperties, errorsBaseName, errorsBaseName, getApplicationEventPublisher, getContainerCustomizer, getDefaultErrorMessageHandler, getErrorBridgeName, getErrorBridgeName, getErrorMessageHandler, getErrorMessageHandlerName, getErrorRecovererName, getMessageSourceCustomizer, getPolledConsumerErrorMessageHandler, getPolledConsumerRecoveryCallback, postProcessPollableSource, registerErrorInfrastructure, registerErrorInfrastructure, setApplicationEventPublisher, setConsumerEndpointCustomizer, setContainerCustomizer, setProducerMessageHandlerCustomizer, useNativeEncoding

    Methods inherited from class org.springframework.cloud.stream.binder.AbstractBinder

    afterPropertiesSet, applyPrefix, bindConsumer, bindProducer, buildRetryTemplate, constructDLQName, getApplicationContext, getBeanFactory, getBindingServiceProperties, getEvaluationContext, groupedName, setApplicationContext

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.springframework.cloud.stream.binder.Binder

    bindConsumer, bindProducer

    Methods inherited from interface org.springframework.cloud.stream.binder.ExtendedBindingProperties

    getBindings
  • Constructor Details

    • KinesisMessageChannelBinder

      public KinesisMessageChannelBinder(KinesisBinderConfigurationProperties configurationProperties, KinesisStreamProvisioner provisioningProvider, software.amazon.awssdk.services.kinesis.KinesisAsyncClient amazonKinesis, @Nullable software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient dynamoDBClient, @Nullable software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient dynamoDBStreams, @Nullable software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient cloudWatchClient)
  • Method Details

    • setExtendedBindingProperties

      public void setExtendedBindingProperties(KinesisExtendedBindingProperties extendedBindingProperties)
    • setCheckpointStore

      public void setCheckpointStore(org.springframework.integration.metadata.ConcurrentMetadataStore checkpointStore)
    • setLockRegistry

      public void setLockRegistry(org.springframework.integration.support.locks.LockRegistry<?> lockRegistry)
    • setKinesisProducerConfiguration

      public void setKinesisProducerConfiguration(software.amazon.kinesis.producer.KinesisProducerConfiguration kinesisProducerConfiguration)
    • setObservationRegistry

      public void setObservationRegistry(@Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
    • getExtendedConsumerProperties

      public KinesisConsumerProperties getExtendedConsumerProperties(String channelName)
      Specified by:
      getExtendedConsumerProperties in interface org.springframework.cloud.stream.binder.ExtendedBindingProperties<KinesisConsumerProperties,KinesisProducerProperties>
    • getExtendedProducerProperties

      public KinesisProducerProperties getExtendedProducerProperties(String channelName)
      Specified by:
      getExtendedProducerProperties in interface org.springframework.cloud.stream.binder.ExtendedBindingProperties<KinesisConsumerProperties,KinesisProducerProperties>
    • getDefaultsPrefix

      public String getDefaultsPrefix()
      Specified by:
      getDefaultsPrefix in interface org.springframework.cloud.stream.binder.ExtendedBindingProperties<KinesisConsumerProperties,KinesisProducerProperties>
    • getExtendedPropertiesEntryClass

      public Class<? extends org.springframework.cloud.stream.binder.BinderSpecificPropertiesProvider> getExtendedPropertiesEntryClass()
      Specified by:
      getExtendedPropertiesEntryClass in interface org.springframework.cloud.stream.binder.ExtendedBindingProperties<KinesisConsumerProperties,KinesisProducerProperties>
    • getAmazonKinesis

      public software.amazon.awssdk.services.kinesis.KinesisAsyncClient getAmazonKinesis()
    • getStreamsInUse

      public List<String> getStreamsInUse()
    • onInit

      protected void onInit() throws Exception
      Overrides:
      onInit in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
      Throws:
      Exception
    • getBinderIdentity

      public String getBinderIdentity()
      Specified by:
      getBinderIdentity in interface org.springframework.cloud.stream.binder.Binder<MessageChannel,org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>>
    • createProducerMessageHandler

      protected MessageHandler createProducerMessageHandler(org.springframework.cloud.stream.provisioning.ProducerDestination destination, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties, MessageChannel channel, @Nullable MessageChannel errorChannel)
      Overrides:
      createProducerMessageHandler in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
    • createProducerMessageHandler

      protected MessageHandler createProducerMessageHandler(org.springframework.cloud.stream.provisioning.ProducerDestination destination, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties, MessageChannel errorChannel)
      Specified by:
      createProducerMessageHandler in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
    • postProcessOutputChannel

      protected void postProcessOutputChannel(MessageChannel outputChannel, org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties> producerProperties)
      Overrides:
      postProcessOutputChannel in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
    • createConsumerEndpoint

      protected org.springframework.integration.core.MessageProducer createConsumerEndpoint(org.springframework.cloud.stream.provisioning.ConsumerDestination destination, String group, org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties> properties)
      Specified by:
      createConsumerEndpoint in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>
    • getErrorMessageStrategy

      protected org.springframework.integration.support.ErrorMessageStrategy getErrorMessageStrategy()
      Overrides:
      getErrorMessageStrategy in class org.springframework.cloud.stream.binder.AbstractMessageChannelBinder<org.springframework.cloud.stream.binder.ExtendedConsumerProperties<KinesisConsumerProperties>,org.springframework.cloud.stream.binder.ExtendedProducerProperties<KinesisProducerProperties>,KinesisStreamProvisioner>