Class GroovyRunnerRegistry

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

public class GroovyRunnerRegistry
extends java.lang.Object
implements java.util.Map<java.lang.String,​GroovyRunner>, java.lang.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
  • Nested Class Summary

    Nested classes/interfaces inherited from interface java.util.Map

    java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
  • Method Summary

    Modifier and Type Method Description
    void clear()
    Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.
    boolean containsKey​(java.lang.Object key)
    Returns true if a runner was registered with the specified key.
    boolean containsValue​(java.lang.Object runner)
    Returns true if registry contains the given runner instance.
    java.util.Set<java.util.Map.Entry<java.lang.String,​GroovyRunner>> entrySet()
    Returns a set of entries for registered runners.
    GroovyRunner get​(java.lang.Object key)
    Returns the registered runner for the specified key.
    static GroovyRunnerRegistry getInstance()
    Returns a reference to the one and only registry instance.
    boolean isEmpty()
    Returns true if the registry contains no runners, else false.
    java.util.Iterator<GroovyRunner> iterator()
    Returns an iterator for all runners that are registered.
    java.util.Set<java.lang.String> keySet()
    Set of all keys associated with registered runners.
    void load​(java.lang.ClassLoader classLoader)
    Loads GroovyRunner instances using the ServiceLoader facility.
    GroovyRunner put​(java.lang.String key, GroovyRunner runner)
    Registers a runner with the specified key.
    void putAll​(java.util.Map<? extends java.lang.String,​? extends GroovyRunner> m)
    Adds all entries from the given Map to the registry.
    GroovyRunner remove​(java.lang.Object key)
    Removes a registered runner from the registry.
    int size()
    Returns the number of registered runners.
    java.lang.String toString()  
    java.util.Collection<GroovyRunner> values()
    Returns a collection of all registered runners.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator

    Methods inherited from interface java.util.Map

    compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
  • Method Details

    • getInstance

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

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

      public java.util.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 java.lang.Iterable<GroovyRunner>
      Returns:
      iterator for all registered runners
    • size

      public int size()
      Returns the number of registered runners.
      Specified by:
      size in interface java.util.Map<java.lang.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 java.util.Map<java.lang.String,​GroovyRunner>
      Returns:
      true if no runners are registered
    • containsKey

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

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

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

      public GroovyRunner put​(java.lang.String key, GroovyRunner runner)
      Registers a runner with the specified key.
      Specified by:
      put in interface java.util.Map<java.lang.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​(java.lang.Object key)
      Removes a registered runner from the registry.
      Specified by:
      remove in interface java.util.Map<java.lang.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​(java.util.Map<? extends java.lang.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 java.util.Map<java.lang.String,​GroovyRunner>
      Parameters:
      m - entries to add to the registry
      Throws:
      java.lang.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 java.util.Map<java.lang.String,​GroovyRunner>
    • keySet

      public java.util.Set<java.lang.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 java.util.Map<java.lang.String,​GroovyRunner>
      Returns:
      an unmodifiable set of keys for registered runners
    • values

      public java.util.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 java.util.Map<java.lang.String,​GroovyRunner>
      Returns:
      an unmodifiable collection of registered runner instances
    • entrySet

      public java.util.Set<java.util.Map.Entry<java.lang.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 java.util.Map<java.lang.String,​GroovyRunner>
      Returns:
      an unmodifiable set of registered runner entries
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object