net.i2p.router.update
Class PluginUpdateRunner

java.lang.Object
  extended by java.lang.Thread
      extended by net.i2p.util.I2PThread
          extended by net.i2p.util.I2PAppThread
              extended by net.i2p.router.update.UpdateRunner
                  extended by net.i2p.router.update.PluginUpdateRunner
All Implemented Interfaces:
Runnable, UpdateTask, EepGet.StatusListener

 class PluginUpdateRunner
extends UpdateRunner

Check for an updated version of a plugin. A plugin is a standard .sud file with a 40-byte signature, a 16-byte version, and a .zip file. So we get the current version and update URL for the installed plugin, then fetch the first 56 bytes of the URL, extract the version, and compare. uri list must not be empty. Moved from web/ and turned into an UpdateTask.

Since:
0.9.4 moved from PluginUpdateHandler

Nested Class Summary
 
Nested classes/interfaces inherited from class net.i2p.util.I2PThread
I2PThread.OOMEventListener
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
static String PLUGIN_DIR
           
 
Fields inherited from class net.i2p.router.update.UpdateRunner
_baos, _context, _currentURI, _get, _isPartial, _isRunning, _log, _method, _mgr, _newVersion, _type, _updateFile, _urls, CONNECT_TIMEOUT, done, INACTIVITY_TIMEOUT, NOPROXY_INACTIVITY_TIMEOUT
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
PluginUpdateRunner(RouterContext ctx, ConsoleUpdateManager mgr, List<URI> uris, String appName, String oldVersion)
           
 
Method Summary
 String getID()
          Valid for plugins
 URI getURI()
          The current URI being checked or downloaded from.
 void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)
          subclasses should override
 void transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
          subclasses should override
protected  void update()
          Loop through the entire list of update URLs.
 
Methods inherited from class net.i2p.router.update.UpdateRunner
_, _, attemptFailed, attempting, bytesTransferred, getMethod, getType, headerReceived, isRunning, linkify, run, shutdown, toString, updateStatus
 
Methods inherited from class net.i2p.util.I2PAppThread
addOOMEventThreadListener, fireOOM, removeOOMEventThreadListener
 
Methods inherited from class net.i2p.util.I2PThread
addOOMEventListener, removeOOMEventListener, start
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.i2p.update.UpdateTask
start
 

Field Detail

PLUGIN_DIR

public static final String PLUGIN_DIR
See Also:
Constant Field Values
Constructor Detail

PluginUpdateRunner

public PluginUpdateRunner(RouterContext ctx,
                          ConsoleUpdateManager mgr,
                          List<URI> uris,
                          String appName,
                          String oldVersion)
Method Detail

getURI

public URI getURI()
Description copied from interface: UpdateTask
The current URI being checked or downloaded from. Can change if there are multiple URIs to try.

Specified by:
getURI in interface UpdateTask
Overrides:
getURI in class UpdateRunner

getID

public String getID()
Description copied from interface: UpdateTask
Valid for plugins

Specified by:
getID in interface UpdateTask
Overrides:
getID in class UpdateRunner

update

protected void update()
Description copied from class: UpdateRunner
Loop through the entire list of update URLs. For each one, first get the version from the first 56 bytes and see if it is newer than what we are running now. If it is, get the whole thing.

Overrides:
update in class UpdateRunner

transferComplete

public void transferComplete(long alreadyTransferred,
                             long bytesTransferred,
                             long bytesRemaining,
                             String url,
                             String outputFile,
                             boolean notModified)
Description copied from class: UpdateRunner
subclasses should override

Specified by:
transferComplete in interface EepGet.StatusListener
Overrides:
transferComplete in class UpdateRunner

transferFailed

public void transferFailed(String url,
                           long bytesTransferred,
                           long bytesRemaining,
                           int currentAttempt)
Description copied from class: UpdateRunner
subclasses should override

Specified by:
transferFailed in interface EepGet.StatusListener
Overrides:
transferFailed in class UpdateRunner