
com.redislabs.riot.stream.processor.AbstractProducerProcessor Maven / Gradle / Ivy
The newest version!
package com.redislabs.riot.stream.processor;
import io.lettuce.core.StreamMessage;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.core.convert.converter.Converter;
public abstract class AbstractProducerProcessor
implements ItemProcessor, ProducerRecord> {
private final Converter, String> topicConverter;
protected AbstractProducerProcessor(Converter, String> topicConverter) {
this.topicConverter = topicConverter;
}
@Override
public ProducerRecord process(StreamMessage item) {
String topic = topicConverter.convert(item);
if (topic == null) {
throw new IllegalStateException("Topic is null");
}
return new ProducerRecord<>(topic, value(item));
}
protected abstract Object value(StreamMessage body);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy