[
https://issues.apache.org/jira/browse/ARIES-1328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14564578#comment-14564578
]
David Bosschaert commented on ARIES-1328:
-----------------------------------------
Hmm, yes of course. I didn't add this metadata, and should have.
So I tried two things.
1. Add the following metadata to the SUBSYSTEM.MF:
{{Require-Capability:
osgi.service;filter:="(objectClass=org.coderthoughts.pizza.api.Pizza)";effective:="active"}}
(see application-subsystem-nosvc-rc.esa) this has no effect. I was expecting
this to cause the service to be imported.
2. Add the same requirement to the use-bundle.jar that's inside the subsystem
application-subsystem-nosvc-ubrc.esa.
{{Require-Capability:
osgi.service;filter:="(objectClass=org.coderthoughts.pizza.api.Pizza)";effective:=active}}
This causes the subsystem not to resolve. I find this strange because the
effective directive is set to active. If I add a bundle that provide the
capability literally by having the {{Provide-Capability: osgi.service;...}} the
auto-importing does work.
So I think there are two bugs:
a. Require-Capability osgi.service on the application .esa level seems to be
ignored. This could be used to auto-import services.
b. Require-Capability osgi.service on bundles inside the application .esa is
not resolved with effective:=active but seems to be resolved with
effective:=resolve.
> Application subsystem does not import services
> ----------------------------------------------
>
> Key: ARIES-1328
> URL: https://issues.apache.org/jira/browse/ARIES-1328
> Project: Aries
> Issue Type: Bug
> Components: Subsystem
> Affects Versions: subsystem-core-1.2.0
> Reporter: David Bosschaert
> Attachments: api-bundle-1.0.0-SNAPSHOT.jar,
> application-subsystem-nosvc-1.0.0-SNAPSHOT.esa,
> application-subsystem-nosvc-rc.esa, application-subsystem-nosvc-ubrc.esa,
> svc-bundle2-1.0.0-SNAPSHOT.jar, use-bundle-1.0.0-SNAPSHOT.jar
>
>
> I have an application Subsystem that has a bundle that looks for a service
> via a service tracker.
> This service and its API is provided by pre-existing bundles (api-bundle,
> svc-bundle2) in the parent subsystem.
> The OSGi enterprise R5 spec states in 134.16.1 (Application Subsystems):
> "Any required capabilities that are not satisfied by the application's
> constituents are automatically shared in (imported) from the parent
> Subsystem."
> However when I install and start the application subsystem
> (application-subsystem-nosvc), it does not find the services provided in the
> parent.
> I'm attaching the bundles and subsystem to reproduce. The full source code
> can be found here: https://github.com/coderthoughts/subsystem-examples
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)