Class PluginRegistry


  • public final class PluginRegistry
    extends Object
    This is a registry for Plugin instances. It provides methods to start and stop plugin objects individually and to stop all plugins for a repository.
    Author:
    Mark Womack, Paul Smith
    • Constructor Detail

      • PluginRegistry

        public PluginRegistry​(LoggerRepositoryEx repository)
        Creates a new instance.
        Parameters:
        repository - logger repository.
    • Method Detail

      • getLoggerRepository

        public LoggerRepositoryEx getLoggerRepository()
        Get logger repository.
        Returns:
        logger repository.
      • pluginNameExists

        public boolean pluginNameExists​(String name)
        Returns true if the specified name is already taken by an existing Plugin registered within the scope of the specified LoggerRepository.
        Parameters:
        name - The name to check the repository for
        Returns:
        true if the name is already in use, otherwise false
      • addPlugin

        public void addPlugin​(Plugin plugin)
        Adds a plugin to the plugin registry. If a plugin with the same name exists already, it is shutdown and removed.
        Parameters:
        plugin - the plugin to add.
      • getPlugins

        public List<Plugin> getPlugins()
        Returns all the plugins for a given repository.
        Returns:
        List list of plugins from the repository.
      • getPlugins

        public List getPlugins​(Class pluginClass)
        Returns all the plugins for a given repository that are instances of a certain class.
        Parameters:
        pluginClass - the class the plugin must implement to be selected.
        Returns:
        List list of plugins from the repository.
      • stopPlugin

        public Plugin stopPlugin​(String pluginName)
        Stops a plugin by plugin name and repository.
        Parameters:
        pluginName - the name of the plugin to stop.
        Returns:
        Plugin the plugin, if stopped, or null if the the plugin was not found in the registry.
      • stopAllPlugins

        public void stopAllPlugins()
        Stops all plugins in the given logger repository.
      • addPluginListener

        public void addPluginListener​(PluginListener l)
        Adds a PluginListener to this registry to be notified of PluginEvents.
        Parameters:
        l - PluginListener to add to this registry
      • removePluginListener

        public void removePluginListener​(PluginListener l)
        Removes a particular PluginListener from this registry such that it will no longer be notified of PluginEvents.
        Parameters:
        l - PluginListener to remove