0
votes

I have a server which has Java 1.6. There I need to use Confluent's KafkaAvroDeserializer to deserialize avro messages.

The problem is:

If I use Confluent-1.0(which is compatible with Java >=1.6), then I can't deserialize, as kafka-avro-serializer-1.0.jar doesn't have KafkaAvroDeserializer Method. It just has AbstractKafkaAvroDeserializer where I can't deserialize based on schema registry URL and byte[] message.

And If I use Confluent-2.0 or above it has everything but it is only compatible with java>=1.7.

What should I do in this case?

For comparison:

http://docs.confluent.io/1.0.1/installation.html

http://docs.confluent.io/2.0.0/installation.html

1
I would highly recommend to try to update to Java 1.8 -- bother your colleagues/admin. Long Term Support for 1.6 was stopped Feb 2013(!) already (for 1.7 stopped April 2015) See: oracle.com/technetwork/java/eol-135779.html Kafka community is discussion the move to 1.8 for future releases already.Matthias J. Sax

1 Answers

0
votes

The new deserializer interface for Kafka wasn't introduced/finalized until Kafka 0.9.0.0 which corresponds to Confluent Platform 2.0.0. That's also the release when Java 6 support was removed, so unfortunately there will not be a way to get this working unless you use your own build where you use Java 6 to build (which will also require a lot of patching of the code to make it Java 6 compatible).

Java 6 has been EOL for more than 3 years. Even Java 7 has been EOL for over a year now and many projects are starting to drop support for it. Eventually Kafka will need to drop support as well.