Hello. We have a system of features to manage the provisioning of our applications. Some low level features only reference resource management or other common Karaf and Camel features. Other intermediate features provide some bundles that expose services, and rely on low level features. And then come about 100 features that provide Camel routes contexts.
Each feature at a given level declares a dependency with "prerequisite" on lower level features. Our tools deploy this system with an inventory of the features repositories, using commands like "feature:repo-add -i XXX". To update them we use "feature:repo-remove -u XXX" to remove the old version before installing the newest. When we uninstall features in the reverse order, starting with the high level features, all works as expected. But if we try to uninstall an intermediate feature, for example, karaf refuses to execute the command, since it finds dependent higher level features. It's logical... So, is there any way to force the uninstall/remove such a way that our tools could clean all the deployed features in any random order, with no special knowledge of logical dependencies. Something like a transaction on DBMS that may lead to intermediate inconsistent states, but finally is committed with a correct consistent result... Thanks for your help. Regards.
