Package groovy.util

Class GroovyScriptEngine

java.lang.Object
groovy.util.GroovyScriptEngine
All Implemented Interfaces:
ResourceConnector

public class GroovyScriptEngine
extends java.lang.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, 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)  
    GroovyScriptEngine​(java.net.URL[] roots, java.lang.ClassLoader parentClassLoader)  
  • Method Summary

    Modifier and Type Method Description
    Script createScript​(java.lang.String scriptName, Binding binding)
    Creates a Script with a given scriptName and binding.
    CompilerConfiguration getConfig()  
    protected long getCurrentTime()  
    GroovyClassLoader getGroovyClassLoader()
    Returns the GroovyClassLoader associated with this script engine instance.
    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.
    protected boolean isSourceNewer​(groovy.util.GroovyScriptEngine.ScriptCacheEntry entry)  
    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.
    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 setConfig​(CompilerConfiguration config)
    sets a compiler configuration

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GroovyScriptEngine

      public GroovyScriptEngine​(java.net.URL[] roots)
    • GroovyScriptEngine

      public GroovyScriptEngine​(java.net.URL[] roots, java.lang.ClassLoader parentClassLoader)
    • GroovyScriptEngine

      public GroovyScriptEngine​(java.lang.String[] urls) throws java.io.IOException
      Throws:
      java.io.IOException
    • GroovyScriptEngine

      public GroovyScriptEngine​(java.lang.String[] urls, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
      Throws:
      java.io.IOException
    • GroovyScriptEngine

      public GroovyScriptEngine​(java.lang.String url) throws java.io.IOException
      Throws:
      java.io.IOException
    • GroovyScriptEngine

      public GroovyScriptEngine​(java.lang.String url, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
      Throws:
      java.io.IOException
    • GroovyScriptEngine

      public GroovyScriptEngine​(ResourceConnector rc)
    • GroovyScriptEngine

      public GroovyScriptEngine​(ResourceConnector rc, java.lang.ClassLoader parentClassLoader)
  • Method Details

    • main

      public static void main​(java.lang.String[] urls) throws java.lang.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:
      java.lang.Exception - if something goes wrong
    • getResourceConnection

      public java.net.URLConnection getResourceConnection​(java.lang.String resourceName) throws ResourceException
      Get a resource connection as a URLConnection to retrieve a script from the ResourceConnector.
      Specified by:
      getResourceConnection in interface ResourceConnector
      Parameters:
      resourceName - name of the resource to be retrieved
      Returns:
      a URLConnection to the resource
      Throws:
      ResourceException
    • getParentClassLoader

      public java.lang.ClassLoader getParentClassLoader()
      Get the 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.
      Returns:
      the parent classloader used to load scripts
    • loadScriptByName

      public java.lang.Class loadScriptByName​(java.lang.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 script
      ScriptException - if there is a problem parsing the script
    • run

      public java.lang.String run​(java.lang.String scriptName, java.lang.String argument) throws ResourceException, ScriptException
      Run a script identified by name with a single argument.
      Parameters:
      scriptName - name of the script to run
      argument - a single argument passed as a variable named arg in the binding
      Returns:
      a toString() representation of the result of the execution of the script
      Throws:
      ResourceException - if there is a problem accessing the script
      ScriptException - if there is a problem parsing the script
    • run

      public java.lang.Object run​(java.lang.String scriptName, Binding binding) throws ResourceException, ScriptException
      Run a script identified by name with a given binding.
      Parameters:
      scriptName - name of the script to run
      binding - the binding to pass to the script
      Returns:
      an object
      Throws:
      ResourceException - if there is a problem accessing the script
      ScriptException - if there is a problem parsing the script
    • createScript

      public Script createScript​(java.lang.String scriptName, Binding binding) throws ResourceException, ScriptException
      Creates a Script with a given scriptName and binding.
      Parameters:
      scriptName - name of the script to run
      binding - the binding to pass to the script
      Returns:
      the script object
      Throws:
      ResourceException - if there is a problem accessing the script
      ScriptException - 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:
      java.lang.NullPointerException - if config is null
    • getCurrentTime

      protected long getCurrentTime()