Mark Mindenhall created CAMEL-8790:
--------------------------------------
Summary: Kafka producer hard coded to use Strings
Key: CAMEL-8790
URL: https://issues.apache.org/jira/browse/CAMEL-8790
Project: Camel
Issue Type: Bug
Components: camel-kafka
Affects Versions: 2.15.2, 2.14.2, 2.16.0
Reporter: Mark Mindenhall
Fix For: 2.16.0
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., {{StringDecoder}} 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)