Class DefaultVFS

java.lang.Object
org.apache.ibatis.io.VFS
org.apache.ibatis.io.DefaultVFS

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

    • DefaultVFS

      public DefaultVFS()
  • Method Details

    • 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