Update subsystems to use Equinox impl of org.osgi.service.resolver.Resolver
---------------------------------------------------------------------------
Key: ARIES-748
URL: https://issues.apache.org/jira/browse/ARIES-748
Project: Aries
Issue Type: New Feature
Components: Subsystem
Reporter: John Ross
Assignee: John Ross
The initial API and implementation of the Equinox org.osgi.service.resolver
(RFC 112) is available in the master branches of the rt.equinox.bundles and
rt.equinox.framework git repositories. I updated subsystems to make use of it.
Previously, a quick and dirty Resolver adaptor wrapped around the existing
Felix OBR implementation was used. Note the subsystems impl uses a registered
Resolver service, so making use of the Equinox resolver simply meant adding the
bundle to the itests project. When Felix releases their implementation of
org.osgi.service.resolver, the two will (hopefully) be interchangeable.
Using the Equinox resolver highlighted some shortcomings in the subsystems
implementation, which were fixed and are listed below.
(1) Updated subsystem-itests to bring in the Equinox resolver.
(2) Updated SubsystemEnvironment to return all capabilities that match a
requirement, even those from the root subsystem (i.e. from the system bundle
and any other already installed bundles). Previously, Felix OBR had been
automatically providing these via the Resolver adaptor since Felix OBR has a
built-in system repository. However, for the RFC 112 resolver, the expectation
is the Environment will provide everything.
(3) Fixed an issue where the resource -> subsystem relationship was not being
established for resources in the root subsystem causing an NPE.
(4) The FelixRequirementAdaptor must strip out the "mandatory:<*" clause from
the filter or InvalidSyntaxException occurs.
(5) OsgiIdentityRequirement now includes the filter directive.
(6) Added namespace translations to FelixResourceAdaptor.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira