## net.i2p.router.web
Class PluginUpdateHandler

    java.lang.Object
      net.i2p.router.web.UpdateHandler
          net.i2p.router.web.PluginUpdateHandler

    public class PluginUpdateHandler

extends UpdateHandler

Download and install a plugin. A plugin is a standard .sud file with a 40-byte signature, a 16-byte version, and a .zip file. Unlike for router updates, we need not have the public key for the signature in advance. The zip file must have a standard directory layout, with a plugin.config file at the top level. The config file contains properties for the package name, version, signing public key, and other settings. The zip file will typically contain a webapps/ or lib/ dir, and a webapps.config and/or clients.config file.

Since:
  0.7.12
Author:
  zzz

Nested Class Summary
`class` `PluginUpdateHandler.PluginUpdateRunner`

Nested classes/interfaces inherited from class net.i2p.router.web.UpdateHandler
`UpdateHandler.UpdateRunner`

Field Summary
`static String` `PLUGIN_DIR`

Fields inherited from class net.i2p.router.web.UpdateHandler
`_context, _log, _updateFile, _updateRunner, PROP_LAST_UPDATE_TIME, PROP_UPDATE_IN_PROGRESS, SIGNED_UPDATE_FILE`

Method Summary
`String` `getAppStatus()`
`static PluginUpdateHandler` `getInstance(RouterContext ctx)`
`boolean` `isDone()`
`boolean` `isRunning()`
`void` `update(String xpi2pURL)`
`protected void` `updateStatus(String s)`

Methods inherited from class net.i2p.router.web.UpdateHandler
`_, _, getStatus, linkify, restart, setContextId, setUpdateAction, setUpdateNonce, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PLUGIN_DIR

    public static final String PLUGIN_DIR

See Also:
  Constant Field Values

Method Detail

### getInstance

    public static final PluginUpdateHandler getInstance(RouterContext ctx)

### update

    public void update(String xpi2pURL)

### getAppStatus

    public String getAppStatus()

### isRunning

    public boolean isRunning()

### isDone

    public boolean isDone()

  Overrides:
    `isDone` in class `UpdateHandler`

### updateStatus

    protected void updateStatus(String s)

  Overrides:
    `updateStatus` in class `UpdateHandler`