Class PluginRegistry


  • public class PluginRegistry
    extends java.lang.Object
    Registry singleton for PluginType maps partitioned by source type and then by category names.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  PluginRegistry.PluginTest
      A Test that checks to see if each class is annotated with the 'Plugin' annotation.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static PluginRegistry INSTANCE  
      private static java.lang.Object INSTANCE_LOCK  
      private static Logger LOGGER  
      private java.util.concurrent.ConcurrentMap<java.lang.Long,​java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryByBundleId
      Contains plugins found in Log4j2Plugins.dat cache files in OSGi Bundles.
      private java.util.concurrent.ConcurrentMap<java.lang.String,​java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryByPackage
      Contains plugins found by searching for annotated classes at runtime.
      private java.util.concurrent.atomic.AtomicReference<java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryRef
      Contains plugins found in Log4j2Plugins.dat cache files in the main CLASSPATH.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private PluginRegistry()  
    • Field Detail

      • LOGGER

        private static final Logger LOGGER
      • INSTANCE_LOCK

        private static final java.lang.Object INSTANCE_LOCK
      • pluginsByCategoryRef

        private final java.util.concurrent.atomic.AtomicReference<java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryRef
        Contains plugins found in Log4j2Plugins.dat cache files in the main CLASSPATH.
      • pluginsByCategoryByBundleId

        private final java.util.concurrent.ConcurrentMap<java.lang.Long,​java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryByBundleId
        Contains plugins found in Log4j2Plugins.dat cache files in OSGi Bundles.
      • pluginsByCategoryByPackage

        private final java.util.concurrent.ConcurrentMap<java.lang.String,​java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> pluginsByCategoryByPackage
        Contains plugins found by searching for annotated classes at runtime.
    • Constructor Detail

      • PluginRegistry

        private PluginRegistry()
    • Method Detail

      • getInstance

        public static PluginRegistry getInstance()
        Returns the global PluginRegistry instance.
        Returns:
        the global PluginRegistry instance.
        Since:
        2.1
      • clear

        public void clear()
        Resets the registry to an empty state.
      • getPluginsByCategoryByBundleId

        public java.util.Map<java.lang.Long,​java.util.Map<java.lang.String,​java.util.List<PluginType<?>>>> getPluginsByCategoryByBundleId()
        Since:
        2.1
      • loadFromMainClassLoader

        public java.util.Map<java.lang.String,​java.util.List<PluginType<?>>> loadFromMainClassLoader()
        Since:
        2.1
      • clearBundlePlugins

        public void clearBundlePlugins​(long bundleId)
        Since:
        2.1
      • loadFromBundle

        public java.util.Map<java.lang.String,​java.util.List<PluginType<?>>> loadFromBundle​(long bundleId,
                                                                                                  java.lang.ClassLoader loader)
        Since:
        2.1
      • decodeCacheFiles

        private java.util.Map<java.lang.String,​java.util.List<PluginType<?>>> decodeCacheFiles​(java.lang.ClassLoader loader)
      • loadFromPackage

        public java.util.Map<java.lang.String,​java.util.List<PluginType<?>>> loadFromPackage​(java.lang.String pkg)
        Since:
        2.1