Project: talendesb
Issue TESB-4998: Runtime Update PoC
In a first feature we investigated what the specific problems we encounter with update management in an OSGi environment and what the possible solutions are. This feature goes one step further where its goal is to make a PoC to provide a rudimentary update framework. It is assumed that the new version does not override the old one but is installed beside the old one. So the goal of the updte framework is to take over user defined features / bundles / configurations and TESB Runtime configuration that was changed by the user, e.g port. Also it can be assumed that all user defined artifacts are still accessible and can be retrieved to be installed in the new container. Normallythey will reside in Archiva or some other Maven repository. Basic idea is to have one component in the old container which retrieves a list of all feature repositories together with the url from which they were installed, and the list of all installed features. From these two lists the repositories and features that natively come with TESB runtime are removed. Another component in the new container is then responsible to take the list and make all feature repositories known in the container and to install all the features specified in the list. For the configuration we either copy the whole ./etc directory from the old container to the new one and set the properties new for the current version via config admin or retrieve via config admin a list of all properties of the old container and apply it to the new conatiner. Make sure there is no conflict with configuration set when the usser defined features are installed. Important is to validate the approach is feasable not to automate everything and to have a polished tooling.
Story points: 5