iPOJO和组件ipojo之间的连接

时间:2014-11-05 14:10:35

标签: java ipojo

我有一个关于我的问题的例子。 (文件联合: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。

  • 我们可以控制需求组件与许多提供组件(相同服务或接口)之间的连接(绑定)吗?

我希望你能在这个时候帮助我。

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

您可以使用拦截器操纵服务绑定:http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/service-binding-interceptors.html

使用拦截器,您可以隐藏服务和/或对服务提供商进行排序,以强制执行您要使用的提供程序。