Class 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
  • Field Details

  • Constructor Details

  • Method Details

    • 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
      Parameters:
      alreadyTransferred - total of all attempts, not including currentWrite If nonzero on the first call, a partial file of that length was found, _and_ the server supports resume. If zero on a subsequent call after some bytes are transferred (and presumably after an attemptFailed), the server does _not_ support resume and we had to start over. To track _actual_ transfer if the output file could already exist, the listener should keep its own counter, or subtract the initial alreadyTransferred value. And watch out for alreadyTransferred resetting if a resume failed...
      currentWrite - since last call to the listener
      bytesTransferred - includes headers, retries, redirects, discarded partial downloads, ...
      bytesRemaining - on this attempt only, currentWrite already subtracted - or -1 if chunked encoding or server does not return a length
    • 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
      Parameters:
      outputFile - null if unknown (output stream constructor)
      See Also:
    • 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
      See Also: