Package org.pf4j
Interface PluginManager
-
- All Known Implementing Classes:
AbstractPluginManager
,DefaultPluginManager
,JarPluginManager
,ZipPluginManager
public interface PluginManager
Provides the functionality for plugin management such as load, start and stop the plugins.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
addPluginStateListener(PluginStateListener listener)
boolean
deletePlugin(java.lang.String pluginId)
Deletes a plugin.boolean
disablePlugin(java.lang.String pluginId)
Disables a plugin from being loaded.boolean
enablePlugin(java.lang.String pluginId)
Enables a plugin that has previously been disabled.<T> java.util.List<java.lang.Class<? extends T>>
getExtensionClasses(java.lang.Class<T> type)
<T> java.util.List<java.lang.Class<? extends T>>
getExtensionClasses(java.lang.Class<T> type, java.lang.String pluginId)
java.util.List<java.lang.Class<?>>
getExtensionClasses(java.lang.String pluginId)
java.util.Set<java.lang.String>
getExtensionClassNames(java.lang.String pluginId)
ExtensionFactory
getExtensionFactory()
<T> java.util.List<T>
getExtensions(java.lang.Class<T> type)
<T> java.util.List<T>
getExtensions(java.lang.Class<T> type, java.lang.String pluginId)
java.util.List
getExtensions(java.lang.String pluginId)
PluginWrapper
getPlugin(java.lang.String pluginId)
Retrieves the plugin with this id, or null if the plugin does not exist.java.lang.ClassLoader
getPluginClassLoader(java.lang.String pluginId)
java.util.List<PluginWrapper>
getPlugins()
Retrieves all plugins.java.util.List<PluginWrapper>
getPlugins(PluginState pluginState)
Retrieves all plugins with this state.java.nio.file.Path
getPluginsRoot()
Gets the path of the folder where plugins are installed.java.util.List<PluginWrapper>
getResolvedPlugins()
Retrieves all resolved plugins (with resolved dependency).RuntimeMode
getRuntimeMode()
The runtime mode.java.util.List<PluginWrapper>
getStartedPlugins()
Retrieves all started plugins.java.lang.String
getSystemVersion()
Returns the system version.java.util.List<PluginWrapper>
getUnresolvedPlugins()
Retrieves all unresolved plugins (with unresolved dependency).VersionManager
getVersionManager()
default boolean
isDevelopment()
Returnstrue
if the runtime mode isRuntimeMode.DEVELOPMENT
.default boolean
isNotDevelopment()
Returnstrue
if the runtime mode is notRuntimeMode.DEVELOPMENT
.java.lang.String
loadPlugin(java.nio.file.Path pluginPath)
Load a plugin.void
loadPlugins()
Load plugins.void
removePluginStateListener(PluginStateListener listener)
void
setSystemVersion(java.lang.String version)
Set the system version.PluginState
startPlugin(java.lang.String pluginId)
Start the specified plugin and its dependencies.void
startPlugins()
Start all active plugins.PluginState
stopPlugin(java.lang.String pluginId)
Stop the specified plugin and its dependencies.void
stopPlugins()
Stop all active plugins.boolean
unloadPlugin(java.lang.String pluginId)
Unload a plugin.PluginWrapper
whichPlugin(java.lang.Class<?> clazz)
Retrieves thePluginWrapper
that loaded the given class 'clazz'.
-
-
-
Method Detail
-
getPlugins
java.util.List<PluginWrapper> getPlugins()
Retrieves all plugins.
-
getPlugins
java.util.List<PluginWrapper> getPlugins(PluginState pluginState)
Retrieves all plugins with this state.
-
getResolvedPlugins
java.util.List<PluginWrapper> getResolvedPlugins()
Retrieves all resolved plugins (with resolved dependency).
-
getUnresolvedPlugins
java.util.List<PluginWrapper> getUnresolvedPlugins()
Retrieves all unresolved plugins (with unresolved dependency).
-
getStartedPlugins
java.util.List<PluginWrapper> getStartedPlugins()
Retrieves all started plugins.
-
getPlugin
PluginWrapper getPlugin(java.lang.String pluginId)
Retrieves the plugin with this id, or null if the plugin does not exist.- Parameters:
pluginId
- the unique plugin identifier, specified in its metadata- Returns:
- A PluginWrapper object for this plugin, or null if it does not exist.
-
loadPlugins
void loadPlugins()
Load plugins.
-
loadPlugin
java.lang.String loadPlugin(java.nio.file.Path pluginPath)
Load a plugin.- Parameters:
pluginPath
- the plugin location- Returns:
- the pluginId of the installed plugin as specified in its metadata
- Throws:
PluginRuntimeException
- if something goes wrong
-
startPlugins
void startPlugins()
Start all active plugins.
-
startPlugin
PluginState startPlugin(java.lang.String pluginId)
Start the specified plugin and its dependencies.- Returns:
- the plugin state
- Throws:
PluginRuntimeException
- if something goes wrong
-
stopPlugins
void stopPlugins()
Stop all active plugins.
-
stopPlugin
PluginState stopPlugin(java.lang.String pluginId)
Stop the specified plugin and its dependencies.- Returns:
- the plugin state
- Throws:
PluginRuntimeException
- if something goes wrong
-
unloadPlugin
boolean unloadPlugin(java.lang.String pluginId)
Unload a plugin.- Parameters:
pluginId
- the unique plugin identifier, specified in its metadata- Returns:
- true if the plugin was unloaded
- Throws:
PluginRuntimeException
- if something goes wrong
-
disablePlugin
boolean disablePlugin(java.lang.String pluginId)
Disables a plugin from being loaded.- Parameters:
pluginId
- the unique plugin identifier, specified in its metadata- Returns:
- true if plugin is disabled
- Throws:
PluginRuntimeException
- if something goes wrong
-
enablePlugin
boolean enablePlugin(java.lang.String pluginId)
Enables a plugin that has previously been disabled.- Parameters:
pluginId
- the unique plugin identifier, specified in its metadata- Returns:
- true if plugin is enabled
- Throws:
PluginRuntimeException
- if something goes wrong
-
deletePlugin
boolean deletePlugin(java.lang.String pluginId)
Deletes a plugin.- Parameters:
pluginId
- the unique plugin identifier, specified in its metadata- Returns:
- true if the plugin was deleted
- Throws:
PluginRuntimeException
- if something goes wrong
-
getPluginClassLoader
java.lang.ClassLoader getPluginClassLoader(java.lang.String pluginId)
-
getExtensionClasses
java.util.List<java.lang.Class<?>> getExtensionClasses(java.lang.String pluginId)
-
getExtensionClasses
<T> java.util.List<java.lang.Class<? extends T>> getExtensionClasses(java.lang.Class<T> type)
-
getExtensionClasses
<T> java.util.List<java.lang.Class<? extends T>> getExtensionClasses(java.lang.Class<T> type, java.lang.String pluginId)
-
getExtensions
<T> java.util.List<T> getExtensions(java.lang.Class<T> type)
-
getExtensions
<T> java.util.List<T> getExtensions(java.lang.Class<T> type, java.lang.String pluginId)
-
getExtensions
java.util.List getExtensions(java.lang.String pluginId)
-
getExtensionClassNames
java.util.Set<java.lang.String> getExtensionClassNames(java.lang.String pluginId)
-
getExtensionFactory
ExtensionFactory getExtensionFactory()
-
getRuntimeMode
RuntimeMode getRuntimeMode()
The runtime mode. Must currently be either DEVELOPMENT or DEPLOYMENT.
-
isDevelopment
default boolean isDevelopment()
Returnstrue
if the runtime mode isRuntimeMode.DEVELOPMENT
.
-
isNotDevelopment
default boolean isNotDevelopment()
Returnstrue
if the runtime mode is notRuntimeMode.DEVELOPMENT
.
-
whichPlugin
PluginWrapper whichPlugin(java.lang.Class<?> clazz)
Retrieves thePluginWrapper
that loaded the given class 'clazz'.
-
addPluginStateListener
void addPluginStateListener(PluginStateListener listener)
-
removePluginStateListener
void removePluginStateListener(PluginStateListener listener)
-
setSystemVersion
void setSystemVersion(java.lang.String version)
Set the system version. This is used to compare against the plugin requires attribute. The default system version is 0.0.0 which disables all version checking.- Parameters:
version
-
-
getSystemVersion
java.lang.String getSystemVersion()
Returns the system version.- Returns:
- the system version
-
getPluginsRoot
java.nio.file.Path getPluginsRoot()
Gets the path of the folder where plugins are installed.- Returns:
- Path of plugins root
-
getVersionManager
VersionManager getVersionManager()
-
-