My bundle defines an interface, and a component that uses this interface implementations to call them all back (if some exists...).
A good analogy is the LogService; if one (or more) exists, calls them with the message.
Here's my DS declaration:
@Reference(cardinality= ReferenceCardinality.MULTIPLE,
policy = ReferencePolicy.DYNAMIC,
service = ITestResultsParserService.class)
public void bindTestResultsParser(ITestResultsParserService parser) {
testResultsParserServices.add(parser);
}
public void unbindTestResultsParser(ITestResultsParserService parser) {
testResultsParserServices.remove(parser);
}
So i expect that my bundle is able to deploy with or without that services implementations.
However, here's what eclipses gives me:
Why? This isn't a requirement at all! It's clearly optional.
I found this ticket which seems to talk about this issue, but its not clear why it's been closed. I added this to my bnd.bnd, as stated in the ticket:
-resolve.effective: active;skip:="osgi.service"