Currently, if one has multiple features depending on each other, where the same features or bundles are referenced twice or more, Karaf will attempt to resolve/install them as many times as they are traversed.
feature a, contains:
feature b, contains:
feature all, contains:
When one installs feature "all", Karaf will end up resolving/attempting to install camel-core multiple times as it hits it via transitive dependencies (via a, via camel-jetty, via camel-http, etc.).
As a result, an unnecessary delay is experienced and this could be optimised to perform a two-phase feature installation procedure instead:
- calculate the install plan (kind of like building an effective POM in Maven) and prune duplicates
- perform the install plan