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