Class DefaultVFS


  • public class DefaultVFS
    extends VFS
    A default implementation of VFS that works for most application servers.
    Author:
    Ben Gunter
    • Constructor Detail

      • DefaultVFS

        public DefaultVFS()
    • Method Detail

      • isValid

        public boolean isValid()
        Description copied from class: VFS
        Return true if the VFS implementation is valid for the current environment.
        Specified by:
        isValid in class VFS
        Returns:
        true, if is valid
      • list

        public List<String> list​(URL url,
                                 String path)
                          throws IOException
        Description copied from class: VFS
        Recursively list the full resource path of all the resources that are children of the resource identified by a URL.
        Specified by:
        list in class VFS
        Parameters:
        url - The URL that identifies the resource to list.
        path - The path to the resource that is identified by the URL. Generally, this is the value passed to VFS.getResources(String) to get the resource URL.
        Returns:
        A list containing the names of the child resources.
        Throws:
        IOException - If I/O errors occur
      • listResources

        protected List<String> listResources​(JarInputStream jar,
                                             String path)
                                      throws IOException
        List the names of the entries in the given JarInputStream that begin with the specified path. Entries will match with or without a leading slash.
        Parameters:
        jar - The JAR input stream
        path - The leading path to match
        Returns:
        The names of all the matching entries
        Throws:
        IOException - If I/O errors occur
      • findJarForResource

        protected URL findJarForResource​(URL url)
                                  throws MalformedURLException
        Attempts to deconstruct the given URL to find a JAR file containing the resource referenced by the URL. That is, assuming the URL references a JAR entry, this method will return a URL that references the JAR file containing the entry. If the JAR cannot be located, then this method returns null.
        Parameters:
        url - The URL of the JAR entry.
        Returns:
        The URL of the JAR file, if one is found. Null if not.
        Throws:
        MalformedURLException - the malformed URL exception
      • getPackagePath

        protected String getPackagePath​(String packageName)
        Converts a Java package name to a path that can be looked up with a call to ClassLoader.getResources(String).
        Parameters:
        packageName - The Java package name to convert to a path
        Returns:
        the package path
      • isJar

        protected boolean isJar​(URL url)
        Returns true if the resource located at the given URL is a JAR file.
        Parameters:
        url - The URL of the resource to test.
        Returns:
        true, if is jar
      • isJar

        protected boolean isJar​(URL url,
                                byte[] buffer)
        Returns true if the resource located at the given URL is a JAR file.
        Parameters:
        url - The URL of the resource to test.
        buffer - A buffer into which the first few bytes of the resource are read. The buffer must be at least the size of JAR_MAGIC. (The same buffer may be reused for multiple calls as an optimization.)
        Returns:
        true, if is jar