camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Mindenhall (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-8790) Kafka producer hard coded to use Strings
Date Fri, 22 May 2015 02:40:17 GMT
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)

Mime
View raw message