net.i2p.router.web

## Class PluginStarter

- java.lang.Object
- - net.i2p.router.web.PluginStarter

- All Implemented Interfaces:
    Runnable
  Direct Known Subclasses:
    PluginStopper

      public class PluginStarter
      extends Object
      implements Runnable

  Start/stop/delete plugins that are already installed Get properties of installed plugins Get or change settings in plugins.config
  Since:
    0.7.12
  Author:
    zzz

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected RouterContext` | `_context`
    `(package private) static String` | `ENABLED`
    `(package private) static String` | `PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PluginStarter(RouterContext ctx)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static boolean` | `deletePlugin(RouterContext ctx, String appName)`
    `static Map<String,String>` | `getPluginKeys(I2PAppContext ctx)` The signing keys from all the plugins
    `static List<String>` | `getPlugins()` all installed plugins whether enabled or not
    `static boolean` | `isPluginRunning(String pluginName, RouterContext ctx)`
    `static Properties` | `pluginProperties()` plugins.config this auto-adds a propery for every dir in the plugin directory
    `static Properties` | `pluginProperties(I2PAppContext ctx, String appName)` plugin.config
    `(package private) static boolean` | `pluginsEnabled(I2PAppContext ctx)`
    `void` | `run()`
    `(package private) static boolean` | `startPlugin(RouterContext ctx, String appName)`
    `(package private) static void` | `startPlugins(RouterContext ctx)` this shouldn't throw anything
    `(package private) static boolean` | `stopPlugin(RouterContext ctx, String appName)`
    `static void` | `storePluginProperties(Properties props)` plugins.config

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _context

          protected RouterContext _context

    - #### PREFIX

          static final String PREFIX

      See Also:
        Constant Field Values

    - #### ENABLED

          static final String ENABLED

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PluginStarter

          public PluginStarter(RouterContext ctx)

  - ### Method Detail

    - #### pluginsEnabled

          static boolean pluginsEnabled(I2PAppContext ctx)

    - #### run

          public void run()

      Specified by:
        `run` in interface `Runnable`

    - #### startPlugins

          static void startPlugins(RouterContext ctx)

      this shouldn't throw anything

    - #### startPlugin

          static boolean startPlugin(RouterContext ctx,
                            String appName)
                              throws Exception

      Returns:
        true on success
      Throws:
        `just` - about anything, caller would be wise to catch Throwable
        `Exception`

    - #### stopPlugin

          static boolean stopPlugin(RouterContext ctx,
                           String appName)
                             throws Exception

      Returns:
        true on success
      Throws:
        `just` - about anything, caller would be wise to catch Throwable
        `Exception`

    - #### deletePlugin

          static boolean deletePlugin(RouterContext ctx,
                             String appName)
                               throws Exception

      Returns:
        true on success - caller should call stopPlugin() first
      Throws:
        `Exception`

    - #### pluginProperties

          public static Properties pluginProperties(I2PAppContext ctx,
                                    String appName)

      plugin.config

    - #### pluginProperties

          public static Properties pluginProperties()

      plugins.config this auto-adds a propery for every dir in the plugin directory

    - #### getPlugins

          public static List<String> getPlugins()

      all installed plugins whether enabled or not

    - #### getPluginKeys

          public static Map<String,String> getPluginKeys(I2PAppContext ctx)

      The signing keys from all the plugins
      Returns:
        Map of key to keyname Last one wins if a dup (installer should prevent dups)

    - #### storePluginProperties

          public static void storePluginProperties(Properties props)

      plugins.config

    - #### isPluginRunning

          public static boolean isPluginRunning(String pluginName,
                                RouterContext ctx)