Class CompositeRecordInterceptor<K,V>
java.lang.Object
org.springframework.kafka.listener.CompositeRecordInterceptor<K,V>
- Type Parameters:
K- the key type.V- the value type.
- All Implemented Interfaces:
RecordInterceptor<K,,V> ThreadStateProcessor
A
RecordInterceptor that delegates to one or more RecordInterceptors in
order.- Since:
- 2.3
- Author:
- Artem Bilan, Gary Russell
-
Constructor Summary
ConstructorsConstructorDescriptionCompositeRecordInterceptor(RecordInterceptor<K, V>... delegates) Construct an instance with the provided delegates. -
Method Summary
Modifier and TypeMethodDescriptionvoidafterRecord(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Called when processing the record is complete eitherRecordInterceptor.success(ConsumerRecord, Consumer)orRecordInterceptor.failure(ConsumerRecord, Exception, Consumer).voidclearThreadState(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Call to clear thread-bound resources which were set up inThreadStateProcessor.setupThreadState(Consumer).voidfailure(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, Exception exception, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Called after the listener throws an exception.intercept(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Perform some action on the record or return a different one.voidsetupThreadState(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Call to set up thread-bound resources which will be available for the entire duration of enclosed operation involving aConsumer.voidsuccess(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Called after the listener exits normally.
-
Constructor Details
-
CompositeRecordInterceptor
Construct an instance with the provided delegates.- Parameters:
delegates- the delegates.
-
-
Method Details
-
intercept
@Nullable public org.apache.kafka.clients.consumer.ConsumerRecord<K,V> intercept(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Description copied from interface:RecordInterceptorPerform some action on the record or return a different one. If null is returned the record will be skipped. Invoked before the listener. IMPORTANT; if this method returns a different record, the topic, partition and offset must not be changed to avoid undesirable side-effects.- Specified by:
interceptin interfaceRecordInterceptor<K,V> - Parameters:
record- the record.consumer- the consumer.- Returns:
- the record or null.
-
success
public void success(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Description copied from interface:RecordInterceptorCalled after the listener exits normally.- Specified by:
successin interfaceRecordInterceptor<K,V> - Parameters:
record- the record.consumer- the consumer.
-
failure
public void failure(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, Exception exception, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Description copied from interface:RecordInterceptorCalled after the listener throws an exception.- Specified by:
failurein interfaceRecordInterceptor<K,V> - Parameters:
record- the record.exception- the exception.consumer- the consumer.
-
setupThreadState
public void setupThreadState(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Description copied from interface:ThreadStateProcessorCall to set up thread-bound resources which will be available for the entire duration of enclosed operation involving aConsumer.- Specified by:
setupThreadStatein interfaceThreadStateProcessor- Parameters:
consumer- the consumer.
-
clearThreadState
public void clearThreadState(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Description copied from interface:ThreadStateProcessorCall to clear thread-bound resources which were set up inThreadStateProcessor.setupThreadState(Consumer).- Specified by:
clearThreadStatein interfaceThreadStateProcessor- Parameters:
consumer- the consumer.
-
afterRecord
public void afterRecord(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> record, org.apache.kafka.clients.consumer.Consumer<K, V> consumer) Description copied from interface:RecordInterceptorCalled when processing the record is complete eitherRecordInterceptor.success(ConsumerRecord, Consumer)orRecordInterceptor.failure(ConsumerRecord, Exception, Consumer).- Specified by:
afterRecordin interfaceRecordInterceptor<K,V> - Parameters:
record- the record.consumer- the consumer.
-