Package jetbrains.buildServer.plugins
Class PluginManagerImpl
- java.lang.Object
-
- jetbrains.buildServer.plugins.PluginManagerImpl
-
- All Implemented Interfaces:
PluginClassesLoader
,PluginInfoLoader
,PluginManager
public class PluginManagerImpl extends Object implements PluginManager
Created by IntelliJ IDEA. User: Eugene.Petrenko Date: 16.04.2008 Time: 20:38:03
-
-
Constructor Summary
Constructors Constructor Description PluginManagerImpl(StandaloneClassloaderFactory standaloneClassloaderFactory, SharedClassloaderFactory sharedClassloaderFactory, PluginVersionComparator versionComparator, PluginFileSystemLookup lookup, PluginDisabledInfoProvider pluginDisabledInfoProvider, PluginsStateProviderImpl pluginsStateProvider, ReloadablePlugins reloadablePlugins)
-
Method Summary
-
-
-
Constructor Detail
-
PluginManagerImpl
public PluginManagerImpl(@NotNull StandaloneClassloaderFactory standaloneClassloaderFactory, @NotNull SharedClassloaderFactory sharedClassloaderFactory, @NotNull PluginVersionComparator versionComparator, @NotNull PluginFileSystemLookup lookup, @NotNull PluginDisabledInfoProvider pluginDisabledInfoProvider, @NotNull PluginsStateProviderImpl pluginsStateProvider, @NotNull ReloadablePlugins reloadablePlugins)
-
-
Method Detail
-
getPluginLifecycleEventDispatcher
public EventDispatcher<PluginManagerListener> getPluginLifecycleEventDispatcher()
- Specified by:
getPluginLifecycleEventDispatcher
in interfacePluginManager
- Returns:
- PluginLifecycleListener events dispatcher. Could not exist in the spring context.
-
loadPlugin
public void loadPlugin(@NotNull PluginInfo pluginInfo) throws LoadPluginException
Description copied from interface:PluginManager
Tries to load a plugin in runtime- Specified by:
loadPlugin
in interfacePluginManager
- Throws:
LoadPluginException
- if load is impossible (plugin is not reloadable) or exception occurred during loadAlreadyLoadedPluginException
- if the plugin is already loaded
-
unloadPlugin
public List<PluginInfo> unloadPlugin(@NotNull PluginInfo pluginInfo) throws UnloadPluginException
Description copied from interface:PluginManager
Tries to unload a plugin in runtime. Also unloads dependent plugins if any- Specified by:
unloadPlugin
in interfacePluginManager
- Parameters:
pluginInfo
- plugin to be unloaded- Returns:
- list of unloaded plugins (including dependent on current). The list is topo-sorted (dependent plugins placed before dependency in the list)
- Throws:
UnloadPluginException
- if unload is impossible (plugin is not reloadable) or exception occurred during unloadPluginNotLoadedException
- if the plugin is not loaded
-
setLookup
public void setLookup(@NotNull PluginFileSystemLookup lookup)
-
getLookup
@NotNull public PluginFileSystemLookup getLookup()
-
addPluginInfoLoadedListener
public void addPluginInfoLoadedListener(@NotNull PluginInfoLoadedListener listener)
- Specified by:
addPluginInfoLoadedListener
in interfacePluginInfoLoader
-
addPluginClassesLoadedListener
public void addPluginClassesLoadedListener(@NotNull PluginClassesLoadedListener listener)
- Specified by:
addPluginClassesLoadedListener
in interfacePluginClassesLoader
-
loadPlugins
public void loadPlugins(Collection<PluginInfo> pluginsToLoad)
Description copied from interface:PluginManager
load specified collection of plugins. The same as invocationPluginManager.loadPlugin(PluginInfo)
for each plugin in topological order.- Specified by:
loadPlugins
in interfacePluginManager
-
loadPlugins
public void loadPlugins(Collection<PluginInfo> pluginsToLoad, Function<LoadPluginException,Boolean> shouldStop)
Description copied from interface:PluginManager
The same asPluginManager.loadPlugins(Collection)
but allows to stop loading plugins if exception occurs- Specified by:
loadPlugins
in interfacePluginManager
-
loadPlugins
public void loadPlugins()
Description copied from interface:PluginManager
Scan plugins folders for plugins. Plugin is detected by registeredPluginFileSystemLookup
implementations. If plugin with same name is found again, it will override the first occurrence of the plugin. Warning message will be shown no that case. Plugins with names specified in .BuildServer/config/disabled_plugins.txt are treated as disabled and ignored- Specified by:
loadPlugins
in interfacePluginManager
-
doLoadPluginsCollection
protected void doLoadPluginsCollection(PluginsCollection plugins)
-
getDetectedPlugins
@NotNull public Collection<PluginInfo> getDetectedPlugins()
Description copied from interface:PluginManager
Enumerates all loaded plugins. This function may return empty collection if called while plugins are loading.- Specified by:
getDetectedPlugins
in interfacePluginManager
- Returns:
- collection of loaded plugin infos
-
getNotLoadedPlugins
@NotNull public Collection<NotLoadedPlugin> getNotLoadedPlugins()
Description copied from interface:PluginManager
Enumerates plugins that were not loaded. This function may return empty collection if called while plugins are loading.- Specified by:
getNotLoadedPlugins
in interfacePluginManager
-
isBundled
public static boolean isBundled(@NotNull PluginData plugin)
-
-