Class ResourceUtils

java.lang.Object
com.aspectran.utils.ResourceUtils

public abstract class ResourceUtils extends Object
A class to simplify access to ResourceUtils through the classloader.
  • Field Details

    • CLASSPATH_URL_PREFIX

      public static final String CLASSPATH_URL_PREFIX
      Pseudo URL prefix for loading from the class path: "classpath:".
      See Also:
    • FILE_URL_PREFIX

      public static final String FILE_URL_PREFIX
      URL prefix for loading from the file system: "file:".
      See Also:
    • JAR_URL_PREFIX

      public static final String JAR_URL_PREFIX
      URL prefix for loading from a jar file: "jar:".
      See Also:
    • WAR_URL_PREFIX

      public static final String WAR_URL_PREFIX
      URL prefix for loading from a war file on Tomcat: "war:".
      See Also:
    • URL_PROTOCOL_FILE

      public static final String URL_PROTOCOL_FILE
      URL protocol for a file in the file system: "file".
      See Also:
    • URL_PROTOCOL_JAR

      public static final String URL_PROTOCOL_JAR
      URL protocol for an entry from a jar file: "jar".
      See Also:
    • URL_PROTOCOL_WAR

      public static final String URL_PROTOCOL_WAR
      URL protocol for an entry from a war file: "war".
      See Also:
    • URL_PROTOCOL_ZIP

      public static final String URL_PROTOCOL_ZIP
      URL protocol for an entry from a zip file: "zip".
      See Also:
    • URL_PROTOCOL_WSJAR

      public static final String URL_PROTOCOL_WSJAR
      URL protocol for an entry from a WebSphere jar file: "wsjar".
      See Also:
    • URL_PROTOCOL_VFSZIP

      public static final String URL_PROTOCOL_VFSZIP
      URL protocol for an entry from a JBoss jar file: "vfszip".
      See Also:
    • URL_PROTOCOL_VFSFILE

      public static final String URL_PROTOCOL_VFSFILE
      URL protocol for a JBoss file system resource: "vfsfile".
      See Also:
    • URL_PROTOCOL_VFS

      public static final String URL_PROTOCOL_VFS
      URL protocol for a general JBoss VFS resource: "vfs".
      See Also:
    • JAR_FILE_EXTENSION

      public static final String JAR_FILE_EXTENSION
      File extension for a regular jar file: ".jar".
      See Also:
    • JAR_URL_SEPARATOR

      public static final String JAR_URL_SEPARATOR
      Separator between JAR URL and file path within the JAR: "!/".
      See Also:
    • WAR_URL_SEPARATOR

      public static final String WAR_URL_SEPARATOR
      Special separator between WAR URL and jar part on Tomcat.
      See Also:
  • Constructor Details

    • ResourceUtils

      public ResourceUtils()
  • Method Details

    • isUrl

      public static boolean isUrl(@Nullable String resourceLocation)
      Return whether the given resource location is a URL: either a special "classpath" pseudo URL or a standard URL.
      Parameters:
      resourceLocation - the location String to check
      Returns:
      whether the location qualifies as a URL
      See Also:
    • getURL

      @NonNull public static URL getURL(String resourceLocation) throws FileNotFoundException
      Resolve the given resource location to a java.net.URL.

      Does not check whether the URL actually exists; simply returns the URL that the given location would correspond to.

      Parameters:
      resourceLocation - the resource location to resolve: either a "classpath:" pseudo URL, a "file:" URL, or a plain file path
      Returns:
      a corresponding URL object
      Throws:
      FileNotFoundException - if the resource cannot be resolved to a URL
    • getURL

      @NonNull public static URL getURL(String resourceLocation, ClassLoader classLoader) throws FileNotFoundException
      Resolve the given resource location to a java.net.URL.

      Does not check whether the URL actually exists; simply returns the URL that the given location would correspond to.

      Parameters:
      resourceLocation - the resource location to resolve: either a "classpath:" pseudo URL, a "file:" URL, or a plain file path
      classLoader - the class loader
      Returns:
      a corresponding URL object
      Throws:
      FileNotFoundException - if the resource cannot be resolved to a URL
    • getFile

      @NonNull public static File getFile(String resourceLocation) throws FileNotFoundException
      Resolve the given resource location to a java.io.File, i.e. to a file in the file system.

      Does not check whether the file actually exists; simply returns the File that the given location would correspond to.

      Parameters:
      resourceLocation - the resource location to resolve: either a "classpath:" pseudo URL, a "file:" URL, or a plain file path
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the resource cannot be resolved to a file in the file system
    • getFile

      @NonNull public static File getFile(String resourceLocation, ClassLoader classLoader) throws FileNotFoundException
      Resolve the given resource location to a java.io.File, i.e. to a file in the file system.

      Does not check whether the file actually exists; simply returns the File that the given location would correspond to.

      Parameters:
      resourceLocation - the resource location to resolve: either a "classpath:" pseudo URL, a "file:" URL, or a plain file path
      classLoader - the class loader
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the resource cannot be resolved to a file in the file system
    • getFile

      @NonNull public static File getFile(URL resourceUrl) throws FileNotFoundException
      Resolve the given resource URL to a java.io.File, i.e. to a file in the file system.
      Parameters:
      resourceUrl - the resource URL to resolve
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the URL cannot be resolved to a file in the file system
    • getFile

      @NonNull public static File getFile(URL resourceUrl, String description) throws FileNotFoundException
      Resolve the given resource URL to a java.io.File, i.e. to a file in the file system.
      Parameters:
      resourceUrl - the resource URL to resolve
      description - a description of the original resource that the URL was created for (for example, a class path location)
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the URL cannot be resolved to a file in the file system
    • getFile

      @NonNull public static File getFile(URI resourceUri) throws FileNotFoundException
      Resolve the given resource URI to a java.io.File, i.e. to a file in the file system.
      Parameters:
      resourceUri - the resource URI to resolve
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the URL cannot be resolved to a file in the file system
    • getFile

      @NonNull public static File getFile(URI resourceUri, String description) throws FileNotFoundException
      Resolve the given resource URI to a java.io.File, i.e. to a file in the file system.
      Parameters:
      resourceUri - the resource URI to resolve
      description - a description of the original resource that the URI was created for (for example, a class path location)
      Returns:
      a corresponding File object
      Throws:
      FileNotFoundException - if the URL cannot be resolved to a file in the file system
    • isFileURL

      public static boolean isFileURL(@NonNull URL url)
      Determine whether the given URL points to a resource in the file system, i.e. has protocol "file", "vfsfile" or "vfs".
      Parameters:
      url - the URL to check
      Returns:
      whether the URL has been identified as a file system URL
    • isJarURL

      public static boolean isJarURL(@NonNull URL url)
      Determine whether the given URL points to a resource in a jar file. i.e. has protocol "jar", "war, ""zip", "vfszip" or "wsjar".
      Parameters:
      url - the URL to check
      Returns:
      whether the URL has been identified as a JAR URL
    • isJarFileURL

      public static boolean isJarFileURL(@NonNull URL url)
      Determine whether the given URL points to a jar file itself, that is, has protocol "file" and ends with the ".jar" extension.
      Parameters:
      url - the URL to check
      Returns:
      whether the URL has been identified as a JAR file URL
    • extractJarFileURL

      @NonNull public static URL extractJarFileURL(@NonNull URL jarUrl) throws MalformedURLException
      Extract the URL for the actual jar file from the given URL (which may point to a resource in a jar file or to a jar file itself).
      Parameters:
      jarUrl - the original URL
      Returns:
      the URL for the actual jar file
      Throws:
      MalformedURLException - if no valid jar file URL could be extracted
    • extractArchiveURL

      @NonNull public static URL extractArchiveURL(@NonNull URL jarUrl) throws MalformedURLException
      Extract the URL for the outermost archive from the given jar/war URL (which may point to a resource in a jar file or to a jar file itself).

      In the case of a jar file nested within a war file, this will return a URL to the war file since that is the one resolvable in the file system.

      Parameters:
      jarUrl - the original URL
      Returns:
      the URL for the actual jar file
      Throws:
      MalformedURLException - if no valid jar file URL could be extracted
      See Also:
    • toURI

      @NonNull public static URI toURI(@NonNull URL url) throws URISyntaxException
      Create a URI instance for the given URL, replacing spaces with "%20" URI encoding first.
      Parameters:
      url - the URL to convert into a URI instance
      Returns:
      the URI instance
      Throws:
      URISyntaxException - if the URL wasn't a valid URI
      See Also:
    • toURI

      @NonNull public static URI toURI(String location) throws URISyntaxException
      Create a URI instance for the given location String, replacing spaces with "%20" URI encoding first.
      Parameters:
      location - the location String to convert into a URI instance
      Returns:
      the URI instance
      Throws:
      URISyntaxException - if the location wasn't a valid URI
    • toURL

      @NonNull public static URL toURL(String location) throws MalformedURLException
      Create a URL instance for the given location String, going through URI construction and then URL conversion.
      Parameters:
      location - the location String to convert into a URL instance
      Returns:
      the URL instance
      Throws:
      MalformedURLException - if the location wasn't a valid URL
      Since:
      6.0
    • getResource

      @NonNull public static URL getResource(String resource) throws IOException
      Returns the URL of the resource on the classpath.
      Parameters:
      resource - the resource to find
      Returns:
      URL object for reading the resource
      Throws:
      IOException - if the resource cannot be found or read
    • getResource

      @NonNull public static URL getResource(String resource, ClassLoader classLoader) throws IOException
      Returns the URL of the resource on the classpath.
      Parameters:
      resource - the resource to find
      classLoader - the class loader used to load the resource
      Returns:
      URL object for reading the resource
      Throws:
      IOException - if the resource cannot be found or read
    • getResourceAsFile

      @NonNull public static File getResourceAsFile(String resource) throws IOException
      Throws:
      IOException
    • getResourceAsFile

      @NonNull public static File getResourceAsFile(String resource, ClassLoader classLoader) throws IOException
      Throws:
      IOException
    • getResourceAsStream

      @NonNull public static InputStream getResourceAsStream(String resource) throws IOException
      Returns a resource on the classpath as a Stream object.
      Parameters:
      resource - the resource to find
      Returns:
      an input stream for reading the resource; null if the resource could not be found
      Throws:
      IOException - if the resource cannot be found or read
    • getResourceAsStream

      @NonNull public static InputStream getResourceAsStream(String resource, ClassLoader classLoader) throws IOException
      Returns a resource on the classpath as a Stream object.
      Parameters:
      resource - the resource to find
      classLoader - the class loader used to load the resource
      Returns:
      an input stream for reading the resource
      Throws:
      IOException - if the resource cannot be found or read
    • getResourceAsReader

      @NonNull public static Reader getResourceAsReader(String resource) throws IOException
      Returns a resource on the classpath as a Stream object.
      Parameters:
      resource - the resource to find
      Returns:
      a stream reader for reading the resource
      Throws:
      IOException - if the resource cannot be found or read
    • getResourceAsReader

      @NonNull public static Reader getResourceAsReader(String resource, ClassLoader classLoader) throws IOException
      Returns a resource on the classpath as a Stream object.
      Parameters:
      resource - the resource to find
      classLoader - the class loader used to load the resource
      Returns:
      a stream reader for reading the resource
      Throws:
      IOException - if the resource cannot be found or read
    • getReader

      @NonNull public static Reader getReader(File file, String encoding) throws IOException
      Returns a Reader for reading the specified file.
      Parameters:
      file - the resource file to resolve
      encoding - the encoding
      Returns:
      the reader instance
      Throws:
      IOException - if an error occurred when reading resources using any I/O operations
    • getReader

      @NonNull public static Reader getReader(URL url, String encoding) throws IOException
      Returns a Reader for reading the specified url.
      Parameters:
      url - the resource URL to resolve
      encoding - the encoding
      Returns:
      the reader instance
      Throws:
      IOException - if an error occurred when reading resources using any I/O operations
    • read

      public static String read(File file, String encoding) throws IOException
      Returns a string from the specified file.
      Parameters:
      file - the file
      encoding - the encoding
      Returns:
      the reader instance
      Throws:
      IOException - if an error occurred when reading resources using any I/O operations
    • read

      public static String read(URL url, String encoding) throws IOException
      Returns a string from the specified url.
      Parameters:
      url - the url
      encoding - the encoding
      Returns:
      the string
      Throws:
      IOException - if an error occurred when reading resources using any I/O operations
    • read

      @NonNull public static String read(@NonNull Reader reader) throws IOException
      Returns a string from the specified Reader object.
      Parameters:
      reader - the reader
      Returns:
      the string
      Throws:
      IOException - if an error occurred when reading resources using any I/O operations