Daveva
Daveva

Reputation: 21

Quarkus SmallRye Messaging Kafka Avro native compilation failed

I'm using SmallRye Reactive Messaging with Kafka with the Confluent Registry and AVRO. It works fine as explained in this blog https://quarkus.io/blog/kafka-avro/ But it seems not work in native compilation in the source code associated to the blog: https://github.com/cescoffier/quarkus-kafka-and-avro

I have the same problem with my environment (Avro 1.10.0 and Confluent Registry) You will see the logs at the end of this message.

Is it planned to work on the native support? Or may be an issue must be opened?

Remark: quarkus avro extension with Kafka Streams + Avro + Confluent Registry works fine in native.

Thanks.

[kafka-and-avro-1.0.0-SNAPSHOT-runner:96219] analysis: 28 016,32 ms, 2,72 GB Error: Classes that should be initialized at run time got initialized during image building: me.escoffier.quarkus.Movie the class was requested to be initialized at run time (from feature io.quarkus.runner.AutoFeature.beforeAnalysis). To see why me.escoffier.quarkus.Movie got initialized use -H:+TraceClassInitialization org.apache.avro.generic.GenericDatumReader the class was requested to be initialized at run time (from feature io.quarkus.runner.AutoFeature.beforeAnalysis). To see why org.apache.avro.generic.GenericDatumReader got initialized use -H:+TraceClassInitialization

com.oracle.svm.core.util.UserError$UserException: Classes that should be initialized at run time got initialized during image building: me.escoffier.quarkus.Movie the class was requested to be initialized at run time (from feature io.quarkus.runner.AutoFeature.beforeAnalysis). To see why me.escoffier.quarkus.Movie got initialized use -H:+TraceClassInitialization org.apache.avro.generic.GenericDatumReader the class was requested to be initialized at run time (from feature io.quarkus.runner.AutoFeature.beforeAnalysis). To see why org.apache.avro.generic.GenericDatumReader got initialized use -H:+TraceClassInitialization

Upvotes: 1

Views: 483

Answers (1)

Xabe
Xabe

Reputation: 1

The problem is that to use avro in native you have to indicate to graalvm the classes that it has to do native.

To use quarkus with avro in native mode you need to declare all avro objects in file reflection-config.json

I have an example on github

Upvotes: 0

Related Questions