Class 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 Detail

      • 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