...
Option | Default | Description |
---|---|---|
lineLength | 76 | To specific a maximum line length for the encoded data. |
lineSeparator | \r\n | The line separators to use. |
urlSafe |
| Instead of emitting '+' and '/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. |
You configure the data format using this tag:
Code Block | ||
---|---|---|
| ||
<camelContext>
<dataFormats>
<!-- for a newline character (\n), use the HTML entity notation coupled with the ASCII code. -->
<base64 lineSeparator=" " id="base64withNewLine" />
<base64 lineLength="64" id="base64withLineLength64" />
</dataFormats>
...
</camelContext> |
Then you can use it later by its reference:
Code Block | ||
---|---|---|
| ||
<route>
<from uri="direct:startEncode" />
<marshal ref="base64withLineLength64" />
<to uri="mock:result" />
</route> |
Marshal
In this example we marshal the file content to base64 object.
Code Block |
---|
from("file://data.bin").marshal().base64().to("jms://myqueue"); |
Code Block | ||
---|---|---|
| ||
<from uri="file://data.bin">
<marshal>
<base64/>
</marshal>
<to uri="jms://myqueue"/> |
Unmarshal
In this example we unmarshal the payload from the JMS queue to a byte[] object, before its processed by the newOrder processor.
Code Block |
---|
from("jms://queue/order").unmarshal().base64().processRef("newOrder");
|
Code Block | ||
---|---|---|
| ||
<from uri="jms://queue/order"> <marshal> <base64/> </marshal> <to uri="bean:newOrder"/> |
Dependencies
To use Base64 in your Camel routes you need to add a dependency on camel-base64 which implements this data format.
...