动态变化"来自"在iPOJO元数据中

时间:2014-11-06 08:05:52

标签: java ipojo

我遇到了与iPOJO有关的问题,例如:

  1. 我定义并部署了一个提供“HelloService”服务(接口)的组件A.并且组件A的实例名为“instance_A”

  2. 我在A中定义了一个需要“HelloService”服务的组件B.B的实现声明了一个依赖:

      

    HelloService hello;

  3. 在metadata.xml中,我声明:

    <ipojo>
         <component classname="B_class" name="B" immediate="true">
         <requires field=" hello" from="instance_A">
         </requires>
         </component>
         <instance component="B" name="call"/>
    </ipojo>
    
    1. 现在,我希望实现一个组件C来动态控制元数据中的更改(从=“instance_A”)到另一个(例如来自=“instance_D”)
    2. 我怎么做(组件C)来改变这个“来自”?

      提前致谢

1 个答案:

答案 0 :(得分:0)

请参阅update dynamically targeting provider in iPOJO上的答案,动态更改依赖关系过滤器。

但是在你的情况下,拦截器似乎会给你更多的控制权: http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/service-binding-interceptors.html

  1. 创建处理依赖关系的排名拦截器
  2. 当新提供商到达时,按所需顺序对提供商集进行排序。这适应了服务绑定。