Interface PluginManager


public interface PluginManager
Manages plugins loaded on the proxy. This manager can retrieve PluginContainers from plugin instances and inject arbitrary JAR files into the plugin classpath with addToClasspath(Object, Path).
  • Method Details

    • fromInstance

      Optional<PluginContainer> fromInstance(Object instance)
      Gets the plugin container from an instance.
      Parameters:
      instance - the instance
      Returns:
      the container
    • getPlugin

      Retrieves a PluginContainer based on its ID.
      Parameters:
      id - the plugin ID
      Returns:
      the plugin, if available
    • getPlugins

      Gets a Collection of all PluginContainers.
      Returns:
      the plugins
    • isLoaded

      boolean isLoaded(String id)
      Checks if a plugin is loaded based on its ID.
      Parameters:
      id - the id of the plugin
      Returns:
      true if loaded
    • addToClasspath

      void addToClasspath(Object plugin, Path path)
      Adds the specified path to the plugin classpath.
      Parameters:
      plugin - the plugin
      path - the path to the JAR you want to inject into the classpath
      Throws:
      UnsupportedOperationException - if the operation is not applicable to this plugin
    • ensurePluginContainer

      default PluginContainer ensurePluginContainer(Object plugin)
      Ensures a plugin container exists for the given plugin.
      Parameters:
      plugin - the instance to look up the container for
      Returns:
      container for the plugin