Class PluginManager


  • public class PluginManager
    extends java.lang.Object
    Loads and manages all the plugins.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String category  
      private static java.lang.String LOG4J_PACKAGES  
      private static Logger LOGGER  
      private static java.util.concurrent.CopyOnWriteArrayList<java.lang.String> PACKAGES  
      private java.util.Map<java.lang.String,​PluginType<?>> plugins  
    • Constructor Summary

      Constructors 
      Constructor Description
      PluginManager​(java.lang.String category)
      Constructs a PluginManager for the plugin category name given.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static void addPackage​(java.lang.String p)
      Adds a package name to be scanned for plugins.
      static void addPackages​(java.util.Collection<java.lang.String> packages)
      Adds a list of package names to be scanned for plugins.
      void collectPlugins()
      Locates all the plugins.
      void collectPlugins​(java.util.List<java.lang.String> packages)
      Locates all the plugins including search of specific packages.
      java.util.Map<java.lang.String,​PluginType<?>> getPlugins()
      Returns all the matching plugins.
      PluginType<?> getPluginType​(java.lang.String name)
      Returns the type of a specified plugin.
      static void main​(java.lang.String[] args)
      Deprecated.
      Use PluginProcessor instead.
      private static void mergeByName​(java.util.Map<java.lang.String,​PluginType<?>> newPlugins, java.util.List<PluginType<?>> plugins)  
      • Methods inherited from class java.lang.Object

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

      • PACKAGES

        private static final java.util.concurrent.CopyOnWriteArrayList<java.lang.String> PACKAGES
      • LOGGER

        private static final Logger LOGGER
      • plugins

        private java.util.Map<java.lang.String,​PluginType<?>> plugins
      • category

        private final java.lang.String category
    • Constructor Detail

      • PluginManager

        public PluginManager​(java.lang.String category)
        Constructs a PluginManager for the plugin category name given.
        Parameters:
        category - The plugin category name.
    • Method Detail

      • main

        @Deprecated
        public static void main​(java.lang.String[] args)
        Deprecated.
        Use PluginProcessor instead. To do so, simply include log4j-core in your dependencies and make sure annotation processing is not disabled. By default, supported Java compilers will automatically use that plugin processor provided log4j-core is on the classpath.
        Process annotated plugins.
      • addPackage

        public static void addPackage​(java.lang.String p)
        Adds a package name to be scanned for plugins. Must be invoked prior to plugins being collected.
        Parameters:
        p - The package name. Ignored if null or empty.
      • addPackages

        public static void addPackages​(java.util.Collection<java.lang.String> packages)
        Adds a list of package names to be scanned for plugins. Convenience method for addPackage(String).
        Parameters:
        packages - collection of package names to add. Empty and null package names are ignored.
      • getPluginType

        public PluginType<?> getPluginType​(java.lang.String name)
        Returns the type of a specified plugin.
        Parameters:
        name - The name of the plugin.
        Returns:
        The plugin's type.
      • getPlugins

        public java.util.Map<java.lang.String,​PluginType<?>> getPlugins()
        Returns all the matching plugins.
        Returns:
        A Map containing the name of the plugin and its type.
      • collectPlugins

        public void collectPlugins()
        Locates all the plugins.
      • collectPlugins

        public void collectPlugins​(java.util.List<java.lang.String> packages)
        Locates all the plugins including search of specific packages. Warns about name collisions.
        Parameters:
        packages - the list of packages to scan for plugins
        Since:
        2.1
      • mergeByName

        private static void mergeByName​(java.util.Map<java.lang.String,​PluginType<?>> newPlugins,
                                        java.util.List<PluginType<?>> plugins)