All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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