Class JarArchive

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ArchiveAdapter

    public class JarArchive
    extends AbstractAdapter
    Jar based archive abstraction
    • Field Detail

      • parser

        private final Parser parser
      • jar

        private final java.util.jar.JarFile jar
      • uri

        private final java.net.URI uri
      • releaseCount

        private final java.util.concurrent.atomic.AtomicInteger releaseCount
        We need to maintain how many internal jars got opened so that we don't close our jar archive until all the sub scanning has been done successfully.
    • Constructor Detail

      • JarArchive

        public JarArchive​(Parser parser,
                          java.net.URI uri)
                   throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • getURI

        public java.net.URI getURI()
        Description copied from interface: ArchiveAdapter
        Returns the URI of the archive
        Returns:
        URI of the archive
      • onSelectedEntries

        public void onSelectedEntries​(ArchiveAdapter.Selector selector,
                                      ArchiveAdapter.EntryTask task,
                                      java.util.logging.Logger logger)
                               throws java.io.IOException
        Description copied from interface: ArchiveAdapter
        perform a task on selected archive entries
        Parameters:
        selector - implementation to select the archive archive entries on which the task should be performed.
        task - the task to perform
        logger - for any logging activity
        Throws:
        java.io.IOException - can be generated while reading the archive entries
      • getManifest

        public java.util.jar.Manifest getManifest()
                                           throws java.io.IOException
        Description copied from interface: ArchiveAdapter
        Returns the manifest instance for the archive.
        Returns:
        the archive's manifest
        Throws:
        java.io.IOException - if the manifest cannot be loaded.
      • close

        public void close()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • releaseCount

        void releaseCount()
                   throws java.io.IOException
        Throws:
        java.io.IOException