public class GrailsResourceUtils extends java.lang.Object
Utility methods for resource handling / figuring out class names.
| Modifiers | Name | Description |
|---|---|---|
static java.lang.String |
CLASSPATH_URL_PREFIX |
Pseudo URL prefix for loading from the class path: "classpath:" |
static java.lang.String |
CLASS_EXTENSION |
|
static java.util.regex.Pattern[] |
COMPILER_ROOT_PATTERNS |
|
private static java.lang.String |
CURRENT_PATH |
|
static java.lang.String |
DOMAIN_DIR_PATH |
|
static java.util.regex.Pattern |
DOMAIN_PATH_PATTERN |
|
static java.lang.String |
FILE_URL_PREFIX |
URL prefix for loading from the file system: "file:" |
private static java.lang.String |
FOLDER_SEPARATOR |
|
static java.lang.String |
GRAILS_APP_DIR |
The name of the Grails application directory |
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_EIGHTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_ELEVENTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_FIFTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_FIRST_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_FOURTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_NINTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_SECOND_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_SEVENTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_SIXTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_TENTH_MATCH |
|
static java.util.regex.Pattern |
GRAILS_RESOURCE_PATTERN_THIRD_MATCH |
|
static java.lang.String |
JAR_URL_SEPARATOR |
|
private static java.util.Map<java.lang.String, java.lang.Boolean> |
KNOWN_DOMAIN_CLASSES |
|
private static java.util.Map<java.lang.String, java.lang.Boolean> |
KNOWN_PATHS |
|
private static java.util.regex.Pattern |
PLUGIN_PATTERN |
|
private static java.util.regex.Pattern |
PLUGIN_RESOURCE_PATTERN |
|
static java.lang.String |
REGEX_FILE_SEPARATOR |
|
static java.util.regex.Pattern |
RESOURCE_PATH_PATTERN |
|
static java.util.regex.Pattern |
SPRING_SCRIPTS_PATH_PATTERN |
|
private static java.lang.String |
TOP_PATH |
|
static java.lang.String |
URL_PROTOCOL_CODE_SOURCE |
URL protocol for an entry from an OC4J jar file: "code-source" |
static java.lang.String |
URL_PROTOCOL_FILE |
URL protocol for a file in the file system: "file" |
static java.lang.String |
URL_PROTOCOL_JAR |
URL protocol for an entry from a jar file: "jar" |
static java.lang.String |
URL_PROTOCOL_VFS |
URL protocol for a JBoss VFS resource: "vfs" |
static java.lang.String |
URL_PROTOCOL_VFSZIP |
URL protocol for an entry from a JBoss jar file: "vfszip" |
static java.lang.String |
URL_PROTOCOL_WSJAR |
URL protocol for an entry from a WebSphere jar file: "wsjar" |
static java.lang.String |
URL_PROTOCOL_ZIP |
URL protocol for an entry from a zip file: "zip" |
static java.lang.String |
VIEWS_DIR_PATH |
The path to the views directory |
static java.lang.String |
VIEWS_DIR_PATH_NO_SLASH |
The path to the views directory without a trailing slash |
static java.lang.String |
WEB_APP_DIR |
The name of the Web app dir within Grails |
static java.lang.String |
WEB_INF |
The relative path to the WEB-INF directory |
private static java.lang.String |
WINDOWS_FOLDER_SEPARATOR |
|
static java.util.regex.Pattern[] |
grailsAppResourcePatterns |
|
static java.util.regex.Pattern[] |
patterns |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public static java.lang.String |
appendPiecesForUri(java.lang.String pieces)Takes any number of Strings and appends them into a uri, making sure that a forward slash is inserted between each piece and making sure that no duplicate slashes are in the uri |
|
public static java.lang.String |
applyRelativePath(java.lang.String path, java.lang.String relativePath)Apply the given relative path to the given path, assuming standard Java folder separation (i.e. "/" separators). |
|
public java.lang.Object |
call(java.lang.Object args) |
|
public static java.lang.String |
classPackageAsResourcePath(java.lang.Class<?> clazz)Given an input class object, return a string which consists of the class's package name as a pathname, i.e., all dots ('.') are replaced by slashes ('/'). |
|
public static java.lang.String |
cleanPath(java.lang.String path)Normalize the path by suppressing sequences like "path/.." and inner simple dots. |
|
private static java.lang.String |
collectionToDelimitedString(java.util.Collection<?> coll, java.lang.String delim) |
|
private static java.lang.String |
collectionToDelimitedString(java.util.Collection<?> coll, java.lang.String delim, java.lang.String prefix, java.lang.String suffix) |
|
private static java.lang.String |
createGrailsResourcePattern(java.lang.String separator, java.lang.String base) |
|
private static java.lang.String |
deleteAny(java.lang.String inString, java.lang.String charsToDelete) |
|
private static java.lang.String[] |
delimitedListToStringArray(java.lang.String str, java.lang.String delimiter)Take a String which is a delimited list and convert it to a String array. |
|
private static java.lang.String[] |
delimitedListToStringArray(java.lang.String str, java.lang.String delimiter, java.lang.String charsToDelete)Take a String which is a delimited list and convert it to a String array. |
|
public static java.net.URL |
extractJarFileURL(java.net.URL jarUrl)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). |
|
private static java.lang.Class<?> |
forName(java.lang.String className, java.lang.ClassLoader defaultClassLoader) |
|
public static Resource |
getAppDir(Resource resource) |
|
public static java.lang.String |
getArtefactDirectory(java.lang.String path)Takes a file path and returns the name of the folder under grails-app i.e: |
|
public static java.lang.String |
getClassName(Resource resource)Gets the class name of the specified Grails resource |
|
public static java.lang.String |
getClassName(java.lang.String path)Returns the class name for a Grails resource. |
|
public static java.lang.String |
getClassNameForClassFile(java.lang.String rootDir, java.lang.String path)Returns the class name for a compiled class file |
|
public static java.io.File |
getFile(java.net.URL resourceUrl, java.lang.String description)Resolve the given resource URL to a java.io.File,
i.e. to a file in the file system. |
|
public static java.io.File |
getFile(java.net.URI resourceUri, java.lang.String description)Resolve the given resource URI to a java.io.File,
i.e. to a file in the file system. |
|
public static java.io.File |
getFile(java.net.URI resourceUri)Resolve the given resource URI to a java.io.File,
i.e. to a file in the file system. |
|
public static java.lang.String |
getFilename(java.lang.String path)Extract the filename from the given path, e.g. |
|
public static java.lang.String |
getPathFromBaseDir(java.lang.String path)Gets the path relative to the project base directory. |
|
public static java.lang.String |
getPathFromRoot(java.lang.String path)Get the path relative to an artefact folder under grails-app i.e: |
|
public static java.lang.String |
getRelativeInsideWebInf(Resource resource)Takes a Grails resource (one located inside the grails-app dir) and gets its relative path inside the WEB-INF directory when deployed. |
|
public static java.lang.String |
getStaticResourcePathForResource(Resource resource, java.lang.String contextPath)Retrieves the static resource path for the given Grails resource artifact (controller/taglib etc.) |
|
public static Resource |
getViewsDir(Resource resource) |
|
private static boolean |
hasLength(java.lang.CharSequence str) |
|
public static java.lang.Object |
instantiateFromConfig(groovy.util.ConfigObject config, java.lang.String configKey, java.lang.String defaultClassName) |
|
public static java.lang.Object |
instantiateFromFlatConfig(java.util.Map<java.lang.String, java.lang.Object> flatConfig, java.lang.String configKey, java.lang.String defaultClassName) |
|
public static boolean |
isDomainClass(java.net.URL url) |
|
public static boolean |
isFileURL(java.net.URL url)Determine whether the given URL points to a resource in the file system, that is, has protocol "file" or "vfs". |
|
public static boolean |
isGrailsPath(java.lang.String path) |
|
public static boolean |
isGrailsResource(Resource r)Checks whether the specific resources is a Grails resource. |
|
public static boolean |
isJarURL(java.net.URL url)Determine whether the given URL points to a resource in a jar file, that is, has protocol "jar", "zip", "wsjar" or "code-source". |
|
public static boolean |
isProjectSource(java.lang.String path)Checks whether the specified path is a Grails path. |
|
public static boolean |
isProjectSource(Resource r)Checks whether the specified path is a Grails path. |
|
protected boolean |
removeEldestEntry(java.util.Map$Entry eldest) |
|
protected boolean |
removeEldestEntry(Map.Entry<java.lang.String, java.lang.Boolean> eldest) |
|
private static java.lang.String |
replace(java.lang.String inString, java.lang.String oldPattern, java.lang.String newPattern)Replace all occurences of a substring within a string with another string. |
|
private static java.lang.String[] |
toStringArray(java.util.Collection<java.lang.String> collection) |
|
public static java.net.URI |
toURI(java.net.URL url)Create a URI instance for the given URL, replacing spaces with "%20" quotes first. |
|
public static java.net.URI |
toURI(java.lang.String location)Create a URI instance for the given location String, replacing spaces with "%20" quotes first. |
|
public static void |
useCachesIfNecessary(java.net.URLConnection con) |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Pseudo URL prefix for loading from the class path: "classpath:"
URL prefix for loading from the file system: "file:"
The name of the Grails application directory
URL protocol for an entry from an OC4J jar file: "code-source"
URL protocol for a file in the file system: "file"
URL protocol for an entry from a jar file: "jar"
URL protocol for a JBoss VFS resource: "vfs"
URL protocol for an entry from a JBoss jar file: "vfszip"
URL protocol for an entry from a WebSphere jar file: "wsjar"
URL protocol for an entry from a zip file: "zip"
The path to the views directory
The path to the views directory without a trailing slash
The name of the Web app dir within Grails
The relative path to the WEB-INF directory
Takes any number of Strings and appends them into a uri, making sure that a forward slash is inserted between each piece and making sure that no duplicate slashes are in the uri
Input: "" Output: "" Input: "/alpha", "/beta", "/gamma" Output: "/alpha/beta/gamma Input: "/alpha/, "/beta/", "/gamma" Output: "/alpha/beta/gamma Input: "/alpha/", "/beta/", "/gamma/" Output "/alpha/beta/gamma/ Input: "alpha", "beta", "gamma" Output: "alpha/beta/gamma
pieces - Strings to concatenate together into a uriApply the given relative path to the given path, assuming standard Java folder separation (i.e. "/" separators).
path - the path to start from (usually a full file path)relativePath - the relative path to apply
(relative to the full file path above) Given an input class object, return a string which consists of the
class's package name as a pathname, i.e., all dots ('.') are replaced by
slashes ('/'). Neither a leading nor trailing slash is added. The result
could be concatenated with a slash and the name of a resource and fed
directly to ClassLoader.getResource(). For it to be fed to
Class.getResource instead, a leading slash would also have
to be prepended to the returned value.
clazz - the input class. A null value or the default
(empty) package will result in an empty string ("") being returned.Normalize the path by suppressing sequences like "path/.." and inner simple dots.
The result is convenient for path comparison. For other uses, notice that Windows separators ("\") are replaced by simple slashes.
path - the original pathTake a String which is a delimited list and convert it to a String array.
A single delimiter can consists of more than one character: It will still
be considered as single delimiter string, rather than as bunch of potential
delimiter characters - in contrast to tokenizeToStringArray.
str - the input Stringdelimiter - the delimiter between elements (this is a single delimiter,
rather than a bunch individual delimiter characters)Take a String which is a delimited list and convert it to a String array.
A single delimiter can consists of more than one character: It will still
be considered as single delimiter string, rather than as bunch of potential
delimiter characters - in contrast to tokenizeToStringArray.
str - the input Stringdelimiter - the delimiter between elements (this is a single delimiter,
rather than a bunch individual delimiter characters)charsToDelete - a set of characters to delete. Useful for deleting unwanted
line breaks: e.g. "\\r\\n\\f" will delete all new lines and line feeds in a String.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).
jarUrl - the original URLTakes a file path and returns the name of the folder under grails-app i.e: Input: /usr/joe/project/grails-app/domain/com/mystartup/Book.groovy Output: domain
path - The pathGets the class name of the specified Grails resource
resource - The Spring ResourceReturns the class name for a Grails resource.
path - The path to checkReturns the class name for a compiled class file
path - The path to check Resolve the given resource URL to a java.io.File,
i.e. to a file in the file system.
resourceUrl - the resource URL to resolvedescription - a description of the original resource that
the URL was created for (for example, a class path location) Resolve the given resource URI to a java.io.File,
i.e. to a file in the file system.
resourceUri - the resource URI to resolvedescription - a description of the original resource that
the URI was created for (for example, a class path location) Resolve the given resource URI to a java.io.File,
i.e. to a file in the file system.
resourceUri - the resource URI to resolveExtract the filename from the given path, e.g. "mypath/myfile.txt" -> "myfile.txt".
path - the file path (may be null)null if noneGets the path relative to the project base directory. Input: /usr/joe/project/grails-app/conf/BootStrap.groovy Output: grails-app/conf/BootStrap.groovy
path - The pathGet the path relative to an artefact folder under grails-app i.e: Input: /usr/joe/project/grails-app/conf/BootStrap.groovy Output: BootStrap.groovy Input: /usr/joe/project/grails-app/domain/com/mystartup/Book.groovy Output: com/mystartup/Book.groovy
path - The path to evaluateTakes a Grails resource (one located inside the grails-app dir) and gets its relative path inside the WEB-INF directory when deployed.
resource - The Grails resource, which is a file inside the grails-app dirRetrieves the static resource path for the given Grails resource artifact (controller/taglib etc.)
resource - The ResourcecontextPath - The additonal context path to prefixDetermine whether the given URL points to a resource in the file system, that is, has protocol "file" or "vfs".
url - the URL to checkChecks whether the specific resources is a Grails resource. A Grails resource is a Groovy or Java class under the grails-app directory
r - The resource to checkDetermine whether the given URL points to a resource in a jar file, that is, has protocol "jar", "zip", "wsjar" or "code-source".
"zip" and "wsjar" are used by BEA WebLogic Server and IBM WebSphere, respectively, but can be treated like jar files. The same applies to "code-source" URLs on Oracle OC4J, provided that the path contains a jar separator.
url - the URL to checkChecks whether the specified path is a Grails path.
path - The path to checkChecks whether the specified path is a Grails path.
r - The resoruce to checkReplace all occurences of a substring within a string with another string.
inString - String to examineoldPattern - String to replacenewPattern - String to insertCreate a URI instance for the given URL, replacing spaces with "%20" quotes first.
Furthermore, this method works on JDK 1.4 as well,
in contrast to the URL.toURI() method.
url - the URL to convert into a URI instanceCreate a URI instance for the given location String, replacing spaces with "%20" quotes first.
location - the location String to convert into a URI instance