Class JarFileUrlJar

  • All Implemented Interfaces:
    java.lang.AutoCloseable, Jar

    public class JarFileUrlJar
    extends java.lang.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).
    • Constructor Summary

      Constructors 
      Constructor Description
      JarFileUrlJar​(java.net.URL url, boolean startsWithJar)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Close any resources associated with this JAR.
      boolean exists​(java.lang.String name)
      Determine if the given resource in present in the JAR.
      java.io.InputStream getEntryInputStream()
      Obtains the input stream for the current entry.
      java.lang.String getEntryName()
      Obtains the name of the current entry.
      java.io.InputStream getInputStream​(java.lang.String name)
      Obtain an InputStream for a given entry in a JAR.
      java.net.URL getJarFileURL()  
      long getLastModified​(java.lang.String name)
      Obtain the last modified time for the given resource in the JAR.
      java.util.jar.Manifest getManifest()
      Obtain the manifest for the JAR file.
      java.lang.String getURL​(java.lang.String entry)
      Obtain, in String form, the URL for an entry in this JAR.
      void nextEntry()
      Moves the internal pointer to the next entry in the JAR.
      void reset()
      Resets the internal pointer used to track JAR entries to the beginning of the JAR.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JarFileUrlJar

        public JarFileUrlJar​(java.net.URL url,
                             boolean startsWithJar)
                      throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • getJarFileURL

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

        public java.io.InputStream getInputStream​(java.lang.String name)
                                           throws java.io.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:
        java.io.IOException - if an I/O error occurs while processing the JAR file
      • getLastModified

        public long getLastModified​(java.lang.String name)
                             throws java.io.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:
        java.io.IOException - if an I/O error occurs while processing the JAR file
      • exists

        public boolean exists​(java.lang.String name)
                       throws java.io.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:
        java.io.IOException - if an I/O error occurs while processing the JAR file
      • getURL

        public java.lang.String getURL​(java.lang.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 java.lang.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 java.lang.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 java.io.InputStream getEntryInputStream()
                                                throws java.io.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:
        java.io.IOException - If the stream cannot be obtained
      • getManifest

        public java.util.jar.Manifest getManifest()
                                           throws java.io.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:
        java.io.IOException - If an I/O error occurs trying to obtain the manifest
      • reset

        public void reset()
                   throws java.io.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:
        java.io.IOException - If the pointer cannot be reset