Class PluginManager
- java.lang.Object
-
- org.apache.logging.log4j.core.config.plugins.util.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.private boolean
isNotEmpty(java.util.List<java.lang.String> list)
static void
main(java.lang.String[] args)
Deprecated.UsePluginProcessor
instead.private static void
mergeByName(java.util.Map<java.lang.String,PluginType<?>> newPlugins, java.util.List<PluginType<?>> plugins)
-
-
-
Field Detail
-
PACKAGES
private static final java.util.concurrent.CopyOnWriteArrayList<java.lang.String> PACKAGES
-
LOG4J_PACKAGES
private static final java.lang.String LOG4J_PACKAGES
- See Also:
- Constant Field Values
-
LOGGER
private static final Logger LOGGER
-
plugins
private java.util.Map<java.lang.String,PluginType<?>> plugins
-
category
private final java.lang.String category
-
-
Method Detail
-
main
@Deprecated public static void main(java.lang.String[] args)
Deprecated.UsePluginProcessor
instead. To do so, simply includelog4j-core
in your dependencies and make sure annotation processing is not disabled. By default, supported Java compilers will automatically use that plugin processor providedlog4j-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 ifnull
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 foraddPackage(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)
-
isNotEmpty
private boolean isNotEmpty(java.util.List<java.lang.String> list)
-
-