Class SinglePluginLoader

java.lang.Object
com.atlassian.plugin.loaders.SinglePluginLoader
All Implemented Interfaces:
PluginLoader

public class SinglePluginLoader extends Object implements PluginLoader
Loads a single plugin from the descriptor provided, which can either be an InputStream or a resource on the classpath. The classes used by the plugin must already be available on the classpath because this plugin loader does not load any classes.
See Also:
  • Field Details

  • Constructor Details

    • SinglePluginLoader

      public SinglePluginLoader(String resource)
    • SinglePluginLoader

      public SinglePluginLoader(URL url)
  • Method Details

    • loadAllPlugins

      public Iterable<Plugin> loadAllPlugins(ModuleDescriptorFactory moduleDescriptorFactory)
      Description copied from interface: PluginLoader
      Loads all plugins that can be installed in the plugin system.
      Specified by:
      loadAllPlugins in interface PluginLoader
      Parameters:
      moduleDescriptorFactory - the factory for module descriptors
      Returns:
      the list of found plugins, may be empty
    • supportsRemoval

      public boolean supportsRemoval()
      Specified by:
      supportsRemoval in interface PluginLoader
      Returns:
      true if this PluginLoader tracks whether or not plugins are removed from it.
    • supportsAddition

      public boolean supportsAddition()
      Specified by:
      supportsAddition in interface PluginLoader
      Returns:
      true if this PluginLoader tracks whether or not plugins are added to it.
    • loadFoundPlugins

      public Iterable<Plugin> loadFoundPlugins(ModuleDescriptorFactory moduleDescriptorFactory)
      Description copied from interface: PluginLoader
      Load all newly found plugins that can be installed in the plugin system. Only plugins not previously loaded will be added.
      Specified by:
      loadFoundPlugins in interface PluginLoader
      Parameters:
      moduleDescriptorFactory - the factory for module descriptors
      Returns:
      a list of newly discovered plugins since the last time plugins were loaded
    • removePlugin

      public void removePlugin(Plugin plugin)
      Description copied from interface: PluginLoader
      Remove a specific plugin
      Specified by:
      removePlugin in interface PluginLoader
    • isDynamicPluginLoader

      public boolean isDynamicPluginLoader()
      Specified by:
      isDynamicPluginLoader in interface PluginLoader
      Returns:
      true if this plugin loader can load plugins dynamically
    • createModule

      public ModuleDescriptor<?> createModule(Plugin plugin, Element module, ModuleDescriptorFactory moduleDescriptorFactory)
      Description copied from interface: PluginLoader
      If this loader is capable of loading a plugin of the type passed, attempt to create a module descriptor. Add that module descriptor to the plugin.

      If capable, always return a ModuleDescriptor, even if it indicates a failure case. Caller is responsible for handling exceptional ModuleDescriptor.

      Specified by:
      createModule in interface PluginLoader
      Parameters:
      plugin - that the module will be added to
      module - to create
      moduleDescriptorFactory - basic factory, may be overridden
      Returns:
      null if incapable of creating
    • loadPlugin

      protected Plugin loadPlugin(ModuleDescriptorFactory moduleDescriptorFactory)
    • getNewPlugin

      protected StaticPlugin getNewPlugin()
    • getSource

      protected InputStream getSource()