CBOR
Since Camel 3.0
CBOR is a Data Format that uses the Jackson library with the CBOR extension to unmarshal a CBOR payload into Java objects or to marshal Java objects into a CBOR payload.
-
Java
-
XML
-
YAML
from("activemq:My.Queue")
.unmarshal().cbor()
.to("mqseries:Another.Queue"); <route>
<from uri="activemq:My.Queue"/>
<unmarshal><cbor/></unmarshal>
<to uri="mqseries:Another.Queue"/>
</route> - route:
from:
uri: activemq:My.Queue
steps:
- unmarshal:
cbor: {}
- to:
uri: mqseries:Another.Queue Usage
CBOR Options
The CBOR dataformat supports 10 options, which are listed below.
| Name | Default | Java Type | Description |
|---|---|---|---|
| Lookup and use the existing CBOR ObjectMapper with the given id when using Jackson. | ||
|
| Whether to lookup and use default Jackson CBOR ObjectMapper from the registry. | |
| Class name of the java type to use when unmarshalling. | ||
| Refers to a custom collection type to lookup in the registry to use. | ||
|
| To unmarshal to a List of Map or a List of Pojo. | |
|
| If enabled then Jackson CBOR is allowed to attempt to use the CamelCBORUnmarshalType header during the unmarshalling. | |
|
| To enable pretty printing output nicely formatted. Is by default false. | |
|
| Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to. | |
| Set of features to enable on the Jackson ObjectMapper. Multiple features can be separated by comma. | ||
| Set of features to disable on the Jackson ObjectMapper. Multiple features can be separated by comma. |
Using CBOR in Spring DSL
When using Data Format in Spring DSL, you need to declare the data formats first. This is done in the DataFormats XML tag.
<dataFormats>
<!-- here we define a CBOR data format with the id test, and that it should use the TestPojo as the class type when
doing unmarshal. -->
<cbor id="test" unmarshalType="org.apache.camel.component.cbor.TestPojo"/>
</dataFormats> And then you can refer to this id in the route:
-
Java
-
XML
-
YAML
from("direct:back")
.unmarshal("test")
.to("mock:reverse"); <route>
<from uri="direct:back"/>
<unmarshal><custom ref="test"/></unmarshal>
<to uri="mock:reverse"/>
</route> - route:
from:
uri: direct:back
steps:
- unmarshal:
ref: test
- to:
uri: mock:reverse