updateDownloadedandVerified
void updateDownloadedandVerified(UpdateType type,
int fileType,
String version,
File file)
throws IOException
Notify the post-processor that an update has been downloaded and verified.
The version will be higher than the currently-installed version.
This method MUST immediately postprocess, copy, or rename the file, which
will be located in the temporary directory.
Caller will delete the file if it remains, immediately after this method returns.
This method MUST throw an IOException on all errors. The IOException will be
displayed to the user in the console, so it should be clear.
This method must not trigger the shutdown itself.
Caller will trigger the shutdown if so configured.
If the post-processor needs to perform any actions at shutdown, it should
call I2PAppContext.addShutdownTask() or RouterContext.addFinalShutdownTask().
See javadocs for restrictions on final shutdown tasks.
Note that the router's temporary directory is deleted at shutdown,
BEFORE the final shutdown tasks are run.
After this call, the router will do a graceful shutdown if so configured,
or will notify the user in the console to manually shut down the router.
Therefore, the shutdown may happen immediately, or be delayed for 10 minutes,
or may be hours, days, or weeks later.
In rare cases, a newer update may be downloaded before the shutdown
for the first update, and this method may be called again with the newer version.
Implementers must take care to properly handle multiple calls.
- Parameters:
type
- only ROUTER_SIGNED_SU3 and ROUTER_DEV_SU3 are currently supported
fileType
- a TYPE_xxx file type code from the SU3File, 0-255
version
- the version string from the SU3File
file
- in the temp directory, as extracted from the validated su3 file
- Throws:
IOException
- on all errors, message will be displayed to the user