
no.nav.common.kafka.util.KafkaUtils Maven / Gradle / Ivy
package no.nav.common.kafka.util;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import no.nav.common.json.JsonUtils;
import no.nav.common.utils.StringUtils;
import org.apache.kafka.common.header.Header;
import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.header.internals.RecordHeader;
import org.apache.kafka.common.header.internals.RecordHeaders;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class KafkaUtils {
public static String headersToJson(Headers headers) {
if (headers == null) {
return "[]";
}
List kafkaHeaders = Arrays.stream(headers.toArray())
.map(header -> new KafkaHeader(header.key(), header.value()))
.collect(Collectors.toList());
return JsonUtils.toJson(kafkaHeaders);
}
public static Headers jsonToHeaders(String headersJson) {
if (StringUtils.nullOrEmpty(headersJson)) {
return new RecordHeaders();
}
List headers = JsonUtils.fromJsonArray(headersJson, KafkaHeader.class)
.stream()
.map(header -> new RecordHeader(header.getKey(), header.getValue()))
.collect(Collectors.toList());
return new RecordHeaders(headers);
}
/**
* {@link org.apache.kafka.common.header.Header} contains information we dont need when serializing
*/
@NoArgsConstructor
@AllArgsConstructor
@Data
static class KafkaHeader {
String key;
byte[] value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy