Avro

Since Camel Quarkus 1.0.0-M6, JVM and native

Serialize and deserialize messages using Apache Avro binary data format.

What’s inside

Please refer to the above link for usage and configuration details.

Maven coordinates

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-avro</artifactId>
</dependency>

Check the User guide for more information about writing Camel Quarkus applications.

Additional Camel Quarkus configuration

Beyond standard usages known from vanilla Camel, Camel Quarkus adds the possibility to parse the Avro schema at build time both in JVM and Native mode via the @BuildTimeAvroDataFormat annotation.

For instance below, in the first step the user.avsc schema resource is parsed at build time. In the second step, an AvroDataFormat instance using the previously parsed schema is injected in the buildTimeAvroDataFormat field at runtime. At the end of the day, the injected data format is used from the configure() method in order to marshal an incoming message.

@BuildTimeAvroDataFormat("user.avsc")
AvroDataFormat buildTimeAvroDataFormat;

@Override
public void configure() {
  from("direct:marshalUsingBuildTimeAvroDataFormat").marshal(buildTimeAvroDataFormat);
}