public class KafkaConsumerInterceptor implements ConsumerInterceptor<String, Object> {
private final Logger logger = LoggerFactory.getLogger(getClass());
private String env = SystemEnv.instance.isOnline() ? "prod" : "fat";
@Override
public ConsumerRecords<String, Object> onConsume(ConsumerRecords<String, Object> consumerRecords) {
Map<TopicPartition, List<ConsumerRecord<String, Object>>> newRecords = new HashMap<>();
for(TopicPartition partition:consumerRecords.partitions()){
List<ConsumerRecord<String, Object>> recs = consumerRecords.records(partition);
List<ConsumerRecord<String, Object>> newRecs = new ArrayList<>();
for(ConsumerRecord<String,Object> rec:recs){
ConsumerRecord<String,Object> newRec = new ConsumerRecord<>(rec.topic(),
rec.partition(),rec.offset(),rec.key(),rec.value()+"value");
newRecs.add(newRec);
}
newRecords.put(partition,newRecs);
}
return new ConsumerRecords<String,Object>(newRecords);
}
@Override
public void onCommit(Map<TopicPartition, OffsetAndMetadata> map) {
}
@Override
public void close() {
}
@Override
public void configure(Map<String, ?> map) {
}
}