Java 为什么bnd figures my bundle需要可选服务(*,0..n,ReferenceCardinality.MULTIPLE)?

Java 为什么bnd figures my bundle需要可选服务(*,0..n,ReferenceCardinality.MULTIPLE)?,java,osgi,bnd,bndtools,Java,Osgi,Bnd,Bndtools,我的包定义了一个接口和一个组件,该组件使用该接口实现将它们全部回调(如果有的话…) 一个很好的类比是LogService;如果存在一个(或多个),则使用消息调用它们 这是我的DS声明: @Reference(cardinality= ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC, service = ITestResultsParserService.class) public vo

我的包定义了一个接口和一个组件,该组件使用该接口实现将它们全部回调(如果有的话…)

一个很好的类比是LogService;如果存在一个(或多个),则使用消息调用它们

这是我的DS声明:

@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);
}
因此,我希望我的捆绑包能够在有或没有该服务实现的情况下进行部署

然而,以下是日食带给我的:

为什么??这根本不是要求!这显然是可选的

我发现它似乎在谈论这个问题,但不清楚为什么它被关闭了。我将此添加到我的bnd.bnd中,如票据中所述:

-果断有效:积极主动;跳过:=“osgi.service”


因为这是一个已经修复的bug,而不是一个可能有答案的问题,所以我将结束它。

从图中可以看出,osgi.service需求是有效的:=活动的,这正是我所期望的。另外,如果您认为您在bnd中发现了一个bug,为什么不在上打开一个问题以便进行调查?我同意这可能是一个bug。我没有打开一个bug,因为我引用的罚单是为了准确解释我的问题,并且已经关闭了。我想我只是没有很好地理解这个解决方案。另外,我还要开一个重复的问题?再说一遍:这不是那个问题的复制品,尽管我同意这是令人困惑的相似。这实际上是一个bnd错误,所以我提出了以下问题:哇,已经有一个拉请求了!这就是我所说的良好支持!非常感谢