
no.nav.common.kafka.producer.util.ProducerUtils Maven / Gradle / Ivy
package no.nav.common.kafka.producer.util;
import no.nav.common.json.JsonUtils;
import no.nav.common.kafka.producer.feilhandtering.StoredProducerRecord;
import no.nav.common.kafka.util.KafkaUtils;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.serialization.Serializer;
public class ProducerUtils {
private ProducerUtils() {}
public static ProducerRecord toJsonProducerRecord(String topic, Object value) {
return new ProducerRecord<>(topic, JsonUtils.toJson(value));
}
public static ProducerRecord toJsonProducerRecord(String topic, String key, Object value) {
return new ProducerRecord<>(topic, key, JsonUtils.toJson(value));
}
public static ProducerRecord toProducerRecord(String topic, String key, String value) {
return new ProducerRecord<>(topic, key, value);
}
public static StoredProducerRecord mapToStoredRecord(ProducerRecord record, Serializer keySerializer, Serializer valueSerializer) {
byte[] key = keySerializer.serialize(record.topic(), record.key());
byte[] value = valueSerializer.serialize(record.topic(), record.value());
String headersJson = KafkaUtils.headersToJson(record.headers());
return new StoredProducerRecord(record.topic(), key, value, headersJson);
}
public static ProducerRecord mapFromStoredRecord(StoredProducerRecord record) {
Headers headers = KafkaUtils.jsonToHeaders(record.getHeadersJson());
return new ProducerRecord<>(
record.getTopic(),
null,
null,
record.getKey(),
record.getValue(),
headers
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy