Package groovy.util
Class GroovyScriptEngine
- java.lang.Object
 - 
- groovy.util.GroovyScriptEngine
 
 
- 
- All Implemented Interfaces:
 ResourceConnector
public class GroovyScriptEngine extends Object implements ResourceConnector
Specific script engine able to reload modified scripts as well as dealing properly with dependent scripts. 
- 
- 
Constructor Summary
Constructors Constructor Description GroovyScriptEngine(ResourceConnector rc)GroovyScriptEngine(ResourceConnector rc, ClassLoader parentClassLoader)GroovyScriptEngine(String url)GroovyScriptEngine(String[] urls)GroovyScriptEngine(String[] urls, ClassLoader parentClassLoader)GroovyScriptEngine(String url, ClassLoader parentClassLoader)GroovyScriptEngine(URL[] roots)GroovyScriptEngine(URL[] roots, ClassLoader parentClassLoader) 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ScriptcreateScript(String scriptName, Binding binding)Creates a Script with a given scriptName and binding.CompilerConfigurationgetConfig()protected longgetCurrentTime()GroovyClassLoadergetGroovyClassLoader()Returns the GroovyClassLoader associated with this script engine instance.ClassLoadergetParentClassLoader()Get theClassLoaderthat will serve as the parent ClassLoader of theGroovyClassLoaderin which scripts will be executed.URLConnectiongetResourceConnection(String resourceName)Get a resource connection as aURLConnectionto retrieve a script from theResourceConnector.protected booleanisSourceNewer(groovy.util.GroovyScriptEngine.ScriptCacheEntry entry)ClassloadScriptByName(String scriptName)Get the class of the scriptName in question, so that you can instantiate Groovy objects with caching and reloading.static voidmain(String[] urls)Simple testing harness for the GSE.Objectrun(String scriptName, Binding binding)Run a script identified by name with a given binding.Stringrun(String scriptName, String argument)Run a script identified by name with a single argument.voidsetConfig(CompilerConfiguration config)sets a compiler configuration 
 - 
 
- 
- 
Constructor Detail
- 
GroovyScriptEngine
public GroovyScriptEngine(URL[] roots)
 
- 
GroovyScriptEngine
public GroovyScriptEngine(URL[] roots, ClassLoader parentClassLoader)
 
- 
GroovyScriptEngine
public GroovyScriptEngine(String[] urls) throws IOException
- Throws:
 IOException
 
- 
GroovyScriptEngine
public GroovyScriptEngine(String[] urls, ClassLoader parentClassLoader) throws IOException
- Throws:
 IOException
 
- 
GroovyScriptEngine
public GroovyScriptEngine(String url) throws IOException
- Throws:
 IOException
 
- 
GroovyScriptEngine
public GroovyScriptEngine(String url, ClassLoader parentClassLoader) throws IOException
- Throws:
 IOException
 
- 
GroovyScriptEngine
public GroovyScriptEngine(ResourceConnector rc)
 
- 
GroovyScriptEngine
public GroovyScriptEngine(ResourceConnector rc, ClassLoader parentClassLoader)
 
 - 
 
- 
Method Detail
- 
main
public static void main(String[] urls) throws Exception
Simple testing harness for the GSE. Enter script roots as arguments and then input script names to run them.- Parameters:
 urls- an array of URLs- Throws:
 Exception- if something goes wrong
 
- 
getResourceConnection
public URLConnection getResourceConnection(String resourceName) throws ResourceException
Get a resource connection as aURLConnectionto retrieve a script from theResourceConnector.- Specified by:
 getResourceConnectionin interfaceResourceConnector- Parameters:
 resourceName- name of the resource to be retrieved- Returns:
 - a URLConnection to the resource
 - Throws:
 ResourceException
 
- 
getParentClassLoader
public ClassLoader getParentClassLoader()
Get theClassLoaderthat will serve as the parent ClassLoader of theGroovyClassLoaderin which scripts will be executed. By default, this is the ClassLoader that loaded theGroovyScriptEngineclass.- Returns:
 - the parent classloader used to load scripts
 
 
- 
loadScriptByName
public Class loadScriptByName(String scriptName) throws ResourceException, ScriptException
Get the class of the scriptName in question, so that you can instantiate Groovy objects with caching and reloading.- Parameters:
 scriptName- resource name pointing to the script- Returns:
 - the loaded scriptName as a compiled class
 - Throws:
 ResourceException- if there is a problem accessing the scriptScriptException- if there is a problem parsing the script
 
- 
run
public String run(String scriptName, String argument) throws ResourceException, ScriptException
Run a script identified by name with a single argument.- Parameters:
 scriptName- name of the script to runargument- a single argument passed as a variable namedargin the binding- Returns:
 - a 
toString()representation of the result of the execution of the script - Throws:
 ResourceException- if there is a problem accessing the scriptScriptException- if there is a problem parsing the script
 
- 
run
public Object run(String scriptName, Binding binding) throws ResourceException, ScriptException
Run a script identified by name with a given binding.- Parameters:
 scriptName- name of the script to runbinding- the binding to pass to the script- Returns:
 - an object
 - Throws:
 ResourceException- if there is a problem accessing the scriptScriptException- if there is a problem parsing the script
 
- 
createScript
public Script createScript(String scriptName, Binding binding) throws ResourceException, ScriptException
Creates a Script with a given scriptName and binding.- Parameters:
 scriptName- name of the script to runbinding- the binding to pass to the script- Returns:
 - the script object
 - Throws:
 ResourceException- if there is a problem accessing the scriptScriptException- if there is a problem parsing the script
 
- 
isSourceNewer
protected boolean isSourceNewer(groovy.util.GroovyScriptEngine.ScriptCacheEntry entry)
 
- 
getGroovyClassLoader
public GroovyClassLoader getGroovyClassLoader()
Returns the GroovyClassLoader associated with this script engine instance. Useful if you need to pass the class loader to another library.- Returns:
 - the GroovyClassLoader
 
 
- 
getConfig
public CompilerConfiguration getConfig()
- Returns:
 - a non null compiler configuration
 
 
- 
setConfig
public void setConfig(CompilerConfiguration config)
sets a compiler configuration- Parameters:
 config- - the compiler configuration- Throws:
 NullPointerException- if config is null
 
- 
getCurrentTime
protected long getCurrentTime()
 
 - 
 
 -