Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 68. Avro
This component provides a dataformat for avro, which allows serialization and deserialization of messages using Apache Avro’s binary dataformat. Since Camel 3.2 rpc functionality was moved into separate camel-avro-rpc component.
Maven users will need to add the following dependency to their pom.xml for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-avro</artifactId>
<version>{CamelSBVersion}</version>
<!-- use the same version as your Camel core version -->
</dependency>
You can easily generate classes from a schema, using maven, ant etc. More details can be found at the Apache Avro documentation.
68.1. Avro Dataformat Options Copier lienLien copié sur presse-papiers!
The Avro dataformat supports 1 options, which are listed below.
| Name | Default | Java Type | Description |
|---|---|---|---|
| instanceClassName |
| Class name to use for marshal and unmarshalling. |
68.2. Avro Data Format usage Copier lienLien copié sur presse-papiers!
Using the avro data format is as easy as specifying that the class that you want to marshal or unmarshal in your route.
AvroDataFormat format = new AvroDataFormat(Value.SCHEMA$);
from("direct:in").marshal(format).to("direct:marshal");
from("direct:back").unmarshal(format).to("direct:unmarshal");
Where Value is an Avro Maven Plugin Generated class.
or in XML
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:in"/>
<marshal>
<avro instanceClass="org.apache.camel.dataformat.avro.Message"/>
</marshal>
<to uri="log:out"/>
</route>
</camelContext>
An alternative can be to specify the dataformat inside the context and reference it from your route.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<dataFormats>
<avro id="avro" instanceClass="org.apache.camel.dataformat.avro.Message"/>
</dataFormats>
<route>
<from uri="direct:in"/>
<marshal><custom ref="avro"/></marshal>
<to uri="log:out"/>
</route>
</camelContext>
In the same manner you can umarshal using the avro data format.
68.3. Spring Boot Auto-Configuration Copier lienLien copié sur presse-papiers!
When using avro with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-avro-starter</artifactId>
</dependency>
The component supports 2 options, which are listed below.
| Name | Description | Default | Type |
|---|---|---|---|
| camel.dataformat.avro.enabled | Whether to enable auto configuration of the avro data format. This is enabled by default. | Boolean | |
| camel.dataformat.avro.instance-class-name | Class name to use for marshal and unmarshalling. | String |