Class TarAggregationStrategy

  • All Implemented Interfaces:
    org.apache.camel.AggregationStrategy

    public class TarAggregationStrategy
    extends Object
    implements org.apache.camel.AggregationStrategy
    This aggregation strategy will aggregate all incoming messages into a TAR 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 TAR entry will be named using the message id (unless the flag useFilenameHeader is set to true.

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

    NOTE 2: This implementation is very inefficient especially on big files since the tar file is completely rewritten for each file that is added to it. Investigate if the files can be collected and at completion stored to tar file.

    • Constructor Detail

      • TarAggregationStrategy

        public TarAggregationStrategy()
      • TarAggregationStrategy

        public TarAggregationStrategy​(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.
      • TarAggregationStrategy

        public TarAggregationStrategy​(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 TAR file.
    • Method Detail

      • getFilePrefix

        public String getFilePrefix()
      • setFilePrefix

        public void setFilePrefix​(String filePrefix)
        Sets the prefix that will be used when creating the TAR filename.
      • getFileSuffix

        public String getFileSuffix()
      • setFileSuffix

        public void setFileSuffix​(String fileSuffix)
        Sets the suffix that will be used when creating the ZIP filename.
      • 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