I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
  • zzz's avatar
    e62b76d2
    Big refactor of the router console update subsystem, in preparation for · e62b76d2
    zzz authored
    implementing out-of-console updaters like i2psnark.
    
    - Add new update interfaces in net.i2p.update
    - All update implementations moved to routerconsole update/
    - Implement an UpdateManager that registers with the RouterContext
    - UpdateManager handles multiple types of things to update
      (router, plugins, news, ...) and methods of updating (HTTP, ...)
    - UpdateManager maintains list of installed, downloaded, and available versions of everything
    - Define Updaters that can check for a new version and/or download an item
    - Individual Updaters register with the UpdateManager obtained from
      I2PAppContext, identifying the type of update item and
      update method they can handle.
    - Updaters need only core libs, no router.jar or routerconsole access required.
    - All checks and updates are initiated via the UpdateManager.
    - All status on checks and updates in-progress or completed are
      obtained from the UpdateManager. No more use of System properties
      to broadcast update state.
    - All update and checker tasks are intantiated on demand and threaded;
      no more static references left over.
    - Split out the Runners and Checkers from the Handlers and make the inheritance more sane.
    - No more permanent NewsFetcher thread; run on the SimpleScheduler queue
      and thread a checker task only to fetch the news.
    - No more static NewsFetcher instance in routerconsole.
      All helper methods that are still required are moved to NewsHelper.
    
    The UpdateManager implements the policy for when to check and download.
    All requests go through the UpdateManager.
    
    For each update type, there's several parts:
        - The xxxUpdateHandler implements the Updater
        - The xxxUpdateChecker implements the UpdateTask for checking
        - The xxxUpdateRunner implements the UpdateTask for downloading
    
    New and moved classes:
    
    web/				update/
    ----				-------
    new				ConsoleUpdateManager.java
    
    new				PluginUpdateChecker.java from PluginUpdateChecker
    PluginUpdateChecker 		-> PluginUpdateHandler.java
    PluginUpdateHandler.java	-> PluginUpdateRunner
    
    new				UnsignedUpdateHandler.java
    UnsignedUpdateHandler		->  UnsignedUpdateRunner.java
    new				UnsignedUpdateChecker from NewsFetcher
    
    UpdateHandler.java remains
    new				UpdateHandler.java
    new				UpdateRunner.java from UpdateHandler
    
    move				NewsHandler from NewsFetcher
    new				NewsFetcher
    new				NewsTimerTask
    
    new				DummyHandler
    
    
    Initial checkin. Unfinished, untested, unpolished.
    e62b76d2
    History
    Big refactor of the router console update subsystem, in preparation for
    zzz authored
    implementing out-of-console updaters like i2psnark.
    
    - Add new update interfaces in net.i2p.update
    - All update implementations moved to routerconsole update/
    - Implement an UpdateManager that registers with the RouterContext
    - UpdateManager handles multiple types of things to update
      (router, plugins, news, ...) and methods of updating (HTTP, ...)
    - UpdateManager maintains list of installed, downloaded, and available versions of everything
    - Define Updaters that can check for a new version and/or download an item
    - Individual Updaters register with the UpdateManager obtained from
      I2PAppContext, identifying the type of update item and
      update method they can handle.
    - Updaters need only core libs, no router.jar or routerconsole access required.
    - All checks and updates are initiated via the UpdateManager.
    - All status on checks and updates in-progress or completed are
      obtained from the UpdateManager. No more use of System properties
      to broadcast update state.
    - All update and checker tasks are intantiated on demand and threaded;
      no more static references left over.
    - Split out the Runners and Checkers from the Handlers and make the inheritance more sane.
    - No more permanent NewsFetcher thread; run on the SimpleScheduler queue
      and thread a checker task only to fetch the news.
    - No more static NewsFetcher instance in routerconsole.
      All helper methods that are still required are moved to NewsHelper.
    
    The UpdateManager implements the policy for when to check and download.
    All requests go through the UpdateManager.
    
    For each update type, there's several parts:
        - The xxxUpdateHandler implements the Updater
        - The xxxUpdateChecker implements the UpdateTask for checking
        - The xxxUpdateRunner implements the UpdateTask for downloading
    
    New and moved classes:
    
    web/				update/
    ----				-------
    new				ConsoleUpdateManager.java
    
    new				PluginUpdateChecker.java from PluginUpdateChecker
    PluginUpdateChecker 		-> PluginUpdateHandler.java
    PluginUpdateHandler.java	-> PluginUpdateRunner
    
    new				UnsignedUpdateHandler.java
    UnsignedUpdateHandler		->  UnsignedUpdateRunner.java
    new				UnsignedUpdateChecker from NewsFetcher
    
    UpdateHandler.java remains
    new				UpdateHandler.java
    new				UpdateRunner.java from UpdateHandler
    
    move				NewsHandler from NewsFetcher
    new				NewsFetcher
    new				NewsTimerTask
    
    new				DummyHandler
    
    
    Initial checkin. Unfinished, untested, unpolished.