我有一个关于我的问题的例子。 (文件联合:https://drive.google.com/file/d/0B8ThLrV6-uchaFlTZTNGQ1FnT1E/view?usp=sharing)
我有3个ipojo组件(3个bunbles):
CallHello使用在HelloDelay或HelloComponentReplace中实现的DelayService服务
HelloDelay和HelloComponentReplace使用在HelloPrint中实现的HelloService服务。
在部署时,我部署了5个捆绑包:
service.hello.service.jar
printer.hello.printer.jar
delay.hello.delay.jar
replace.hello.replace.jar
call.hello.call.jar
结果:DelayService始终使用HelloDelay中的实现。
最后,我运行Main.java来控制HelloDelay和HelloComponentReplace之间的手动选择。
我在Main.java中实现了一个启动/停止或卸载/安装bundle的功能(它运行良好)。但是,HelloDelay或HelloComponentReplace都有效。
如果两者都有效且有效,我在iPOJO网站上阅读,我可以使用“比较器”。但我不明白如何应用'比较器'来控制上述两个组件之间的选择。这是改变优先权吗?我知道我们可以更改bundle的优先级但我不知道如何申请我的文件(Main.java)和iPOJO。
我们可以控制需求组件与许多提供组件(相同服务或接口)之间的连接(绑定)吗?
我希望你能在这个时候帮助我。
致以最诚挚的问候,
答案 0 :(得分:0)
使用拦截器,您可以隐藏服务和/或对服务提供商进行排序,以强制执行您要使用的提供程序。