Class JarFileUrlJar

  • All Implemented Interfaces:
    AutoCloseable, Jar

    public class JarFileUrlJar
    extends Object
    implements Jar
    Implementation of Jar that is optimised for file based JAR URLs that refer directly to a JAR file (e.g URLs of the form jar:file: ... .jar!/ or file:... .jar).
    • Method Detail

      • getJarFileURL

        public URL getJarFileURL()
        Specified by:
        getJarFileURL in interface Jar
        Returns:
        The URL for accessing the JAR file.
      • entryExists

        @Deprecated
        public boolean entryExists​(String name)
        Deprecated.
        Description copied from interface: Jar
        Determines if a specific entry exists within the JAR.
        Specified by:
        entryExists in interface Jar
        Parameters:
        name - Entry to look for
        Returns:
        Implementations will always return false
      • getInputStream

        public InputStream getInputStream​(String name)
                                   throws IOException
        Description copied from interface: Jar
        Obtain an InputStream for a given entry in a JAR. The caller is responsible for closing the stream.
        Specified by:
        getInputStream in interface Jar
        Parameters:
        name - Entry to obtain an InputStream for
        Returns:
        An InputStream for the specified entry or null if the entry does not exist
        Throws:
        IOException - if an I/O error occurs while processing the JAR file
      • getLastModified

        public long getLastModified​(String name)
                             throws IOException
        Description copied from interface: Jar
        Obtain the last modified time for the given resource in the JAR.
        Specified by:
        getLastModified in interface Jar
        Parameters:
        name - Entry to obtain the modification time for
        Returns:
        The time (in the same format as System.currentTimeMillis() that the resource was last modified. Returns -1 if the entry does not exist
        Throws:
        IOException - if an I/O error occurs while processing the JAR file
      • exists

        public boolean exists​(String name)
                       throws IOException
        Description copied from interface: Jar
        Determine if the given resource in present in the JAR.
        Specified by:
        exists in interface Jar
        Parameters:
        name - Entry to look for
        Returns:
        true if the entry is present in the JAR, otherwise false
        Throws:
        IOException - if an I/O error occurs while processing the JAR file
      • getURL

        public String getURL​(String entry)
        Description copied from interface: Jar
        Obtain, in String form, the URL for an entry in this JAR. Note that for JARs nested in WAR files, the Tomcat specific war:file:... form will not be used, rather the jar:jar:file:... form (that the JRE does not understand will be used). Note that this means that any code using these URLs will need to understand the jar:jar:file:... form and use the JarFactory to ensure resources are accessed correctly.
        Specified by:
        getURL in interface Jar
        Parameters:
        entry - The entry to generate the URL for
        Returns:
        a URL for the specified entry in the JAR
      • close

        public void close()
        Description copied from interface: Jar
        Close any resources associated with this JAR.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Jar
      • nextEntry

        public void nextEntry()
        Description copied from interface: Jar
        Moves the internal pointer to the next entry in the JAR.
        Specified by:
        nextEntry in interface Jar
      • getEntryName

        public String getEntryName()
        Description copied from interface: Jar
        Obtains the name of the current entry.
        Specified by:
        getEntryName in interface Jar
        Returns:
        The entry name
      • getEntryInputStream

        public InputStream getEntryInputStream()
                                        throws IOException
        Description copied from interface: Jar
        Obtains the input stream for the current entry.
        Specified by:
        getEntryInputStream in interface Jar
        Returns:
        The input stream
        Throws:
        IOException - If the stream cannot be obtained
      • getManifest

        public Manifest getManifest()
                             throws IOException
        Description copied from interface: Jar
        Obtain the manifest for the JAR file.
        Specified by:
        getManifest in interface Jar
        Returns:
        The manifest for this JAR file.
        Throws:
        IOException - If an I/O error occurs trying to obtain the manifest
      • reset

        public void reset()
                   throws IOException
        Description copied from interface: Jar
        Resets the internal pointer used to track JAR entries to the beginning of the JAR.
        Specified by:
        reset in interface Jar
        Throws:
        IOException - If the pointer cannot be reset