我有一个带有“可选”组件的软件包:如果存在一个类型X的服务,则应该启动它,并且当最后一个服务未注册时停用。
此组件是“可选的”:X是否已注册,或者我的组件是否已激活无关紧要。它只是管理X实例的助手。
我的组件声明如下:
@Component
public class MyManager {
@Reference(cardinality=AT_LEAST_ONE)
public void addService(X service) { .. }
}
但是,bnd为至少一个服务X生成Require-Capability
。
我如何告诉bnd我的组件是可选的,所有依赖项都是可选项?我可以改变我的组件的实现来“手动”添加lazynes,但我宁愿使用DS功能。