Class PluginLoader
java.lang.Object
ai.nervemind.app.service.PluginLoader
Loads plugins from JAR files in the plugins directory.
Plugins are discovered using Java's ServiceLoader mechanism. Each plugin JAR must contain a META-INF/services file that lists the provider implementations.
Plugin developers should:
- Add dependency on nervemind-plugin-api
- Implement TriggerProvider or ActionProvider
- Create META-INF/services/ai.nervemind.plugin.api.TriggerProvider (or ActionProvider)
- Build a JAR and drop it in the plugins/ directory
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordInformation about a loaded plugin JAR. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcleanup()Cleans up plugin resources before shutdown.List<ai.nervemind.plugin.api.ActionProvider> Returns an unmodifiable list of all loaded action providers.Returns an unmodifiable list of information about loaded plugin JARs.List<ai.nervemind.plugin.api.PluginProvider> Returns an unmodifiable list of all loaded plugin providers.List<ai.nervemind.plugin.api.TriggerProvider> Returns an unmodifiable list of all loaded trigger providers.Returns the directory path where plugins are loaded from.voidInitializes the plugin loader after construction.booleanReturns whether plugin loading is enabled.voidLoad all plugins from the plugins directory.voidReload all plugins (useful for development).
-
Constructor Details
-
PluginLoader
public PluginLoader()Default constructor.
-
-
Method Details
-
initialize
@PostConstruct public void initialize()Initializes the plugin loader after construction. Loads all available plugins if plugin loading is enabled. -
cleanup
@PreDestroy public void cleanup()Cleans up plugin resources before shutdown. Calls destroy() on all loaded plugins and closes all plugin class loaders. -
loadAllPlugins
public void loadAllPlugins()Load all plugins from the plugins directory. -
reloadPlugins
public void reloadPlugins()Reload all plugins (useful for development). -
getLoadedPluginProviders
Returns an unmodifiable list of all loaded plugin providers.- Returns:
- list of loaded plugin providers
-
getLoadedTriggers
Returns an unmodifiable list of all loaded trigger providers.- Returns:
- list of loaded trigger providers
-
getLoadedActions
Returns an unmodifiable list of all loaded action providers.- Returns:
- list of loaded action providers
-
getLoadedPluginJars
Returns an unmodifiable list of information about loaded plugin JARs.- Returns:
- list of loaded plugin JAR information
-
isPluginsEnabled
public boolean isPluginsEnabled()Returns whether plugin loading is enabled.- Returns:
- true if plugins are enabled, false otherwise
-
getPluginsDirectory
Returns the directory path where plugins are loaded from.- Returns:
- the plugins directory path
-