[ 
https://issues.apache.org/jira/browse/CAMEL-19919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luca Burgazzoli updated CAMEL-19919:
------------------------------------
    Description: 
Headers in a Kafka Record are expressed as byte[], and it is quite common to 
convert such headers to String. 
It would be nice to provide a ready to use byte[] to String header deserializer 
instead, something like:

{code:java}
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Objects;

import org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer;

public class ToStringHeaderDeserializer implements KafkaHeaderDeserializer {
    private Charset charset = StandardCharsets.UTF_8;

    public Charset getCharset() {
        return charset;
    }

    public void setCharset(Charset charset) {
        this.charset = Objects.requireNonNull(charset);
    }

    @Override
    public Object deserialize(String key, byte[] value) {
        return new String(value, this.charset);
    }
}

{code}

  was:
Headers in a Kafka Record are expressed as byte[], and it is quite common to 
convert such headers to String. 
It would be nice to provide a ready to use byte[] to String header deserializer 
instead.


> camel-kafka: provided an out of the box byte[] to String header deserializer 
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-19919
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19919
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-kafka
>            Reporter: Luca Burgazzoli
>            Priority: Minor
>             Fix For: 4.1.0
>
>
> Headers in a Kafka Record are expressed as byte[], and it is quite common to 
> convert such headers to String. 
> It would be nice to provide a ready to use byte[] to String header 
> deserializer instead, something like:
> {code:java}
> import java.nio.charset.Charset;
> import java.nio.charset.StandardCharsets;
> import java.util.Objects;
> import org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer;
> public class ToStringHeaderDeserializer implements KafkaHeaderDeserializer {
>     private Charset charset = StandardCharsets.UTF_8;
>     public Charset getCharset() {
>         return charset;
>     }
>     public void setCharset(Charset charset) {
>         this.charset = Objects.requireNonNull(charset);
>     }
>     @Override
>     public Object deserialize(String key, byte[] value) {
>         return new String(value, this.charset);
>     }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to