OSGi capabilitie are a way (probably the most abstract way) to define what a bundles provide or requires. It's similar to Import/Export-Package, except that a capbility can be anything, not necessarily a package, nor a class, nor anything "concrete". See http://wiki.osgi.org/wiki/Provide-Capability and http://wiki.osgi.org/wiki/Require-Capability . Those capabilites are used by OSGi runtime to wire a "Require-Capability" to a matching "Provide-Capability", so it's expressing a dependency.
p2 misses support for OSGi capabilities, leading to inaccurate dependency resolution:
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=313553
- https://dev.eclipse.org/mhonarc/lists/p2-dev/msg05422.html
For JBoss Tools, this forces use to some hacks in order to support Jetty websocket 9.2.13. Indeed, Jetty websocket 9.2.13 requires Apache Aries SPI-Fly via a capability. p2 seems to resolve jetty without trouble, but since the capability is ignored, the jetty bundles actually fail to load at runtime (see JBIDE-20670 ).
We have to set up a workaround which is that whenever we declare a dependency on jetty websockets, we also have to declaire a dependency on Aries SPI-Fly.
- is related to
-
JBIDE-20670 LiveReload, BrowserSim and CordovaSim broken after TP changes (Jetty)
- Closed
- links to