Class ZipWriterPipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class ZipWriterPipe extends AbstractCollectorPipe<ZipWriter,MessageZipEntry>
Pipe that creates a ZIP archive (on action close).

A chain of zipWriterPipes can be used to create a ZIP archive. You can use the pipe with different actions (see specified below). Action CLOSE will generate the ZIP archive which is returned as the pipe ouput.

Since:
7.9
Author:
Gerrit van Brakel, Niels Meijer
Specific parameters
filename only for action=WRITE: the filename of the zip-entry, contents only for action=WRITE: contents of the zip-entry, If not specified, the input is used.
  • Constructor Details

    • ZipWriterPipe

      public ZipWriterPipe()
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Description copied from class: FixedForwardPipe
      checks for correct configuration of forward
      Specified by:
      configure in interface IConfigurable
      Specified by:
      configure in interface IPipe
      Overrides:
      configure in class AbstractCollectorPipe<ZipWriter,MessageZipEntry>
      Throws:
      ConfigurationException
    • createCollector

      protected ZipWriter createCollector(Message input, PipeLineSession session) throws CollectionException
      Specified by:
      createCollector in class AbstractCollectorPipe<ZipWriter,MessageZipEntry>
      Throws:
      CollectionException
    • doPipe

      public PipeRunResult doPipe(Message input, PipeLineSession session) throws PipeRunException
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession, String) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Specified by:
      doPipe in interface IPipe
      Overrides:
      doPipe in class AbstractCollectorPipe<ZipWriter,MessageZipEntry>
      Throws:
      PipeRunException
    • setZipWriterHandle

      @Deprecated(forRemoval=true, since="7.9.0") @ConfigurationWarning("Replaced with attribute collectionName") public void setZipWriterHandle(String string)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Session key used to refer to zip session. Must be specified with another value if ZipWriterPipes are nested. Deprecated, use collectionName instead.
      Default value
      zipwriterhandle
    • setCompleteFileHeader

      public void setCompleteFileHeader(boolean b)
      Only for action='write': If set to true, the fields 'crc-32', 'compressed size' and 'uncompressed size' in the zip entry file header are set explicitly (note: compression ratio is zero)
      Default value
      false
    • setBackwardsCompatibility

      @Deprecated(forRemoval=true, since="7.9.0") public void setBackwardsCompatibility(boolean backwardsCompatibility)
      Deprecated, for removal: This API element is subject to removal in a future version.
      When action is OPEN: If input is a string, it's assumed it's the location where to save the Zip Archive. When action is WRITE: Input will be 'piped' to the output, and the message will be preserved. Avoid using this if possible.
    • isIncludeFileHeaders

      public boolean isIncludeFileHeaders()