The problem is that your example needs an implementation of the dto support but you installed the api bundle instead which is not suitable for runtime.

On 20.09.2016 13:45, t...@quarendon.net wrote:
I'm really struggling to get my bundles installed in Karaf, so I'd appreciate
some hints on how to diagnose some issues. I'm trying to do a feature:install of
a features.xml file I've written to install my bundles.
My latest is:

missing requirement osgi.wiring.package;
filter:="(&(osgi.wiring.package=osgi.enroute.dto.api)(version>=1.0.0)(!(version>=2.0.0)))"
[caused by: Unable to resolve osgi.enroute.base.api [62](R 62.0): missing
requirement [osgi.enroute.base.api [62](R 62.0)] osgi.unresolvable;
(&(must.not.resolve=*)(!(must.not.resolve=*)))]]]
The last part (&(must.not.resolve=*)(!(must.not.resolve=*)) is a special trick the new api bundles use to make sure they can not be installed. You should only use the base api at compile time. For deployment use the bundle with the dto implementation. I am not sure which bundle this is but the enroute experts can tell you this. Btw. The same is true for the OSGi spec bundles (core, compendium and enterprise).

Christian
My interpretation of this is that I've got conflicting versions of something. I
have no idea what, nor to figure out what the cause is.

Up to now I've always just been using bndtools in eclipse (and the bundles I'm
installing all work fine there), my first experience of Karaf was yesterday, so
beyond what I've read in the docs, I know nothing about what useful commands
there might be to help me diagnose. I don't even know how I would list what I've
currently got installed that might satisfy osgi.enroute.dto.api or
osgi.enroute.base.api.

Any hints would be much appreciated.
This seems to be extraordinarily more complicated that "resolve" in bndtools, or
am I being naive?

Thanks.


--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to