Somewhat weird, yes...
The OSGi spec is a little vague about the semantics of optional package
resolution. It just states that a framework is free to ignore this
dependency.
In my projects, I've also seen cases where a package imported with
resolution:=optional did not resolve, but everything worked fine after
removing the "optional" directive.
As a user, you would expect "optional" to mean "drop this if and only if
there is no other way to satisfy all dependencies", whereas the spec
seems to imply "the framework may drop this depencdency to make its life
easier (and the user's life harder)".
I'm not familiar with the internals of Pax Exam 1.x. From what I've seen
in Pax Exam 2.2.0, the problem should not occur, since the probes are
built with "DynamicImport-Package: *" by default. I've never seen any
optional resolutions.
Hope that helps,
Harald
Am 24.08.2011 16:18, schrieb Samuel Cox:
Hi,
I'm using Pax Exam1 in an attempt at testing OSGi services exposed in Fuse 4.3.
When I don't use TinyBundles, I get a NoClassDefFoundError with a
cause of ClassNotFoundException for a class representing my service
interface. When I examine the probe's Import-Package header, I see
that it has the package providing this service listed as optional.
I've also printed out all the bundles and the services they provide.
The bundle providing the service starts successfully and the service
is listed.
If I use TinyBundle to alter the probe's Import-Package header such
that the resolution:=optional is removed from the package providing
the service, I don't get the NoClassDefFoundError.
Does this seem weird?
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general