A ClassLoader which can load Groovy classes. The loaded classes are cached, classes from other classloaders should not be cached. To be able to load a script that was asked for earlier but was created later it is essential not to keep anything like a "class not found" information for that class name. This includes possible parent loaders. Classes that are not cached are always reloaded.
| Modifiers | Name | Description |
|---|---|---|
static class |
GroovyClassLoader.ClassCollector |
|
static class |
GroovyClassLoader.InnerLoader |
| Modifiers | Name | Description |
|---|---|---|
protected Map |
classCache |
this cache contains the loaded classes or PARSING, if the class is currently parsed |
protected Map |
sourceCache |
This cache contains mappings of file name to class. |
| Constructor and description |
|---|
GroovyClassLoader
()creates a GroovyClassLoader using the current Thread's context Class loader as parent. |
GroovyClassLoader
(ClassLoader loader)creates a GroovyClassLoader using the given ClassLoader as parent |
GroovyClassLoader
(GroovyClassLoader parent)creates a GroovyClassLoader using the given GroovyClassLoader as parent. |
GroovyClassLoader
(ClassLoader parent, CompilerConfiguration config, boolean useConfigurationClasspath)creates a GroovyClassLoader. |
GroovyClassLoader
(ClassLoader loader, CompilerConfiguration config)creates a GroovyClassLoader using the given ClassLoader as parent. |
| Type | Name and description |
|---|---|
void |
addClasspath(String path) |
void |
addURL(URL url) |
void |
clearCache() |
protected GroovyClassLoader.ClassCollector |
createCollector(CompilationUnit unit, SourceUnit su) |
protected CompilationUnit |
createCompilationUnit(CompilerConfiguration config, CodeSource source) |
Class |
defineClass(ClassNode classNode, String file, String newCodeBase)Loads the given class node returning the implementation Class. |
Class |
defineClass(String name, byte[] b) |
String |
generateScriptName() |
protected Class |
getClassCacheEntry(String name) |
protected String[] |
getClassPath()gets the currently used classpath. |
Class[] |
getLoadedClasses() |
protected PermissionCollection |
getPermissions(CodeSource codeSource) |
GroovyResourceLoader |
getResourceLoader() |
protected long |
getTimeStamp(Class cls) |
protected boolean |
isRecompilable(Class cls) |
Boolean |
isShouldRecompile() |
protected boolean |
isSourceNewer(URL source, Class cls)adds a classpath to this classloader. |
Class |
loadClass(String name, boolean lookupScriptFiles, boolean preferClassOverScript) |
Class |
loadClass(String name, boolean lookupScriptFiles, boolean preferClassOverScript, boolean resolve) |
Class |
loadClass(String name)Implemented here to check package access prior to returning an already loaded class. |
protected Class |
loadClass(String name, boolean resolve)This method will take a file name and try to "decode" any URL encoded characters. |
Class |
parseClass(File file)Parses the given file into a Java class capable of being run |
Class |
parseClass(String text, String fileName)Parses the given text into a Java class capable of being run |
Class |
parseClass(String text)Parses the given text into a Java class capable of being run |
Class |
parseClass(InputStream in, String fileName)@deprecated Prefer using methods taking a Reader rather than an InputStream to avoid wrong encoding issues. |
Class |
parseClass(GroovyCodeSource codeSource) |
Class |
parseClass(GroovyCodeSource codeSource, boolean shouldCacheSource) |
protected Class |
recompile(URL source, String className, Class oldClass)(Re)Compiles the given source. |
protected void |
removeClassCacheEntry(String name) |
protected void |
setClassCacheEntry(Class cls) |
void |
setResourceLoader(GroovyResourceLoader resourceLoader) |
void |
setShouldRecompile(Boolean mode)sets if the recompilation should be enable. |
this cache contains the loaded classes or PARSING, if the class is currently parsed
This cache contains mappings of file name to class. It is used to bypass compilation.
creates a GroovyClassLoader using the current Thread's context Class loader as parent.
creates a GroovyClassLoader using the given ClassLoader as parent
creates a GroovyClassLoader using the given GroovyClassLoader as parent. This loader will get the parent's CompilerConfiguration
creates a GroovyClassLoader.
parent - the parent class loaderconfig - the compiler configurationuseConfigurationClasspath - determines if the configurations classpath should be addedcreates a GroovyClassLoader using the given ClassLoader as parent.
Loads the given class node returning the implementation Class.
WARNING: this compilation is not synchronized
gets the currently used classpath.
adds a classpath to this classloader.
path - is a jar file or a directory.Implemented here to check package access prior to returning an already loaded class.
This method will take a file name and try to "decode" any URL encoded characters. For example if the file name contains any spaces this method call will take the resulting %20 encoded values and convert them to spaces.
This method was added specifically to fix defect: Groovy-1787. The defect involved a situation where two scripts were sitting in a directory with spaces in its name. The code would fail when the class loader tried to resolve the file name and would choke on the URLEncoded space values.
Parses the given file into a Java class capable of being run
file - the file name to parseParses the given text into a Java class capable of being run
text - the text of the script/class to parsefileName - the file name to use as the name of the classParses the given text into a Java class capable of being run
text - the text of the script/class to parse(Re)Compiles the given source. This method starts the compilation of a given source, if the source has changed since the class was created. For this isSourceNewer is called.
source - the source pointer for the compilationclassName - the name of the class to be generatedoldClass - a possible former classsets if the recompilation should be enable. There are 3 possible values for this. Any value different than null overrides the value from the compiler configuration. true means to recompile if needed false means to never recompile.
mode - the recompilation modeCopyright © 2003-2014 The Codehaus. All rights reserved.