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
_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
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()
           
 void headerReceived(String url, int attemptNum, String key, String val)
          Overriden to get the last-modified header
 void run()
           
 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, getType, getURI, 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, 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
 

Constructor Detail

NewsFetcher

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

run

public void run()
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 TODO: SU3


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

headerReceived

public void headerReceived(String url,
                           int attemptNum,
                           String key,
                           String val)
Overriden to get the last-modified header

Specified by:
headerReceived in interface EepGet.StatusListener
Overrides:
headerReceived 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