Class ZipStreamArchive

  • All Implemented Interfaces:
    Closeable, AutoCloseable, Archive

    public class ZipStreamArchive
    extends Object
    Implements an archive based on a zip stream, but deflates the entries first into a buffer and later into a temporary file, if the content length exceeds the buffer size.
    • Field Detail

      • SHOULD_CREATE_STACK_TRACE

        protected static final boolean SHOULD_CREATE_STACK_TRACE
        Determines whether stack traces should be created for each register call of CloseWatcher. This is false by default. Enable via system or OSGi framework property vault.enableStackTraces.
    • Constructor Detail

      • ZipStreamArchive

        public ZipStreamArchive​(@NotNull
                                @NotNull InputStream in)
        Creates a new zip stream archive on the given input stream.
        Parameters:
        in - the input stream to read from.
      • ZipStreamArchive

        public ZipStreamArchive​(@NotNull
                                @NotNull InputStream in,
                                int maxBufferSize)
        Creates an ew zip stream archive on the given input stream.
        Parameters:
        in - the input stream to read from.
        maxBufferSize - size of buffer to keep content in memory.
    • Method Detail

      • open

        public void open​(boolean strict)
                  throws IOException
        Description copied from interface: Archive
        Opens the archive.
        Parameters:
        strict - if true open will fail if there was an internal error while parsing meta data.
        Throws:
        IOException - if an error occurs
      • getMetaInf

        public MetaInf getMetaInf()
        Description copied from interface: Archive
        Returns the meta inf. If the archive provides no specific meta data, a default, empty meta inf is returned. Requires a previous call to Archive.open(boolean).
        Returns:
        the meta inf.
      • close

        public void close()
        Description copied from interface: Archive
        Closes the archive. Only necessary to call if the archive has been opened.
      • isBuffered

        public boolean isBuffered()
        Checks if this archive is currently buffered (and not using a temporary file).
        Returns:
        true if buffered.
      • getSubArchive

        public Archive getSubArchive​(String rootPath,
                                     boolean asJcrRoot)
                              throws IOException
        Description copied from interface: Archive
        Returns a sub archive that is rooted at the given path. Note that sub archives currently can't have their own meta inf and are closed automatically if their container archive is closed. Requires a previous call to Archive.open(boolean).
        Specified by:
        getSubArchive in interface Archive
        Parameters:
        rootPath - root path
        asJcrRoot - if true the given root is the jcr_root
        Returns:
        the archive or null if entry specified by root does not exist.
        Throws:
        IOException - if an error occurs