[
https://issues.apache.org/jira/browse/CAMEL-8790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-8790.
--------------------------------
Resolution: Fixed
Thanks for reporting and the patch.
> Kafka producer hard coded to use Strings
> ----------------------------------------
>
> Key: CAMEL-8790
> URL: https://issues.apache.org/jira/browse/CAMEL-8790
> Project: Camel
> Issue Type: Improvement
> Components: camel-kafka
> Affects Versions: 2.14.2, 2.15.2, 2.16.0
> Reporter: Mark Mindenhall
> Assignee: Claus Ibsen
> Fix For: 2.16.0, 2.15.3
>
> Attachments:
> 0001-CAMEL-8790-Fix-for-Kafka-producer-hard-coded-to-use-.patch
>
>
> Kafka natively supports two encoders for messages:
> # {{kafka.serializer.DefaultEncoder}} - encodes as byte arrays
> # {{kafka.serializer.StringEncoder}} - encodes as Strings
> Camel-kafka exposes settings to select the encoder (({{serializerClass}} and
> {{keySerializerClass}}), but the
> {{org.apache.camel.component.kafka.KafkaProducer}} class hard-codes String
> for both the key and value types. This results in a {{ClassCastException}}
> when using the {{DefaultDecoder}}.
> The attached patch fixes this as follows (conforming to kafka itself):
> * If no {{serializerClass}} option is specified, the {{DefaultDecoder}} is
> used.
> * If no {{keySerializerClass}} option is specified, the same encoder as
> {{serializerClass}} is used
> This fix shouldn't break any existing code, as there was not previously a
> default setting (i.e., {{StringEncoder}} always had to be specified).
> I created the patch against master, but it should backport easily to 2.15.x
> and 2.14.x.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)