Package hudson
Interface PluginStrategy
- All Superinterfaces:
ExtensionPoint
- All Known Implementing Classes:
ClassicPluginStrategy
Pluggability point for how to create
PluginWrapper.
This extension point was added to allow plugins to be loaded into a different environment
(such as loading it in an existing DI container like Plexus.) A plugin strategy is a singleton
instance, and as such this feature is primarily meant for OEM.
See PluginManager.createPluginStrategy() for how this instance is created.
-
Nested Class Summary
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson -
Method Summary
Modifier and TypeMethodDescriptioncreatePluginWrapper(File archive) Creates a plugin wrapper, which provides a management interface for the plugin<T> List<ExtensionComponent<T>> findComponents(Class<T> type, Hudson hudson) Find components of the given type using the assigned strategy.getShortName(File archive) Finds the plugin name without actually unpacking anythingcreatePluginWrapper(java.io.File)would.voidinitializeComponents(PluginWrapper plugin) Optionally start services provided by the plugin.voidload(PluginWrapper wrapper) Loads the plugin and starts it.default voidupdateDependency(PluginWrapper depender, PluginWrapper dependee) Called when a plugin is installed, but there was already a plugin installed which optionally depended on that plugin.
-
Method Details
-
createPluginWrapper
Creates a plugin wrapper, which provides a management interface for the plugin- Parameters:
archive- Either a directory that points to a pre-exploded plugin, or an jpi file, or an jpl file.- Throws:
IOException
-
getShortName
Finds the plugin name without actually unpacking anythingcreatePluginWrapper(java.io.File)would. Needed byPluginManager.dynamicLoad(java.io.File)to decide whether such a plugin is already installed.- Returns:
- the
PluginWrapper.getShortName() - Throws:
IOException
-
load
Loads the plugin and starts it.This should be done after all the classloaders are constructed for all the plugins, so that dependencies can be properly loaded by plugins.
- Throws:
IOException
-
initializeComponents
Optionally start services provided by the plugin. Should be called when all plugins are loaded. -
findComponents
Find components of the given type using the assigned strategy.- Parameters:
type- The component typehudson- The Hudson scope- Returns:
- Sequence of components
- Since:
- 1.400
-
updateDependency
Called when a plugin is installed, but there was already a plugin installed which optionally depended on that plugin. The class loader of the existing depending plugin should be updated to load classes from the newly installed plugin.- Parameters:
depender- plugin depending on dependee.dependee- newly loaded plugin.- Since:
- 1.557
-