| [[zipdeflater-dataformat]] |
| = Zip Deflate Compression DataFormat |
| :page-source: components/camel-zip-deflater/src/main/docs/zipdeflater-dataformat.adoc |
| |
| *Available as of Camel version 2.12* |
| |
| |
| The Zip Deflater Data Format is a message compression and |
| de-compression format. Messages marshalled using Zip compression can be |
| unmarshalled using Zip 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. It facilitates more optimal use of |
| network bandwidth while incurring a small cost in order to compress and |
| decompress payloads at the endpoint. |
| |
| NOTE: This dataformat is not for working with zip files such as uncompressing and building zip files. |
| Instead use the zipfile dataformat. |
| |
| == Options |
| |
| // dataformat options: START |
| The Zip Deflate Compression dataformat supports 2 options, which are listed below. |
| |
| |
| |
| [width="100%",cols="2s,1m,1m,6",options="header"] |
| |=== |
| | Name | Default | Java Type | Description |
| | compressionLevel | -1 | Integer | To specify a specific compression between 0-9. -1 is default compression, 0 is no compression, and 9 is best compression. |
| | 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 |
| |
| == Marshal |
| |
| In this example we marshal a regular text/XML payload to a compressed |
| payload employing zip compression `Deflater.BEST_COMPRESSION` and send |
| it an ActiveMQ queue called MY_QUEUE. |
| |
| [source,java] |
| ---- |
| from("direct:start").marshal().zipDeflater(Deflater.BEST_COMPRESSION).to("activemq:queue:MY_QUEUE"); |
| ---- |
| |
| Alternatively if you would like to use the default setting you could |
| send it as |
| |
| [source,java] |
| ---- |
| from("direct:start").marshal().zipDeflater().to("activemq:queue:MY_QUEUE"); |
| ---- |
| |
| == Unmarshal |
| |
| In this example we unmarshal a zipped payload from an ActiveMQ queue |
| called MY_QUEUE to its original format, and forward it for processing to |
| the UnZippedMessageProcessor. Note that the compression Level employed |
| during the marshalling should be identical to the one employed during |
| unmarshalling to avoid errors. |
| |
| [source,java] |
| ---- |
| from("activemq:queue:MY_QUEUE").unmarshal().zipDeflater().process(new UnZippedMessageProcessor()); |
| ---- |