Package 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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description 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 finishedboolean
notifyComplete(UpdateTask task, String actualVersion, File file)
An update has been downloaded but not verified.void
notifyInstalled(UpdateType type, String id, String version)
Tell the UpdateManager that a version is already installed.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(UpdatePostProcessor upp, UpdateType type, int fileType)
Register a post-processor for this UpdateType and SU3File file type.void
register(Updater updater, UpdateType type, UpdateMethod method, int priority)
Call once for each type/method pair.void
renderStatusHTML(Writer out)
For debuggingvoid
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)
-
register
void register(UpdatePostProcessor upp, UpdateType type, int fileType)
Register a post-processor for this UpdateType and SU3File file type.- Parameters:
type
- only ROUTER_SIGNED_SU3 and ROUTER_DEV_SU3 are currently supportedfileType
- a SU3File TYPE_xxx constant, 1-255, TYPE_ZIP not supported.- Since:
- 0.9.51
-
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 usid
- plugin name for plugins, ignored otherwisemethod
- How to get the new versionupdateSources
- Where to get the new versionnewVersion
- The new version availableminVersion
- 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 usid
- plugin name for plugins, ignored otherwisesourceMap
- Mapping of methods to sourcesnewVersion
- The new version availableminVersion
- 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 usid
- plugin name for plugins, ignored otherwisenewVersion
- The new version availablemessage
- 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 calledsuccess
- 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 requestedfile
- 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 requestmaxWait
- 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 requestmaxWait
- max time to blockid
- 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 requestid
- 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 requestid
- 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 requestmaxTime
- 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 requestmaxTime
- not honored by all Updatersid
- 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
-
notifyInstalled
void notifyInstalled(UpdateType type, String id, String version)
Tell the UpdateManager that a version is already installed.- Parameters:
id
- subtype for plugins, or ""version
- null to remove from installed- Since:
- 0.9.45
-
renderStatusHTML
void renderStatusHTML(Writer out) throws IOException
For debugging- Throws:
IOException
-
-