@demobox: It is both ok and required to also list the transitive dependencies. The goal of the feature xml is to list all runtime dependencies of that particular feature. The flag dependency = true is a good idea to be used when listing dependencies of that particular feature (but not the core artefacts).
Regarding your question about where/why its trying to find guava versions, the answer is that to start a bundle the framework tries to resolve requirements (e.g. check that a package in the given range is found). In case of failure the bundle that tries to import the missing package is listed. I can see you had errors with chef for example trying to import guava in the range 16 - 17. --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds-karaf/pull/43#issuecomment-40706708
