Class ZipAggregationStrategy

java.lang.Object
org.apache.camel.processor.aggregate.zipfile.ZipAggregationStrategy
All Implemented Interfaces:
org.apache.camel.AggregationStrategy

public class ZipAggregationStrategy extends Object implements org.apache.camel.AggregationStrategy
This aggregation strategy will aggregate all incoming messages into a ZIP file.

If the incoming exchanges contain GenericFileMessage file name will be taken from the body otherwise the body content will be treated as a byte array and the ZIP entry will be named using the message id (unless the flag useFilenameHeader is set to true.

Note: Please note that this aggregation strategy requires eager completion check to work properly.

  • Constructor Details

    • ZipAggregationStrategy

      public ZipAggregationStrategy()
    • ZipAggregationStrategy

      public ZipAggregationStrategy(boolean preserveFolderStructure)
      Parameters:
      preserveFolderStructure - if true, the folder structure is preserved when the source is a type of GenericFileMessage. If used with a file, use recursive=true.
    • ZipAggregationStrategy

      public ZipAggregationStrategy(boolean preserveFolderStructure, boolean useFilenameHeader)
      Parameters:
      preserveFolderStructure - if true, the folder structure is preserved when the source is a type of GenericFileMessage. If used with a file, use recursive=true.
      useFilenameHeader - if true, the filename header will be used to name aggregated byte arrays within the ZIP file.
    • ZipAggregationStrategy

      public ZipAggregationStrategy(boolean preserveFolderStructure, boolean useFilenameHeader, boolean useTempFile)
      Parameters:
      preserveFolderStructure - if true, the folder structure is preserved when the source is a type of GenericFileMessage. If used with a file, use recursive=true.
      useFilenameHeader - if true, the filename header will be used to name aggregated byte arrays within the ZIP file.
      useTempFile - if true, the ZipFileSystem will use temporary files for zip manipulations instead of memory.
  • Method Details

    • getFilePrefix

      public String getFilePrefix()
      Gets the prefix used when creating the ZIP file name.
      Returns:
      the prefix
    • setFilePrefix

      public void setFilePrefix(String filePrefix)
      Sets the prefix that will be used when creating the ZIP filename.
      Parameters:
      filePrefix - prefix to use on ZIP file.
    • getFileSuffix

      public String getFileSuffix()
      Gets the suffix used when creating the ZIP file name.
      Returns:
      the suffix
    • setFileSuffix

      public void setFileSuffix(String fileSuffix)
      Sets the suffix that will be used when creating the ZIP filename.
      Parameters:
      fileSuffix - suffix to use on ZIP file.
    • getParentDir

      public File getParentDir()
    • setParentDir

      public void setParentDir(File parentDir)
      Sets the parent directory to use for writing temporary files.
    • setParentDir

      public void setParentDir(String parentDir)
      Sets the parent directory to use for writing temporary files.
    • aggregate

      public org.apache.camel.Exchange aggregate(org.apache.camel.Exchange oldExchange, org.apache.camel.Exchange newExchange)
      Specified by:
      aggregate in interface org.apache.camel.AggregationStrategy
    • onCompletion

      public void onCompletion(org.apache.camel.Exchange exchange, org.apache.camel.Exchange inputExchange)
      Specified by:
      onCompletion in interface org.apache.camel.AggregationStrategy