Package com.atlassian.confluence.plugin
Class ConfluencePluginManager
- java.lang.Object
-
- com.atlassian.plugin.manager.DefaultPluginManager
-
- com.atlassian.confluence.plugin.ConfluencePluginManager
-
- All Implemented Interfaces:
com.atlassian.plugin.PluginAccessor
,com.atlassian.plugin.PluginController
,com.atlassian.plugin.PluginSystemLifecycle
,com.atlassian.plugin.SplitStartupPluginSystemLifecycle
,EventListener
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
,org.springframework.context.ApplicationListener
- Direct Known Subclasses:
SetupPluginManager
public class ConfluencePluginManager extends com.atlassian.plugin.manager.DefaultPluginManager implements org.springframework.context.ApplicationListener, org.springframework.context.ApplicationContextAware
Cluster safe extension ofDefaultPluginManager
which listens for plugin events fired on other nodes and guarantees that plugin state is consistent across nodes.
-
-
Constructor Summary
Constructors Constructor Description ConfluencePluginManager(com.atlassian.plugin.PluginRegistry.ReadWrite pluginRegistry, com.atlassian.plugin.PluginAccessor pluginAccessor, com.atlassian.plugin.manager.PluginPersistentStateStore pluginStateStore, List<Object> pluginLoaders, com.atlassian.plugin.ModuleDescriptorFactory moduleDescriptorFactory, com.atlassian.plugin.event.PluginEventManager pluginEventManager, List<String> tenantAwareOrAgnosticPlugins, com.atlassian.event.api.EventPublisher eventPublisher, com.atlassian.plugin.PluginInstaller pluginInstaller, com.atlassian.plugin.manager.SafeModeManager safeModeManager)
If you pass a String in the list of pluginLoaders, it will automagically be converted into a SinglePluginLoader for a file with that string's name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
earlyStartup()
void
init()
protected boolean
isSetupPluginManager()
Overridden inSetupPluginManager
to return {@link true}.void
lateStartup()
void
onApplicationEvent(org.springframework.context.ApplicationEvent event)
Initialised the plugin system on receipt of aDatabaseConfiguredEvent
and update local plugin state on clustered plugin eventsvoid
setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
-
Methods inherited from class com.atlassian.plugin.manager.DefaultPluginManager
addDynamicModule, addPlugins, disablePlugin, disablePluginInternal, disablePluginModule, disablePluginWithoutPersisting, enablePluginModule, enablePlugins, getClassLoader, getDynamicModules, getDynamicPluginClass, getDynamicResourceAsStream, getEnabledModuleDescriptorsByClass, getEnabledModulesByClass, getEnabledPlugin, getEnabledPluginModule, getEnabledPlugins, getLateStartupEnableRetryProperty, getMinimumPluginVersionsFileProperty, getModuleDescriptors, getModules, getPlugin, getPluginModule, getPluginRestartState, getPlugins, getPlugins, getStartupOverrideFileProperty, getState, installPlugins, isPluginEnabled, isPluginModuleEnabled, isSystemPlugin, newBuilder, notifyModuleDisabled, notifyModuleEnabled, notifyUninstallPlugin, onPluginContainerUnavailable, onPluginModuleAvailable, onPluginModuleUnavailable, onPluginRefresh, onUpdateRequiresRestartState, removeDynamicModule, removeStateFromStore, revertRestartRequiredChange, scanForNewPlugins, setPluginInstaller, shutdown, uninstall, uninstallNoEvent, uninstallPlugins, unloadPlugin, updatePlugin, warmRestart
-
-
-
-
Constructor Detail
-
ConfluencePluginManager
public ConfluencePluginManager(com.atlassian.plugin.PluginRegistry.ReadWrite pluginRegistry, com.atlassian.plugin.PluginAccessor pluginAccessor, com.atlassian.plugin.manager.PluginPersistentStateStore pluginStateStore, List<Object> pluginLoaders, com.atlassian.plugin.ModuleDescriptorFactory moduleDescriptorFactory, com.atlassian.plugin.event.PluginEventManager pluginEventManager, List<String> tenantAwareOrAgnosticPlugins, com.atlassian.event.api.EventPublisher eventPublisher, com.atlassian.plugin.PluginInstaller pluginInstaller, com.atlassian.plugin.manager.SafeModeManager safeModeManager)
If you pass a String in the list of pluginLoaders, it will automagically be converted into a SinglePluginLoader for a file with that string's name.- Parameters:
pluginRegistry
- a shared registry between PluginController and PluginAccessorpluginAccessor
- a plugin accessorpluginStateStore
- the storage for the plugin statepluginLoaders
- a list of plugin loaders to usemoduleDescriptorFactory
- a factory used to create the module descriptorspluginEventManager
- the event manager used for pluginstenantAwareOrAgnosticPlugins
- list of plugins which are tenant-less or are tenant-awareeventPublisher
- the system event publisherpluginInstaller
- used to persist user-installed plugins
-
-
Method Detail
-
init
public void init() throws com.atlassian.plugin.PluginParseException, com.atlassian.plugin.event.NotificationException
- Specified by:
init
in interfacecom.atlassian.plugin.PluginSystemLifecycle
- Overrides:
init
in classcom.atlassian.plugin.manager.DefaultPluginManager
- Throws:
com.atlassian.plugin.PluginParseException
com.atlassian.plugin.event.NotificationException
-
earlyStartup
public void earlyStartup() throws com.atlassian.plugin.PluginParseException, com.atlassian.plugin.event.NotificationException
- Specified by:
earlyStartup
in interfacecom.atlassian.plugin.SplitStartupPluginSystemLifecycle
- Overrides:
earlyStartup
in classcom.atlassian.plugin.manager.DefaultPluginManager
- Throws:
com.atlassian.plugin.PluginParseException
com.atlassian.plugin.event.NotificationException
-
lateStartup
public void lateStartup() throws com.atlassian.plugin.PluginParseException, com.atlassian.plugin.event.NotificationException
- Specified by:
lateStartup
in interfacecom.atlassian.plugin.SplitStartupPluginSystemLifecycle
- Overrides:
lateStartup
in classcom.atlassian.plugin.manager.DefaultPluginManager
- Throws:
com.atlassian.plugin.PluginParseException
com.atlassian.plugin.event.NotificationException
-
isSetupPluginManager
protected boolean isSetupPluginManager()
Overridden inSetupPluginManager
to return {@link true}.
-
onApplicationEvent
public final void onApplicationEvent(org.springframework.context.ApplicationEvent event)
Initialised the plugin system on receipt of aDatabaseConfiguredEvent
and update local plugin state on clustered plugin events- Specified by:
onApplicationEvent
in interfaceorg.springframework.context.ApplicationListener
- Parameters:
event
- the event being notified
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
- Specified by:
setApplicationContext
in interfaceorg.springframework.context.ApplicationContextAware
- Throws:
org.springframework.beans.BeansException
-
-