Class GroovyRunnerRegistry

java.lang.Object
org.apache.groovy.plugin.GroovyRunnerRegistry
All Implemented Interfaces:
Iterable<GroovyRunner>, Map<String,GroovyRunner>

public class GroovyRunnerRegistry extends Object implements Map<String,GroovyRunner>, Iterable<GroovyRunner>
Registry of services that implement the GroovyRunner interface.

This registry makes use of the ServiceLoader facility. The preferred method for registering new GroovyRunner providers is to place them in a provider-configuration file in the resource directory META-INF/services. The preferred method for accessing the registered runners is by making use of the Iterable interface using an enhanced for-loop.

For compatibility with previous versions, this registry implements the Map interface. All null keys and values will be ignored and no exception thrown, except where noted.

By default the registry contains runners that are capable of running JUnit 3 and JUnit 4 test classes if those libraries are available to the class loader.

Since:
2.5.0
  • Method Details

    • getInstance

      public static GroovyRunnerRegistry getInstance()
      Returns a reference to the one and only registry instance.
      Returns:
      registry instance
    • load

      public void load(ClassLoader classLoader)
      Loads GroovyRunner instances using the ServiceLoader facility.
      Parameters:
      classLoader - used to locate provider-configuration files and classes
    • iterator

      public Iterator<GroovyRunner> iterator()
      Returns an iterator for all runners that are registered. The returned iterator is a snapshot of the registry at the time the iterator is created. This iterator does not support removal.
      Specified by:
      iterator in interface Iterable<GroovyRunner>
      Returns:
      iterator for all registered runners
    • size

      public int size()
      Returns the number of registered runners.
      Specified by:
      size in interface Map<String,GroovyRunner>
      Returns:
      number of registered runners
    • isEmpty

      public boolean isEmpty()
      Returns true if the registry contains no runners, else false.
      Specified by:
      isEmpty in interface Map<String,GroovyRunner>
      Returns:
      true if no runners are registered
    • containsKey

      public boolean containsKey(Object key)
      Returns true if a runner was registered with the specified key.
      Specified by:
      containsKey in interface Map<String,GroovyRunner>
      Parameters:
      key - for the registered runner
      Returns:
      true if a runner was registered with given key
    • containsValue

      public boolean containsValue(Object runner)
      Returns true if registry contains the given runner instance.
      Specified by:
      containsValue in interface Map<String,GroovyRunner>
      Parameters:
      runner - instance of a GroovyRunner
      Returns:
      true if the given runner is registered
    • get

      public GroovyRunner get(Object key)
      Returns the registered runner for the specified key.
      Specified by:
      get in interface Map<String,GroovyRunner>
      Parameters:
      key - used to lookup the runner
      Returns:
      the runner registered with the given key
    • put

      public GroovyRunner put(String key, GroovyRunner runner)
      Registers a runner with the specified key.
      Specified by:
      put in interface Map<String,GroovyRunner>
      Parameters:
      key - to associate with the runner
      runner - the runner to register
      Returns:
      the previously registered runner for the given key, if no runner was previously registered for the key then null
    • remove

      public GroovyRunner remove(Object key)
      Removes a registered runner from the registry.
      Specified by:
      remove in interface Map<String,GroovyRunner>
      Parameters:
      key - of the runner to remove
      Returns:
      the runner instance that was removed, if no runner instance was removed then null
    • putAll

      public void putAll(Map<? extends String,? extends GroovyRunner> m)
      Adds all entries from the given Map to the registry. Any entries in the provided Map that contain a null key or value will be ignored.
      Specified by:
      putAll in interface Map<String,GroovyRunner>
      Parameters:
      m - entries to add to the registry
      Throws:
      NullPointerException - if the given Map is null
    • clear

      public void clear()
      Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.
      Specified by:
      clear in interface Map<String,GroovyRunner>
    • keySet

      public Set<String> keySet()
      Set of all keys associated with registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the set.
      Specified by:
      keySet in interface Map<String,GroovyRunner>
      Returns:
      an unmodifiable set of keys for registered runners
    • values

      public Collection<GroovyRunner> values()
      Returns a collection of all registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the collection.
      Specified by:
      values in interface Map<String,GroovyRunner>
      Returns:
      an unmodifiable collection of registered runner instances
    • entrySet

      public Set<Map.Entry<String,GroovyRunner>> entrySet()
      Returns a set of entries for registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the set.
      Specified by:
      entrySet in interface Map<String,GroovyRunner>
      Returns:
      an unmodifiable set of registered runner entries
    • toString

      public String toString()
      Overrides:
      toString in class Object