AssignmentAdapterHelper.java

Overview

`AssignmentAdapterHelper.java` is a utility class within the [org.apache.camel.component.kafka.consumer.support.classic](/projects/289/68593) package. Its primary responsibility is to determine and provide an appropriate Kafka partition assignment adapter based on the configuration of a Kafka consumer in Apache Camel. This helper class facilitates support for different resume strategies when a Kafka consumer is assigned partitions, specifically handling offset-based resuming, seek policy-based resuming, or falling back to a no-operation strategy.

In essence, it abstracts the logic that selects which partition assignment adapter should be used for resuming consumption from Kafka partitions, based on the consumer's configuration.


Classes and Methods

Class: AssignmentAdapterHelper

Constants

Name

Type

Description

`NO_OP_ASSIGNMENT_ADAPTER`

`NoOpPartitionAssignmentAdapter`

Singleton instance used when no resume strategy is applicable.

`LOG`

`Logger`

Logger instance for debug/info logging.

Constructor

Static Methods

resolveBuiltinResumeAdapters(KafkaConfiguration configuration) : PartitionAssignmentAdapter

Important Implementation Details


Interaction with Other Components


Visual Diagram

The following Mermaid class diagram illustrates the structure and key relationships relevant to `AssignmentAdapterHelper.java`. It shows the utility class and the partition assignment adapters it returns based on configuration.

classDiagram
    class AssignmentAdapterHelper {
        -NO_OP_ASSIGNMENT_ADAPTER: NoOpPartitionAssignmentAdapter
        -LOG: Logger
        +resolveBuiltinResumeAdapters(configuration: KafkaConfiguration): PartitionAssignmentAdapter
    }
    
    class KafkaConfiguration {
        +getOffsetRepository(): StateRepository<String, String>
        +getSeekTo(): SeekPolicy
    }
    
    class PartitionAssignmentAdapter {
        <<interface>>
        +onPartitionsAssigned()
        +onPartitionsRevoked()
    }
    
    class OffsetPartitionAssignmentAdapter {
        -offsetRepository: StateRepository<String, String>
        +onPartitionsAssigned()
        +onPartitionsRevoked()
    }
    
    class SeekPolicyPartitionAssignmentAdapter {
        -seekPolicy: SeekPolicy
        +onPartitionsAssigned()
        +onPartitionsRevoked()
    }
    
    class NoOpPartitionAssignmentAdapter {
        +onPartitionsAssigned()
        +onPartitionsRevoked()
    }
    
    AssignmentAdapterHelper --> PartitionAssignmentAdapter : returns
    PartitionAssignmentAdapter <|-- OffsetPartitionAssignmentAdapter
    PartitionAssignmentAdapter <|-- SeekPolicyPartitionAssignmentAdapter
    PartitionAssignmentAdapter <|-- NoOpPartitionAssignmentAdapter
    AssignmentAdapterHelper ..> KafkaConfiguration : uses

Summary

`AssignmentAdapterHelper.java` is a focused utility class that encapsulates the logic for selecting the appropriate built-in Kafka partition assignment adapter according to the consumer's configuration in Apache Camel. It supports offset-based resuming, seek-policy-based resuming, or a no-operation fallback, enabling flexible and modular handling of partition assignment resume strategies in the Kafka consumer lifecycle. The class enhances maintainability by centralizing this decision logic and aids in clean separation of concerns within the Kafka component's consumer support module.