/** * Returns the {@link KafkaConsumer#subscribe(Collection, ConsumerRebalanceListener)}, * {@link KafkaConsumer#subscribe(Pattern, ConsumerRebalanceListener)} or {@link KafkaConsumer#assign(Collection)} * operation corresponding to the subscription or assignment options configured for this instance. * @return subscribe or assign operation with rebalance listeners corresponding to this options instance */ @NonNull default Consumer<org.apache.kafka.clients.consumer.Consumer<K, V>> subscriber(@NonNull ConsumerRebalanceListener listener) { Objects.requireNonNull(listener); if (subscriptionTopics() != null) return consumer -> consumer.subscribe(subscriptionTopics(), listener); else if (subscriptionPattern() != null) return consumer -> consumer.subscribe(subscriptionPattern(), listener); else if (assignment() != null) return consumer -> { consumer.assign(assignment()); listener.onPartitionsAssigned(assignment()); }; else throw new IllegalStateException("No subscriptions have been created"); }
/** * Returns the {@link KafkaConsumer#subscribe(Collection, ConsumerRebalanceListener)}, * {@link KafkaConsumer#subscribe(Pattern, ConsumerRebalanceListener)} or {@link KafkaConsumer#assign(Collection)} * operation corresponding to the subscription or assignment options configured for this instance. * @return subscribe or assign operation with rebalance listeners corresponding to this options instance */ @NonNull default Consumer<org.apache.kafka.clients.consumer.Consumer<K, V>> subscriber(@NonNull ConsumerRebalanceListener listener) { Objects.requireNonNull(listener); if (subscriptionTopics() != null) return consumer -> consumer.subscribe(subscriptionTopics(), listener); else if (subscriptionPattern() != null) return consumer -> consumer.subscribe(subscriptionPattern(), listener); else if (assignment() != null) return consumer -> { consumer.assign(assignment()); listener.onPartitionsAssigned(assignment()); }; else throw new IllegalStateException("No subscriptions have been created"); }
ImmutableReceiverOptions(ReceiverOptions<K, V> options) { this( options.consumerProperties(), options.assignListeners(), options.revokeListeners(), options.keyDeserializer(), options.valueDeserializer(), options.pollTimeout(), options.closeTimeout(), options.commitInterval(), options.commitBatchSize(), options.atmostOnceCommitAheadSize(), options.maxCommitAttempts(), options.subscriptionTopics(), options.assignment(), options.subscriptionPattern(), options.schedulerSupplier() ); }
ImmutableReceiverOptions(ReceiverOptions<K, V> options) { this( options.consumerProperties(), options.assignListeners(), options.revokeListeners(), options.keyDeserializer(), options.valueDeserializer(), options.pollTimeout(), options.closeTimeout(), options.commitInterval(), options.commitBatchSize(), options.atmostOnceCommitAheadSize(), options.maxCommitAttempts(), options.subscriptionTopics(), options.assignment(), options.subscriptionPattern(), options.schedulerSupplier() ); }