| [[lzf-dataformat]] |
| = LZF Deflate Compression DataFormat |
| :page-source: components/camel-lzf/src/main/docs/lzf-dataformat.adoc |
| |
| *Available as of Camel version 2.17* |
| |
| The |
| LZF xref:manual::data-format.adoc[Data Format] is a message compression |
| and de-compression format. It uses the |
| LZF deflate algorithm. Messages marshalled using LZF compression can be |
| unmarshalled using LZF decompression just prior to being consumed at the |
| endpoint. The compression capability is quite useful when you deal with |
| large XML and Text based payloads or when you read messages previously |
| comressed using LZF algotithm. |
| |
| == Options |
| |
| // dataformat options: START |
| The LZF Deflate Compression dataformat supports 2 options, which are listed below. |
| |
| |
| |
| [width="100%",cols="2s,1m,1m,6",options="header"] |
| |=== |
| | Name | Default | Java Type | Description |
| | usingParallelCompression | false | Boolean | Enable encoding (compress) using multiple processing cores. |
| | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. |
| |=== |
| // dataformat options: END |
| // spring-boot-auto-configure options: START |
| == Spring Boot Auto-Configuration |
| |
| When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration: |
| |
| [source,xml] |
| ---- |
| <dependency> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-lzf-starter</artifactId> |
| <version>x.x.x</version> |
| <!-- use the same version as your Camel core version --> |
| </dependency> |
| ---- |
| |
| |
| The component supports 3 options, which are listed below. |
| |
| |
| |
| [width="100%",cols="2,5,^1,2",options="header"] |
| |=== |
| | Name | Description | Default | Type |
| | *camel.dataformat.lzf.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. | false | Boolean |
| | *camel.dataformat.lzf.enabled* | Enable lzf dataformat | true | Boolean |
| | *camel.dataformat.lzf.using-parallel-compression* | Enable encoding (compress) using multiple processing cores. | false | Boolean |
| |=== |
| // spring-boot-auto-configure options: END |
| ND |
| |
| == Marshal |
| |
| In this example we marshal a regular text/XML payload to a compressed |
| payload employing LZF compression format and send it an ActiveMQ queue |
| called MY_QUEUE. |
| |
| [source,java] |
| ------------------------------------------------------------------- |
| from("direct:start").marshal().lzf().to("activemq:queue:MY_QUEUE"); |
| ------------------------------------------------------------------- |
| |
| == Unmarshal |
| |
| In this example we unmarshal a LZF payload from an ActiveMQ queue called |
| MY_QUEUE to its original format, and forward it for processing to |
| the `UnGZippedMessageProcessor`. |
| |
| [source,java] |
| ---------------------------------------------------------------------------------------------- |
| from("activemq:queue:MY_QUEUE").unmarshal().lzf().process(new UnCompressedMessageProcessor()); |
| ---------------------------------------------------------------------------------------------- |
| |
| == Dependencies |
| |
| To useLZF compression in your camel routes you need to add a dependency |
| on *camel-lzf* which implements this data format. |
| |
| If you use Maven you can just add the following to your `pom.xml`, |
| substituting the version number for the latest & greatest release. |
| |
| [source,xml] |
| ---------------------------------------------------------- |
| <dependency> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-lzf</artifactId> |
| <version>x.x.x</version> |
| <!-- use the same version as your Camel core version --> |
| </dependency> |
| ---------------------------------------------------------- |