public class GrailsResourceUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CLASSPATH_URL_PREFIX
Pseudo URL prefix for loading from the class path: "classpath:"
|
static java.util.regex.Pattern[] |
COMPILER_ROOT_PATTERNS |
static java.util.regex.Pattern |
DOMAIN_PATH_PATTERN |
static java.lang.String |
FILE_URL_PREFIX
URL prefix for loading from the file system: "file:"
|
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 |
static java.util.regex.Pattern[] |
patterns |
static java.lang.String |
REGEX_FILE_SEPARATOR |
static java.util.regex.Pattern |
RESOURCE_PATH_PATTERN |
static java.util.regex.Pattern |
SPRING_SCRIPTS_PATH_PATTERN |
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 |
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
|
| Constructor and Description |
|---|
GrailsResourceUtils() |
| Modifier and Type | Method and Description |
|---|---|
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
|
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.
|
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 ('/').
|
static java.lang.String |
cleanPath(java.lang.String path)
Normalize the path by suppressing sequences like "path/.." and
inner simple dots.
|
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).
|
static Resource |
getAppDir(Resource resource) |
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:
Input: /usr/joe/project/grails-app/domain/com/mystartup/Book.groovy
Output: domain
|
static java.lang.String |
getClassName(Resource resource)
Gets the class name of the specified Grails resource
|
static java.lang.String |
getClassName(java.lang.String path)
Returns the class name for a Grails resource.
|
static java.io.File |
getFile(java.net.URI resourceUri)
Resolve the given resource URI to a
java.io.File,
i.e. |
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. |
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. |
static java.lang.String |
getFilename(java.lang.String path)
Extract the filename from the given path,
e.g.
|
static java.lang.String |
getPathFromRoot(java.lang.String path)
Get 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
|
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.
|
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.)
|
static Resource |
getViewsDir(Resource resource) |
static java.lang.Object |
instantiateFromConfig(groovy.util.ConfigObject config,
java.lang.String configKey,
java.lang.String defaultClassName) |
static java.lang.Object |
instantiateFromFlatConfig(java.util.Map<java.lang.String,java.lang.Object> flatConfig,
java.lang.String configKey,
java.lang.String defaultClassName) |
static boolean |
isDomainClass(java.net.URL url)
Checks whether the file referenced by the given url is a domain class
|
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".
|
static boolean |
isGrailsPath(java.lang.String path)
Checks whether the specified path is a Grails path.
|
static boolean |
isGrailsResource(Resource r) |
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".
|
static java.net.URI |
toURI(java.lang.String location)
Create a URI instance for the given location String,
replacing spaces with "%20" quotes first.
|
static java.net.URI |
toURI(java.net.URL url)
Create a URI instance for the given URL,
replacing spaces with "%20" quotes first.
|
static void |
useCachesIfNecessary(java.net.URLConnection con) |
public static final java.lang.String JAR_URL_SEPARATOR
public static final java.lang.String CLASSPATH_URL_PREFIX
public static final java.lang.String FILE_URL_PREFIX
public static final java.lang.String URL_PROTOCOL_FILE
public static final java.lang.String URL_PROTOCOL_JAR
public static final java.lang.String URL_PROTOCOL_ZIP
public static final java.lang.String URL_PROTOCOL_VFSZIP
public static final java.lang.String URL_PROTOCOL_VFS
public static final java.lang.String URL_PROTOCOL_WSJAR
public static final java.lang.String URL_PROTOCOL_CODE_SOURCE
public static final java.lang.String WEB_INF
public static final java.lang.String GRAILS_APP_DIR
public static final java.lang.String WEB_APP_DIR
public static final java.lang.String VIEWS_DIR_PATH
public static final java.lang.String REGEX_FILE_SEPARATOR
public static java.util.regex.Pattern DOMAIN_PATH_PATTERN
public static java.util.regex.Pattern RESOURCE_PATH_PATTERN
public static java.util.regex.Pattern SPRING_SCRIPTS_PATH_PATTERN
public static java.util.regex.Pattern[] COMPILER_ROOT_PATTERNS
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_FIRST_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_SECOND_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_THIRD_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_FOURTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_FIFTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_SIXTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_SEVENTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_EIGHTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_NINTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_TENTH_MATCH
public static final java.util.regex.Pattern GRAILS_RESOURCE_PATTERN_ELEVENTH_MATCH
public static final java.util.regex.Pattern[] patterns
public static boolean isDomainClass(java.net.URL url)
url - The URL instancepublic static java.lang.String getFilename(java.lang.String path)
path - the file path (may be null)null if nonepublic static java.lang.String classPackageAsResourcePath(java.lang.Class<?> clazz)
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.ClassLoader.getResource(java.lang.String),
Class.getResource(java.lang.String)public static void useCachesIfNecessary(java.net.URLConnection con)
public static java.lang.String getClassName(Resource resource)
resource - The Spring Resourcepublic static java.lang.String getClassName(java.lang.String path)
path - The path to checkpublic static java.io.File getFile(java.net.URL resourceUrl,
java.lang.String description)
throws java.io.FileNotFoundException
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)java.io.FileNotFoundException - if the URL cannot be resolved to
a file in the file systempublic static boolean isJarURL(java.net.URL url)
"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 checkpublic static java.io.File getFile(java.net.URI resourceUri,
java.lang.String description)
throws java.io.FileNotFoundException
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)java.io.FileNotFoundException - if the URL cannot be resolved to
a file in the file systempublic static java.io.File getFile(java.net.URI resourceUri)
throws java.io.FileNotFoundException
java.io.File,
i.e. to a file in the file system.resourceUri - the resource URI to resolvejava.io.FileNotFoundException - if the URL cannot be resolved to
a file in the file systempublic static java.net.URI toURI(java.net.URL url)
throws java.net.URISyntaxException
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 instancejava.net.URISyntaxException - if the URL wasn't a valid URIURL.toURI()public static boolean isFileURL(java.net.URL url)
url - the URL to checkpublic static java.lang.String applyRelativePath(java.lang.String path,
java.lang.String relativePath)
path - the path to start from (usually a full file path)relativePath - the relative path to apply
(relative to the full file path above)public static java.lang.String cleanPath(java.lang.String path)
The result is convenient for path comparison. For other uses, notice that Windows separators ("\") are replaced by simple slashes.
path - the original pathpublic static java.net.URL extractJarFileURL(java.net.URL jarUrl)
throws java.net.MalformedURLException
jarUrl - the original URLjava.net.MalformedURLException - if no valid jar file URL could be extractedpublic static java.net.URI toURI(java.lang.String location)
throws java.net.URISyntaxException
location - the location String to convert into a URI instancejava.net.URISyntaxException - if the location wasn't a valid URIpublic static boolean isGrailsPath(java.lang.String path)
path - The path to checkpublic static boolean isGrailsResource(Resource r)
public static java.lang.String getRelativeInsideWebInf(Resource resource)
resource - The Grails resource, which is a file inside the grails-app dirpublic static java.lang.String getStaticResourcePathForResource(Resource resource, java.lang.String contextPath)
resource - The ResourcecontextPath - The additonal context path to prefixpublic static java.lang.String getPathFromRoot(java.lang.String path)
path - The path to evaluatepublic static java.lang.String getArtefactDirectory(java.lang.String path)
path - The pathpublic static java.lang.String appendPiecesForUri(java.lang.String... pieces)
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 uripublic static java.lang.Object instantiateFromConfig(groovy.util.ConfigObject config,
java.lang.String configKey,
java.lang.String defaultClassName)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.lang.LinkageError
java.lang.InstantiationExceptionjava.lang.IllegalAccessExceptionjava.lang.ClassNotFoundExceptionjava.lang.LinkageErrorpublic static java.lang.Object instantiateFromFlatConfig(java.util.Map<java.lang.String,java.lang.Object> flatConfig,
java.lang.String configKey,
java.lang.String defaultClassName)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.lang.LinkageError
java.lang.InstantiationExceptionjava.lang.IllegalAccessExceptionjava.lang.ClassNotFoundExceptionjava.lang.LinkageError