Resolution errors while upgrading feature

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Resolution errors while upgrading feature

Hari Madhavan

We have an OSGI application running on karaf , which requires an automatic upgrade of features and we are currently on Karaf-4.0.5. The application is packaged as 17 features. 

All the features are defined in the repository with "LATEST"  keyword - so that upgrades are automatically pulled down.

We have a script that is invoked periodically which does the upgrade by invoking 

feature:install -v -u <feature 1>, <feature 2> , .... <feature 17>

and that fails with an error - 4.0.5 | Exception caught while executing command  org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=ABCD_Service; type=karaf.feature; version="[1.5.2,1.5.2]"; f 

Here 1.5.2 is the current version of the feature which is being replaced by a higher version in the upgrade 

We have tried various combinations

1. When we install  the features one after the other - it fails for one of the other upgraded features  
2. When we install all the features ( including the non-upgraded features ) - it fails while upgrading the first feature in the list that is to be upgraded
3. When we provide the actual list of features which have been upgraded, it upgrades successfully - this is however not easy for us to script. 

The other observation is that the system automatically downloads the new feature version to the repository at which time the old version seems to have been uninstalled ( because the pending to upgrade features are not shown in feature:list -i  ) . Is that why the resolution for the older version of feature fails ? Also not able explain why it works fine when we give the list of changed features in the install command.

We are totally blocked on this issue at this point. Any suggestions, feedback on approach welcome.