Class SingleNodeKafkaResumeStrategy<T extends org.apache.camel.resume.Resumable>

  • All Implemented Interfaces:
    AutoCloseable, KafkaResumeStrategy<T>, org.apache.camel.resume.ResumeStrategy, org.apache.camel.resume.UpdatableConsumerResumeStrategy<T>, org.apache.camel.Service
    Direct Known Subclasses:
    MultiNodeKafkaResumeStrategy

    public class SingleNodeKafkaResumeStrategy<T extends org.apache.camel.resume.Resumable>
    extends Object
    implements KafkaResumeStrategy<T>
    A resume strategy that publishes offsets to a Kafka topic. This resume strategy is suitable for single node integrations.
    • Constructor Detail

      • SingleNodeKafkaResumeStrategy

        public SingleNodeKafkaResumeStrategy​(KafkaResumeStrategyConfiguration resumeStrategyConfiguration)
        Builds an instance of this class
        Parameters:
        resumeStrategyConfiguration - the configuration to use for this strategy instance
      • SingleNodeKafkaResumeStrategy

        public SingleNodeKafkaResumeStrategy​(KafkaResumeStrategyConfiguration resumeStrategyConfiguration,
                                             ExecutorService executorService)
        Builds an instance of this class
        Parameters:
        resumeStrategyConfiguration - the configuration to use for this strategy instance
    • Method Detail

      • doAdd

        protected void doAdd​(org.apache.camel.resume.OffsetKey<?> key,
                             org.apache.camel.resume.Offset<?> offsetValue)
      • updateLastOffset

        public void updateLastOffset​(T offset)
                              throws Exception
        Specified by:
        updateLastOffset in interface org.apache.camel.resume.UpdatableConsumerResumeStrategy<T extends org.apache.camel.resume.Resumable>
        Throws:
        Exception
      • loadCache

        public void loadCache()
        Loads the existing data into the cache
        Specified by:
        loadCache in interface org.apache.camel.resume.ResumeStrategy
      • poll

        protected void poll​(org.apache.kafka.clients.consumer.Consumer<byte[],​byte[]> consumer,
                            CountDownLatch latch)
      • checkAndSubscribe

        protected void checkAndSubscribe​(org.apache.kafka.clients.consumer.Consumer<byte[],​byte[]> consumer,
                                         String topic)
        Subscribe to the topic if not subscribed yet
        Parameters:
        topic - the topic to consume the messages from
      • checkAndSubscribe

        public void checkAndSubscribe​(org.apache.kafka.clients.consumer.Consumer<byte[],​byte[]> consumer,
                                      String topic,
                                      long remaining)
        Subscribe to the topic if not subscribed yet
        Parameters:
        topic - the topic to consume the messages from
        remaining - the number of messages to rewind from the last offset position (used to fill the cache)
      • consume

        protected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],​byte[]> consume​(org.apache.kafka.clients.consumer.Consumer<byte[],​byte[]> consumer)
        Consumes message from the topic previously setup
        Returns:
        An instance of the consumer records
      • consume

        protected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],​byte[]> consume​(int retries,
                                                                                                 org.apache.kafka.clients.consumer.Consumer<byte[],​byte[]> consumer)
        Consumes message from the topic previously setup
        Parameters:
        retries - how many times to retry consuming data from the topic
        consumer - the kafka consumer object instance to use
        Returns:
        An instance of the consumer records
      • getAdapter

        public org.apache.camel.resume.ResumeAdapter getAdapter()
        Specified by:
        getAdapter in interface org.apache.camel.resume.ResumeStrategy
      • setAdapter

        public void setAdapter​(org.apache.camel.resume.ResumeAdapter adapter)
        Specified by:
        setAdapter in interface org.apache.camel.resume.ResumeStrategy
      • getProducerErrors

        protected Collection<RecordError> getProducerErrors()
        Gets the set record of sent items
        Returns:
        A collection with all the record errors
      • build

        public void build()
        Specified by:
        build in interface org.apache.camel.Service
      • init

        public void init()
        Specified by:
        init in interface org.apache.camel.Service
      • stop

        public void stop()
        Specified by:
        stop in interface org.apache.camel.Service
      • start

        public void start()
        Specified by:
        start in interface org.apache.camel.Service
      • getPollDuration

        public Duration getPollDuration()
      • setPollDuration

        public void setPollDuration​(Duration pollDuration)
      • getProducer

        protected org.apache.kafka.clients.producer.Producer<byte[],​byte[]> getProducer()
      • resetProducerErrors

        public void resetProducerErrors()
        Clear the producer errors