Class JarUrlConnection


  • public class JarUrlConnection
    extends java.net.JarURLConnection
    URLConnection capable of handling multiply-nested jars.
    Version:
    $Id: JarUrlConnection.java 78 2004-07-01 13:59:13Z jvanzyl $
    Author:
    bob mcwhirter
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.net.URL baseResource
      Base resource.
      private java.io.InputStream in
      Terminal input-stream.
      private java.lang.String[] segments
      Additional nested segments.
      • Fields inherited from class java.net.JarURLConnection

        jarFileURLConnection
      • Fields inherited from class java.net.URLConnection

        allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
    • Constructor Summary

      Constructors 
      Constructor Description
      JarUrlConnection​(java.net.URL url)
      Construct.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void connect()  
      protected java.net.URL getBaseResource()
      Retrieve the base resource URL.
      java.io.InputStream getInputStream()  
      java.util.jar.JarFile getJarFile()  
      protected java.io.InputStream getSegmentInputStream​(java.io.InputStream baseIn, java.lang.String segment)
      Retrieve the InputStream for the nesting segment relative to a base InputStream.
      protected java.lang.String[] getSegments()
      Retrieve the nesting path segments.
      protected static java.net.URL normaliseURL​(java.net.URL url)  
      protected void setupBaseResourceInputStream()
      Setup the InputStream purely from the base resource.
      protected void setupPathedInputStream()
      Setup the InputStream for URL with nested segments.
      • Methods inherited from class java.net.JarURLConnection

        getAttributes, getCertificates, getEntryName, getJarEntry, getJarFileURL, getMainAttributes, getManifest
      • Methods inherited from class java.net.URLConnection

        addRequestProperty, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getLastModified, getOutputStream, getPermission, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • baseResource

        private java.net.URL baseResource
        Base resource.
      • segments

        private java.lang.String[] segments
        Additional nested segments.
      • in

        private java.io.InputStream in
        Terminal input-stream.
    • Constructor Detail

      • JarUrlConnection

        JarUrlConnection​(java.net.URL url)
                  throws java.io.IOException
        Construct.
        Parameters:
        url - Target URL of the connections.
        Throws:
        java.io.IOException - If an error occurs while attempting to initialize the connection.
    • Method Detail

      • normaliseURL

        protected static java.net.URL normaliseURL​(java.net.URL url)
                                            throws java.net.MalformedURLException
        Throws:
        java.net.MalformedURLException
      • getSegments

        protected java.lang.String[] getSegments()
        Retrieve the nesting path segments.
        Returns:
        The segments.
      • getBaseResource

        protected java.net.URL getBaseResource()
        Retrieve the base resource URL.
        Returns:
        The base resource url.
      • connect

        public void connect()
                     throws java.io.IOException
        Specified by:
        connect in class java.net.URLConnection
        Throws:
        java.io.IOException
        See Also:
        URLConnection
      • setupBaseResourceInputStream

        protected void setupBaseResourceInputStream()
                                             throws java.io.IOException
        Setup the InputStream purely from the base resource.
        Throws:
        java.io.IOException - If an I/O error occurs.
      • setupPathedInputStream

        protected void setupPathedInputStream()
                                       throws java.io.IOException
        Setup the InputStream for URL with nested segments.
        Throws:
        java.io.IOException - If an I/O error occurs.
      • getSegmentInputStream

        protected java.io.InputStream getSegmentInputStream​(java.io.InputStream baseIn,
                                                            java.lang.String segment)
                                                     throws java.io.IOException
        Retrieve the InputStream for the nesting segment relative to a base InputStream.
        Parameters:
        baseIn - The base input-stream.
        segment - The nesting segment path.
        Returns:
        The input-stream to the segment.
        Throws:
        java.io.IOException - If an I/O error occurs.
      • getInputStream

        public java.io.InputStream getInputStream()
                                           throws java.io.IOException
        Overrides:
        getInputStream in class java.net.URLConnection
        Throws:
        java.io.IOException
        See Also:
        URLConnection
      • getJarFile

        public java.util.jar.JarFile getJarFile()
                                         throws java.io.IOException
        Specified by:
        getJarFile in class java.net.JarURLConnection
        Returns:
        JarFile
        Throws:
        java.io.IOException
        See Also:
        JarURLConnection.getJarFile()