至少需要一个实现?

时间:2015-12-01 18:08:49

标签: java osgi

我如何在osgi中至少要求一个api接口的实现?

例如,我有一个使用另一个组件的@Component YellowBlock(在这种情况下为Map):

@Component
public class YellowBlock implements BlockProvider {
@Reference
public void setMap(Map map){

当没有其他组件实现Map接口时,我的osgi容器中的这个组件永远不会“上线”(ServiceTracker无法看到)。例如这一个:

@Component
public class MapImpl implements Map{

如果我手动将这个添加到容器中,则YellowBlock组件“上线”。

[edit]我的基数似乎是正确的:基数=“1..1”。我还发现了一些关于@reference注释超时的讨论,但在那个上找不到多少。

1 个答案:

答案 0 :(得分:2)

问题回答了自己。

您问“我怎么才能要求至少一个特定API接口的实现”,然后您的示例代码就是这样。