iPOJO和组件iPOJO之间的连接



我有一个关于我的问题的例子。(文件接头:https://drive.google.com/file/d/0B8ThLrV6-uchaFlTZTNGQ1FnT1E/view?usp=sharing)

我有3个ipojo组件(3个bunbles):

  • CallHello使用DelayService服务,该服务在HelloDelay或HelloComponentReplace 中都实现

  • HelloDelay和HelloComponentReplace使用在HelloPrint中实现的HelloService服务。

在部署时,我部署了5个捆绑包:

  • service.hello.service.jar

  • printer.hello.inter.jar

  • delay.hello.delay.jar

  • replace.hello.replace.jar

  • 呼叫.hello.all.jar

结果:DelayService始终使用HelloDelay中的实现。

最后,我运行Main.java来手动控制HelloDelay和HelloComponentReplace之间的选择。

  • 我在Main.java中实现了一个启动/停止或卸载/安装捆绑包的功能(效果很好)。但是,HelloDelay或HelloComponentReplace都是有效的。

  • 如果两者都是有效的,我在iPOJO网站上阅读,我可以使用"比较器"。但我不明白如何应用"比较器"来控制上面两个组件之间的选择。这是为了改变优先级吗?我知道我们可以更改捆绑包的优先级,但我不知道如何应用于我的文件(Main.java)和iPOJO。

  • 我们能控制一个需要的组件和许多提供组件(相同的服务或接口)之间的连接(绑定)吗?

我希望你能在这段时间帮我解决困难。

致问候,

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

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

相关内容

  • 没有找到相关文章

最新更新