|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgroovy.util.GroovyScriptEngine
public class GroovyScriptEngine
Specific script engine able to reload modified scripts as well as dealing properly with dependent scripts.
Nested Class Summary | |
---|---|
private static class |
GroovyScriptEngine.ScriptCacheEntry
|
Field Summary | |
---|---|
private static java.lang.ThreadLocal |
currentCacheEntryHolder
|
private GroovyClassLoader |
groovyLoader
|
private ResourceConnector |
rc
|
private java.net.URL[] |
roots
|
private java.util.Map |
scriptCache
|
Constructor Summary | |
---|---|
GroovyScriptEngine(ResourceConnector rc)
|
|
GroovyScriptEngine(ResourceConnector rc,
java.lang.ClassLoader parentClassLoader)
|
|
GroovyScriptEngine(java.lang.String url)
|
|
GroovyScriptEngine(java.lang.String[] urls)
|
|
GroovyScriptEngine(java.lang.String[] urls,
java.lang.ClassLoader parentClassLoader)
|
|
GroovyScriptEngine(java.lang.String url,
java.lang.ClassLoader parentClassLoader)
|
|
GroovyScriptEngine(java.net.URL[] roots)
The groovy script engine will run groovy scripts and reload them and their dependencies when they are modified. |
|
GroovyScriptEngine(java.net.URL[] roots,
java.lang.ClassLoader parentClassLoader)
|
Method Summary | |
---|---|
Script |
createScript(Binding binding,
GroovyScriptEngine.ScriptCacheEntry entry)
Creates a Script object given a cache entry object and a binding. |
private boolean |
dependencyOutOfDate(GroovyScriptEngine.ScriptCacheEntry entry)
|
java.lang.ClassLoader |
getParentClassLoader()
Get the ClassLoader that will serve as the parent ClassLoader of the
GroovyClassLoader in which scripts will be executed. |
java.net.URLConnection |
getResourceConnection(java.lang.String resourceName)
Get a resource connection as a URLConnection to retrieve a script
from the ResourceConnector |
private void |
initGroovyLoader(java.lang.ClassLoader parentClassLoader)
Initialize a new GroovyClassLoader with the parentClassLoader passed as a parameter. |
java.lang.Class |
loadScriptByName(java.lang.String scriptName)
Get the class of the scriptName in question, so that you can instantiate Groovy objects with caching and reloading. |
java.lang.Class |
loadScriptByName(java.lang.String scriptName,
java.lang.ClassLoader parentClassLoader)
Deprecated. |
static void |
main(java.lang.String[] urls)
Simple testing harness for the GSE. |
java.lang.Object |
run(java.lang.String scriptName,
Binding binding)
Run a script identified by name with a given binding. |
java.lang.String |
run(java.lang.String scriptName,
java.lang.String argument)
Run a script identified by name with a single argument. |
void |
setParentClassLoader(java.lang.ClassLoader parentClassLoader)
Deprecated. |
private GroovyScriptEngine.ScriptCacheEntry |
updateCacheEntry(java.lang.String scriptName)
Locate the class and reload it or any of its dependencies |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.net.URL[] roots
private java.util.Map scriptCache
private ResourceConnector rc
private static java.lang.ThreadLocal currentCacheEntryHolder
private GroovyClassLoader groovyLoader
Constructor Detail |
---|
public GroovyScriptEngine(java.net.URL[] roots)
roots
- This an array of URLs where Groovy scripts will be stored. They should
be layed out using their package structure like Java classespublic GroovyScriptEngine(java.net.URL[] roots, java.lang.ClassLoader parentClassLoader)
public GroovyScriptEngine(java.lang.String[] urls) throws java.io.IOException
java.io.IOException
public GroovyScriptEngine(java.lang.String[] urls, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
java.io.IOException
public GroovyScriptEngine(java.lang.String url) throws java.io.IOException
java.io.IOException
public GroovyScriptEngine(java.lang.String url, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
java.io.IOException
public GroovyScriptEngine(ResourceConnector rc)
public GroovyScriptEngine(ResourceConnector rc, java.lang.ClassLoader parentClassLoader)
Method Detail |
---|
public static void main(java.lang.String[] urls) throws java.lang.Exception
urls
- an array of URLs
java.lang.Exception
- if something goes wrongprivate void initGroovyLoader(java.lang.ClassLoader parentClassLoader)
parentClassLoader
- the class loader to usepublic java.net.URLConnection getResourceConnection(java.lang.String resourceName) throws ResourceException
URLConnection
to retrieve a script
from the ResourceConnector
getResourceConnection
in interface ResourceConnector
resourceName
- name of the resource to be retrieved
ResourceException
public java.lang.ClassLoader getParentClassLoader()
ClassLoader
that will serve as the parent ClassLoader of the
GroovyClassLoader
in which scripts will be executed. By default, this is the
ClassLoader that loaded the GroovyScriptEngine
class.
public void setParentClassLoader(java.lang.ClassLoader parentClassLoader)
parentClassLoader
- ClassLoader to be used as the parent ClassLoader for scripts executed by the enginepublic java.lang.Class loadScriptByName(java.lang.String scriptName) throws ResourceException, ScriptException
scriptName
- resource name pointing to the script
ResourceException
- if there is a problem accessing the script
ScriptException
- if there is a problem parsing the scriptpublic java.lang.Class loadScriptByName(java.lang.String scriptName, java.lang.ClassLoader parentClassLoader) throws ResourceException, ScriptException
scriptName
- resource name pointing to the scriptparentClassLoader
- the class loader to use when loading the script
ResourceException
- if there is a problem accessing the script
ScriptException
- if there is a problem parsing the scriptprivate GroovyScriptEngine.ScriptCacheEntry updateCacheEntry(java.lang.String scriptName) throws ResourceException, ScriptException
scriptName
- resource name pointing to the script
ResourceException
- if there is a problem accessing the script
ScriptException
- if there is a problem parsing the scriptprivate boolean dependencyOutOfDate(GroovyScriptEngine.ScriptCacheEntry entry)
public java.lang.String run(java.lang.String scriptName, java.lang.String argument) throws ResourceException, ScriptException
scriptName
- name of the script to runargument
- a single argument passed as a variable named arg
in the binding
toString()
representation of the result of the execution of the script
ResourceException
- if there is a problem accessing the script
ScriptException
- if there is a problem parsing the scriptpublic java.lang.Object run(java.lang.String scriptName, Binding binding) throws ResourceException, ScriptException
scriptName
- name of the script to runbinding
- binding to pass to the script
ResourceException
- if there is a problem accessing the script
ScriptException
- if there is a problem parsing the scriptpublic Script createScript(Binding binding, GroovyScriptEngine.ScriptCacheEntry entry)
binding
- the binding to useentry
- the script cache entry
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |