net.i2p.router.update
Class NewsFetcher

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.NewsFetcher
All Implemented Interfaces:
Runnable, UpdateTask, EepGet.StatusListener

 class NewsFetcher
extends UpdateRunner

Task to fetch updates to the news.xml, and to keep track of whether that has an announcement for a new version.

Since:
0.9.4 moved from NewsFetcher and make an Updater

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
 
Fields inherited from class net.i2p.router.update.UpdateRunner
_context, _currentURI, _get, _isPartial, _isRunning, _log, _mgr, _newVersion, _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
NewsFetcher(RouterContext ctx, ConsoleUpdateManager mgr, List<URI> uris)
           
 
Method Summary
 void bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url)
          override to prevent status update
(package private)  void checkForUpdates()
          Parse the installed (not the temp) news file for the latest version.
 void fetchNews()
           
 UpdateType getType()
           
 void run()
          private void log(int level, String msg) { log(level, msg, null); } private void log(int level, String msg, Throwable t) { // we cant assume log is created if (_log == null) _log = new Log(I2PThread.class); if (_log.shouldLog(level)) _log.log(level, msg, t); }
 void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)
          Copies the file from temp dir to the news location, calls checkForUpdates()
 void transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
          override to prevent status update
 
Methods inherited from class net.i2p.router.update.UpdateRunner
_, _, attemptFailed, attempting, getID, getMethod, getURI, headerReceived, isRunning, linkify, shutdown, toString, update, updateStatus
 
Methods inherited from class net.i2p.util.I2PAppThread
addOOMEventThreadListener, fireOOM, removeOOMEventThreadListener
 
Methods inherited from class net.i2p.util.I2PThread
addOOMEventListener, removeOOMEventListener
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, 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, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.i2p.update.UpdateTask
start
 

Constructor Detail

NewsFetcher

public NewsFetcher(RouterContext ctx,
                   ConsoleUpdateManager mgr,
                   List<URI> uris)
Method Detail

getType

public UpdateType getType()
Specified by:
getType in interface UpdateTask
Overrides:
getType in class UpdateRunner

run

public void run()
Description copied from class: I2PThread
private void log(int level, String msg) { log(level, msg, null); } private void log(int level, String msg, Throwable t) { // we cant assume log is created if (_log == null) _log = new Log(I2PThread.class); if (_log.shouldLog(level)) _log.log(level, msg, t); }

Specified by:
run in interface Runnable
Overrides:
run in class UpdateRunner

fetchNews

public void fetchNews()

checkForUpdates

void checkForUpdates()
Parse the installed (not the temp) news file for the latest version. TODO: Real XML parsing TODO: Check minVersion, use backup URLs specified


bytesTransferred

public void bytesTransferred(long alreadyTransferred,
                             int currentWrite,
                             long bytesTransferred,
                             long bytesRemaining,
                             String url)
override to prevent status update

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

transferComplete

public void transferComplete(long alreadyTransferred,
                             long bytesTransferred,
                             long bytesRemaining,
                             String url,
                             String outputFile,
                             boolean notModified)
Copies the file from temp dir to the news location, calls checkForUpdates()

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

transferFailed

public void transferFailed(String url,
                           long bytesTransferred,
                           long bytesRemaining,
                           int currentAttempt)
override to prevent status update

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