Class PluginRegistry

java.lang.Object
org.apache.log4j.plugins.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.
  • Field Details

    • pluginMap

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

      private final LoggerRepositoryEx loggerRepository
      Logger repository.
    • listener

      private final PluginRegistry.RepositoryListener listener
      the listener used to listen for repository events.
    • listenerList

      private final List listenerList
      List of listeners.
  • Constructor Details

    • PluginRegistry

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

    • 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.
    • 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 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