Hi guys,

Currently, we have to distinguish features and features repositories.

For features repositories, you have refresh-url (or add-url again) that reload a features XML descriptor.

The update of a feature is more tricky. Now, the update is features uninstall/install. The point is that features update is not so simple, especially about transitive features. If it would be so simple, features update would exist since a long time.
I remember a lot of discussions with Guillaume about features update.

Basically, we can provide feature:update as an alias to feature:uninstall/features:install (it's a first step).

A largely more complex logic should be implemented if we want to talk about "real" features update.

Regards
JB

On 05/12/2013 06:13 PM, Christian Schneider wrote:
Currently there is no such update functionality in karaf. The list of
commands you supplied is the current best practice when updating features.

What I could imagine is a command like.

feature:update <repo-name> <new-version>

It should update all currently installed features from the repo to the
new version.

As long as the new feature repo has all the features that are currently
installed such a command should be doable. Some problems arise for
special cases:
- Like the new feature has changed feature dependencies that require
other feature updates
- Some features are deleted or added that are needed
- Config files have changed in an incompatible way.

I think these things are the reason why it has not been implemented. We
could try to implement the simple case first of course. I think it would
be a good thing for 3.1.

Christian

Am 12.05.2013 12:52, schrieb Frank Lyaruu:
Hello people of Karaf,

I'm looking for a way to update Karaf features in my application.

We have an application, of about 140 bundles, spread over about 10
Karaf features, currently on Karaf 3.0.0 RC1.

For example, when I release a new bundle version, I'd like to update
our servers to use that new version, with a minimum of downtime. What
I do now, is:
1) Release the bundle to a Maven repository
2) Update the features.xml file, update the feature version and deploy
it to Maven (with a new version number)
3) Uninstall the feature from the servers
4) Remove the old mvn: feature repo from the server instance
5) Add the new mvn: feature repo to the server instance
6) Install the new feature

Mind you, this works fine, but it seems more complicated than
necessary, and it 'creates more waves' in the application as the whole
feature has to be uninstalled first.

Is there a way to 'update' a repo (determine the features that have
been updated, and for each feature determine the bundles that have
changed, and update just those)

Is anything like this possible? Or a completely different way to do
this? If not, and you think this makes sense, I'm willing to help out
if someone can point me in the right direction.

regards, Frank



--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to