net.i2p.update
Interface UpdateManager

All Known Implementing Classes:
ConsoleUpdateManager

public interface UpdateManager

The central resource coordinating updates. This must be registered with the context. The UpdateManager starts and stops all updates, and controls notification to the user.

Since:
0.9.4

Field Summary
static String APP_NAME
          The name we register with the ClientAppManager
 
Method Summary
 String checkAvailable(UpdateType type)
          Is an update available? Blocking.
 String checkAvailable(UpdateType type, long maxWait)
          Is an update available? Blocking.
 String checkAvailable(UpdateType type, String id, long maxWait)
          Is an update available? Blocking.
 String getStatus()
          The status on any update current or last finished.
 boolean isUpdateInProgress()
          Is a router update being downloaded?
 boolean isUpdateInProgress(UpdateType type)
          Is a router update being downloaded?
 boolean isUpdateInProgress(UpdateType type, String id)
          Is a router update being downloaded?
 void notifyAttemptFailed(UpdateTask task, String reason, Throwable t)
          Not necessarily the end if there are more URIs to try.
 void notifyCheckComplete(UpdateTask task, boolean newer, boolean success)
          Called by the Checker after check() was called and all notifyVersionAvailable() callbacks are finished
 boolean notifyComplete(UpdateTask task, String actualVersion, File file)
          An update has been downloaded but not verified.
 void notifyProgress(UpdateTask task, String status)
           
 void notifyProgress(UpdateTask task, String status, long downloaded, long totalSize)
           
 void notifyTaskFailed(UpdateTask task, String reason, Throwable t)
          The task has finished and failed.
 boolean notifyVersionAvailable(UpdateTask task, URI newsSource, UpdateType type, String id, Map<UpdateMethod,List<URI>> sourceMap, String newVersion, String minVersion)
          Called by the Checker, either after check() was called, or it found out on its own.
 boolean notifyVersionAvailable(UpdateTask task, URI newsSource, UpdateType type, String id, UpdateMethod method, List<URI> updateSources, String newVersion, String minVersion)
          Called by the Checker, either after check() was called, or it found out on its own.
 void notifyVersionConstraint(UpdateTask task, URI newsSource, UpdateType type, String id, String newVersion, String message)
          A new version is available but cannot be downloaded or installed due to some constraint.
 void register(Checker checker, UpdateType type, UpdateMethod method, int priority)
           
 void register(Updater updater, UpdateType type, UpdateMethod method, int priority)
          Call once for each type/method pair.
 void renderStatusHTML(Writer out)
          For debugging
 void shutdown()
           
 void start()
           
 void unregister(Checker checker, UpdateType type, UpdateMethod method)
           
 void unregister(Updater updater, UpdateType type, UpdateMethod method)
           
 boolean update(UpdateType type)
          Non-blocking.
 boolean update(UpdateType type, long maxTime)
          Non-blocking.
 boolean update(UpdateType type, String id)
          Non-blocking.
 boolean update(UpdateType type, String id, long maxTime)
          Non-blocking.
 

Field Detail

APP_NAME

static final String APP_NAME
The name we register with the ClientAppManager

Since:
0.9.12
See Also:
Constant Field Values
Method Detail

register

void register(Updater updater,
              UpdateType type,
              UpdateMethod method,
              int priority)
Call once for each type/method pair.


register

void register(Checker checker,
              UpdateType type,
              UpdateMethod method,
              int priority)

unregister

void unregister(Updater updater,
                UpdateType type,
                UpdateMethod method)

unregister

void unregister(Checker checker,
                UpdateType type,
                UpdateMethod method)

start

void start()

shutdown

void shutdown()

notifyVersionAvailable

boolean notifyVersionAvailable(UpdateTask task,
                               URI newsSource,
                               UpdateType type,
                               String id,
                               UpdateMethod method,
                               List<URI> updateSources,
                               String newVersion,
                               String minVersion)
Called by the Checker, either after check() was called, or it found out on its own. Use this if there is only one UpdateMethod; otherwise use the Map method below.

Parameters:
newsSource - who told us
id - plugin name for plugins, ignored otherwise
method - How to get the new version
updateSources - Where to get the new version
newVersion - The new version available
minVersion - The minimum installed version to be able to update to newVersion
Returns:
true if we didn't know already

notifyVersionAvailable

boolean notifyVersionAvailable(UpdateTask task,
                               URI newsSource,
                               UpdateType type,
                               String id,
                               Map<UpdateMethod,List<URI>> sourceMap,
                               String newVersion,
                               String minVersion)
Called by the Checker, either after check() was called, or it found out on its own. Checkers must use this method if there are multiple UpdateMethods discoverd simultaneously.

Parameters:
newsSource - who told us
id - plugin name for plugins, ignored otherwise
sourceMap - Mapping of methods to sources
newVersion - The new version available
minVersion - The minimum installed version to be able to update to newVersion
Returns:
true if we didn't know already
Since:
0.9.6

notifyVersionConstraint

void notifyVersionConstraint(UpdateTask task,
                             URI newsSource,
                             UpdateType type,
                             String id,
                             String newVersion,
                             String message)
A new version is available but cannot be downloaded or installed due to some constraint. The manager should notify the user. Called by the Checker, either after check() was called, or it found out on its own.

Parameters:
newsSource - who told us
id - plugin name for plugins, ignored otherwise
newVersion - The new version available
message - A translated message to be displayed to the user, non-null
Since:
0.9.9

notifyCheckComplete

void notifyCheckComplete(UpdateTask task,
                         boolean newer,
                         boolean success)
Called by the Checker after check() was called and all notifyVersionAvailable() callbacks are finished

Parameters:
newer - notifyVersionAvailable was called
success - check succeeded (newer or not)

notifyProgress

void notifyProgress(UpdateTask task,
                    String status)

notifyProgress

void notifyProgress(UpdateTask task,
                    String status,
                    long downloaded,
                    long totalSize)

notifyAttemptFailed

void notifyAttemptFailed(UpdateTask task,
                         String reason,
                         Throwable t)
Not necessarily the end if there are more URIs to try.

Parameters:
t - may be null

notifyTaskFailed

void notifyTaskFailed(UpdateTask task,
                      String reason,
                      Throwable t)
The task has finished and failed.

Parameters:
t - may be null

notifyComplete

boolean notifyComplete(UpdateTask task,
                       String actualVersion,
                       File file)
An update has been downloaded but not verified. The manager will verify it. Caller should delete the file upon return, unless it will share it with others, e.g. on a torrent.

Parameters:
actualVersion - may be higher (or lower?) than the version requested
file - a valid format for the task's UpdateType
Returns:
true if valid, false if corrupt

checkAvailable

String checkAvailable(UpdateType type)
Is an update available? Blocking. An available update may still have a constraint or lack sources.

Parameters:
type - the UpdateType of this request
Returns:
new version or null if nothing newer is available
Since:
0.9.21

checkAvailable

String checkAvailable(UpdateType type,
                      long maxWait)
Is an update available? Blocking. An available update may still have a constraint or lack sources.

Parameters:
type - the UpdateType of this request
maxWait - max time to block
Returns:
new version or null if nothing newer is available
Since:
0.9.21

checkAvailable

String checkAvailable(UpdateType type,
                      String id,
                      long maxWait)
Is an update available? Blocking. An available update may still have a constraint or lack sources.

Parameters:
type - the UpdateType of this request
maxWait - max time to block
id - id of this request
Returns:
new version or null if nothing newer is available
Since:
0.9.21

isUpdateInProgress

boolean isUpdateInProgress()
Is a router update being downloaded?

Returns:
true iff router update is being downloaded
Since:
0.9.21

isUpdateInProgress

boolean isUpdateInProgress(UpdateType type)
Is a router update being downloaded?

Parameters:
type - the UpdateType of this request
Returns:
true iff router update is being downloaded
Since:
0.9.21

isUpdateInProgress

boolean isUpdateInProgress(UpdateType type,
                           String id)
Is a router update being downloaded?

Parameters:
type - the UpdateType of this request
id - of this request
Returns:
true iff router update is being downloaded
Since:
0.9.21

update

boolean update(UpdateType type)
Non-blocking. Does not check. Fails if check or update already in progress. If returns true, then call isUpdateInProgress() in a loop

Parameters:
type - the UpdateType of this request
Returns:
true if task started
Since:
0.9.21

update

boolean update(UpdateType type,
               String id)
Non-blocking. Does not check. Fails if check or update already in progress. If returns true, then call isUpdateInProgress() in a loop

Parameters:
type - the UpdateType of this request
id - id of this request
Returns:
true if task started
Since:
0.9.21

update

boolean update(UpdateType type,
               long maxTime)
Non-blocking. Does not check. Fails if check or update already in progress. If returns true, then call isUpdateInProgress() in a loop

Parameters:
type - the UpdateType of this request
maxTime - not honored by all Updaters
Returns:
true if task started
Since:
0.9.21

update

boolean update(UpdateType type,
               String id,
               long maxTime)
Non-blocking. Does not check. Fails if check or update already in progress. If returns true, then call isUpdateInProgress() in a loop

Parameters:
type - the UpdateType of this request
maxTime - not honored by all Updaters
id - id of this request
Returns:
true if task started
Since:
0.9.21

getStatus

String getStatus()
The status on any update current or last finished.

Returns:
status or ""
Since:
0.9.21

renderStatusHTML

void renderStatusHTML(Writer out)
                      throws IOException
For debugging

Throws:
IOException