## 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
`protected RouterContext` `_context`
`(package private) static String` `ENABLED`
`(package private) static String` `PREFIX`

Constructor Summary
`PluginStarter(RouterContext ctx)`

Method Summary
`(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)