We should be able to access the history of the extension jobs that have been executed (install, uninstall, etc.), along with the decisions that have been made during their execution. This will allow us to replay the extension history (partially or entirely) on a different wiki or even of the same wiki.
An extension history record could store:
- the job type
- the request used when the job was executed (this includes the list of extensions, the namespaces, the user, etc.)
- the decisions made during the execution (i.e. the answers given to the questions raised by an interactive job)
- the start/end date of the job execution
The extension history can be saved in multiple XML files (using XStream) in the permanent directory (extension/history/*).
The history can be recorded with an event listener (for JobFinishedEvent) but the decisions/answers will require dedicated components (ideally, the extension job itself shouldn't be aware that it is being recorded).