Class PluginRegistry


  • public final class PluginRegistry
    extends java.lang.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.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  PluginRegistry.RepositoryListener
      Internal class used to handle listener events from repositories.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addPlugin​(Plugin plugin)
      Adds a plugin to the plugin registry.
      void addPluginListener​(PluginListener l)
      Adds a PluginListener to this registry to be notified of PluginEvents.
      private void firePluginStarted​(Plugin plugin)
      Calls the pluginStarted method on every registered PluginListener.
      private void firePluginStopped​(Plugin plugin)
      Calls the pluginStopped method for every registered PluginListner.
      LoggerRepositoryEx getLoggerRepository()
      Get logger repository.
      java.util.List<Plugin> getPlugins()
      Returns all the plugins for a given repository.
      java.util.List getPlugins​(java.lang.Class pluginClass)
      Returns all the plugins for a given repository that are instances of a certain class.
      boolean pluginNameExists​(java.lang.String name)
      Returns true if the specified name is already taken by an existing Plugin registered within the scope of the specified LoggerRepository.
      void removePluginListener​(PluginListener l)
      Removes a particular PluginListener from this registry such that it will no longer be notified of PluginEvents.
      void stopAllPlugins()
      Stops all plugins in the given logger repository.
      Plugin stopPlugin​(java.lang.String pluginName)
      Stops a plugin by plugin name and repository.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • pluginMap

        private final java.util.Map<java.lang.String,​Plugin> pluginMap
        The pluginMap is keyed by plugin name and contains plugins as values. key=plugin.getName, value=plugin
      • listenerList

        private final java.util.List listenerList
        List of listeners.
    • 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​(java.lang.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.
      • firePluginStarted

        private void firePluginStarted​(Plugin plugin)
        Calls the pluginStarted method on every registered PluginListener.
        Parameters:
        plugin - The plugin that has been started.
      • firePluginStopped

        private void firePluginStopped​(Plugin plugin)
        Calls the pluginStopped method for every registered PluginListner.
        Parameters:
        plugin - The plugin that has been stopped.
      • getPlugins

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

        public java.util.List getPlugins​(java.lang.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​(java.lang.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