Class DefaultPluginManager

java.lang.Object
com.atlassian.plugin.manager.DefaultPluginManager
All Implemented Interfaces:
PluginAccessor, PluginController, PluginSystemLifecycle, SplitStartupPluginSystemLifecycle

public class DefaultPluginManager extends Object implements PluginController, PluginAccessor, SplitStartupPluginSystemLifecycle
This implementation delegates the initiation and classloading of plugins to a list of PluginLoaders and records the state of plugins in a PluginPersistentStateStore.

This class is responsible for enabling and disabling plugins and plugin modules and reflecting these state changes in the PluginPersistentStateStore.

An interesting quirk in the design is that installPlugins(com.atlassian.plugin.PluginArtifact[]) explicitly stores the plugin via a PluginInstaller, whereas uninstall(Plugin) relies on the underlying PluginLoader to remove the plugin if necessary.