Update resp. Dependency manager

Yanel should be able to update itself.

For this there is a resource-type "update" which provides a update-manager. this update-manager would read the install.rdf of yanel and get the update-link from it. the update-link points to a update.rdf located on the update-server [proposal1] where the updates are located.

the update.rdf describes the updates (version, compatibility, the link where to get the particular update). the update-manager compares the current version with the version provided by the update.rdf and displays all the version which the current yanel could update to.

the user can choose which version she wants to update to. the update-manager then does a backup of the current yanel [problem1] downloads the war of the update version, merges the changes in the config files [problem2] (which are listed in the install.rdf) into the downloaded update and deploys it. if the user is not happy with the updated version she could revert the update. the update-manager would deploy the backup again.

problems:
  • [problem1] to backup the current version yanel should block all request while backuping tp prevent inconsistency
  • [problem2] to allow a merge of the config all config files should be xml rather than property files
  • if the update would fail and break yanel, the update-manager would not be available anymore to manage the revert. maybe the update-manager should stay in a seperate servlet.
  • if the update-manager should handle every servlet container complexity will increase. maybe we should limit it to tomcat which comes with the binary version.
proposals:
  • [proposal1] to provide the updates resp. update.rdf  there should be a realm which contents the updates. this realm would not be included within yanel.