decompress

Processor for decompressing the incoming payload.

If there are multiple entities compressed in the incoming payload, such as in a zip archive, then the output will be a map, keyed on an identifier for each entry (i.e., the filenames in the zip archive).

Properties

Name Summary

format

Compression format that was used to compress the payload (e.g., zip).

stringConversionCharacterSet

Character set to use when converting the decompressed payload from bytes to a string. By default, this is not set, and the decompressed payload(s) will be bytes.

alwaysOutputMap

Whether to always output a collection, even for single entities. Otherwise, the decompressed single entity will be added directly to the payload. Defaults to false.

outputCollectionFormat

The output format used when decompressing multiple entities. If set to MAP, the output will be a map keyed from filename (e.g., filename1.txt) to content. If set to LIST_OF_MAPS, the output will be a list of maps, each with their own name and content properties. Defaults to OutputCollectionFormat.MAP.

name

Optional, descriptive name for the processor.

id

Required identifier of the processor, unique across all processors within the flow. Must be between 3 and 30 characters long; contain only lower and uppercase alphabetical characters (a-z and A-Z), numbers, dashes ("-"), and underscores ("_"); and start with an alphabetical character. In other words, it adheres to the regex pattern [a-zA-Z][a-zA-Z0-9_-]{2,29}.

exchangeProperties

Optional set of custom properties in a simple jdk-format, that are added to the message exchange properties before processing the incoming payload. Any existing properties with the same name will be replaced by properties defined here.

retainPayloadOnFailure

Whether the incoming payload is available for error processing on failure. Defaults to false.

Sub-builders

Name Summary

messageLoggingStrategy

Strategy for describing how a processor’s message is logged on the server.

payloadArchivingStrategy

Strategy for archiving payloads.

inboundTransformationStrategy

Strategy that customizes the conversion of an incoming payload by a processor (e.g., string to object). Should be used when the processor’s default conversion logic cannot be used.

Details

Input Format

The decompress processor expects its input to be compressed binary data. See the compress processor for information on creating compressed data in a flow.

Output Format

The processor transforms the payload to decompressed binary data by default or to strings if the stringConversionCharacterSet property is set. Payloads will also be decompressed to a single value or a collection. Collections are created when the alwaysOutputMap property is set to true or if there are multiple entries in the compressed archive.

For example, a zip archive with two entries called file1 and file2 would generate the following map:

{
  file1 = <binary content>,
  file2 = <binary content>
}

However, if the outputCollectionFormat property is set to LIST_OF_MAPS, then the output would look like the following:

[
  {
    name = file1,
    content = <binary content>
  },
  {
    name = file2,
    content = <binary content>
  }
]
If there are no such entry names available (i.e., zstd compression was used), the map key will be in the format <timestamp>-<messageId>.