Class BambooPluginManagerClusterAware

  • All Implemented Interfaces:
    com.atlassian.plugin.PluginAccessor, com.atlassian.plugin.PluginController, com.atlassian.plugin.PluginSystemLifecycle, com.atlassian.plugin.SplitStartupPluginSystemLifecycle

    public class BambooPluginManagerClusterAware
    extends BambooPluginManager
    Decorates BambooPluginManager with awareness of cluster environment.

    Main features: - Prevents concurrency problems via cluster locks - Manages situations where plugin events need to propagated in the cluster

    Since:
    9.5
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.atlassian.plugin.manager.DefaultPluginManager

        com.atlassian.plugin.manager.DefaultPluginManager.Builder<T extends com.atlassian.plugin.manager.DefaultPluginManager.Builder<?>>
      • Nested classes/interfaces inherited from interface com.atlassian.plugin.PluginAccessor

        com.atlassian.plugin.PluginAccessor.Descriptor
    • Constructor Summary

      Constructors 
      Constructor Description
      BambooPluginManagerClusterAware​(com.atlassian.plugin.manager.PluginPersistentStateStore pluginStateStore, SystemPluginLoaderConfiguration loaderConfiguration, List<com.atlassian.plugin.loaders.PluginLoader> extraPluginLoaders, com.atlassian.plugin.ModuleDescriptorFactory moduleDescriptorFactory, com.atlassian.plugin.event.PluginEventManager pluginEventManager, File pluginDirectory, com.atlassian.plugin.metadata.PluginMetadataManager pluginMetadataManager, @NotNull PluginClusterAwareEventListener pluginClusterAwareEventListener, @NotNull BambooClusterLockService bambooClusterLockService)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void disablePlugin​(String key)  
      void enablePlugins​(String... keys)  
      void init()  
      Set<String> installPlugins​(com.atlassian.plugin.PluginArtifact... pluginArtifacts)  
      void uninstall​(com.atlassian.plugin.Plugin plugin)  
      • Methods inherited from class com.atlassian.plugin.manager.DefaultPluginManager

        addDynamicModule, disablePluginInternal, disablePluginModule, disablePluginWithoutPersisting, earlyStartup, enablePluginModule, getClassLoader, getDynamicModules, getDynamicPluginClass, getDynamicResourceAsStream, getEnabledModuleDescriptorsByClass, getEnabledModulesByClass, getEnabledPlugin, getEnabledPluginModule, getEnabledPlugins, getLateStartupEnableRetryProperty, getMinimumPluginVersionsFileProperty, getModuleDescriptors, getModules, getPlugin, getPluginModule, getPluginRestartState, getPlugins, getStartupOverrideFileProperty, getState, isPluginEnabled, isPluginModuleEnabled, isSystemPlugin, lateStartup, newBuilder, notifyModuleDisabled, notifyModuleEnabled, notifyUninstallPlugin, onPluginContainerUnavailable, onPluginModuleAvailable, onPluginModuleUnavailable, onPluginRefresh, onUpdateRequiresRestartState, removeDynamicModule, removeStateFromStore, revertRestartRequiredChange, scanForNewPlugins, setPluginInstaller, shutdown, uninstallNoEvent, uninstallPlugins, unloadPlugin, updatePlugin, warmRestart
      • Methods inherited from interface com.atlassian.plugin.PluginAccessor

        getActiveModuleDescriptorsByClass, getClassLoader, getDynamicModules, getDynamicResourceAsStream, getEnabledModuleDescriptorsByClass, getEnabledModulesByClass, getEnabledPlugin, getEnabledPluginModule, getEnabledPlugins, getModuleDescriptors, getModuleDescriptors, getModules, getModules, getPlugin, getPluginModule, getPluginRestartState, getPlugins, getPlugins, isPluginEnabled, isPluginModuleEnabled, isSystemPlugin
      • Methods inherited from interface com.atlassian.plugin.PluginController

        addDynamicModule, addDynamicModule, disablePluginModule, disablePluginWithoutPersisting, enablePluginModule, removeDynamicModule, revertRestartRequiredChange, scanForNewPlugins, uninstallPlugins
      • Methods inherited from interface com.atlassian.plugin.PluginSystemLifecycle

        shutdown, warmRestart
    • Field Detail

      • PLUGIN_SYSTEM_LOCK_TIMEOUT_SECONDS

        public static final long PLUGIN_SYSTEM_LOCK_TIMEOUT_SECONDS
    • Constructor Detail

      • BambooPluginManagerClusterAware

        public BambooPluginManagerClusterAware​(com.atlassian.plugin.manager.PluginPersistentStateStore pluginStateStore,
                                               SystemPluginLoaderConfiguration loaderConfiguration,
                                               List<com.atlassian.plugin.loaders.PluginLoader> extraPluginLoaders,
                                               com.atlassian.plugin.ModuleDescriptorFactory moduleDescriptorFactory,
                                               com.atlassian.plugin.event.PluginEventManager pluginEventManager,
                                               File pluginDirectory,
                                               com.atlassian.plugin.metadata.PluginMetadataManager pluginMetadataManager,
                                               @NotNull
                                               @NotNull PluginClusterAwareEventListener pluginClusterAwareEventListener,
                                               @NotNull
                                               @NotNull BambooClusterLockService bambooClusterLockService)
    • Method Detail

      • init

        public void init()
        Specified by:
        init in interface com.atlassian.plugin.PluginSystemLifecycle
        Overrides:
        init in class com.atlassian.plugin.manager.DefaultPluginManager
      • installPlugins

        public Set<String> installPlugins​(com.atlassian.plugin.PluginArtifact... pluginArtifacts)
        Specified by:
        installPlugins in interface com.atlassian.plugin.PluginController
        Overrides:
        installPlugins in class com.atlassian.plugin.manager.DefaultPluginManager
      • uninstall

        public void uninstall​(com.atlassian.plugin.Plugin plugin)
        Specified by:
        uninstall in interface com.atlassian.plugin.PluginController
        Overrides:
        uninstall in class com.atlassian.plugin.manager.DefaultPluginManager
      • enablePlugins

        public void enablePlugins​(String... keys)
        Specified by:
        enablePlugins in interface com.atlassian.plugin.PluginController
        Overrides:
        enablePlugins in class com.atlassian.plugin.manager.DefaultPluginManager
      • disablePlugin

        public void disablePlugin​(String key)
        Specified by:
        disablePlugin in interface com.atlassian.plugin.PluginController
        Overrides:
        disablePlugin in class BambooPluginManager