是否可以使用iPOJO将服务绑定到多个消费者?

时间:2012-04-23 09:30:10

标签: osgi ipojo

在我的iPOJO应用程序中,我尝试将服务绑定到两个消费者:

消费者:

@Component(immediate = true)
@Instantiate(name = "com.example.consumerX")
@Provides
public class consumerX{
    @Requires(id="ms",optional=true)
    private MyService[] services;

    @Bind(id = "ms", aggregate = true, optional = true)
    public synchronized void register(MyService service) {
            System.out.println("service bind to consumer");
    }

    @Unbind(id = "ms")
    public synchronized void unregister(MyService service) {
            System.out.println("service unbind from consumer");
    }
}

服务:

@Component(immediate = true)
@Instantiate(name = "com.example.serviceX")
@Provides(specifications = { MyService.class, MyServiceX.class})
public class MyServiceX{
    ...
}

如果我启动consumerA,consumerB和serviceA,该服务仅绑定到consumerA。如果我启动consumerB和serviceA,该服务将绑定到consumerB。

是否可以让服务绑定到两个消费者?它有注释吗?

感谢。

1 个答案:

答案 0 :(得分:0)

几个消费者绝对可以使用某项服务。你的代码看起来很好,所以它应该工作。

您是否尝试使用'instances'命令检查当前状态(http://felix.apache.org/site/ipojo-arch-command.html)?