0

我有一个与 iPOJO 相关的问题,例如:

  1. 我定义并部署了一个提供“HelloService”服务(接口)的组件 A。还有一个名为“instance_A”的组件A实例</p>

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

    你好服务你好;

在 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”)到另一个(例如 from =“instance_D”)

我该如何做(组件C)来改变这个“来自”?

提前致谢

4

1 回答 1

0

请参阅我关于在 iPOJO 中更新动态定位提供程序以动态更改依赖项过滤器的答案。

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

  1. 创建一个排名拦截器来处理你的依赖
  2. 当新的提供者到达时,按照您想要的顺序对提供者集进行排序。这适应了服务绑定。
于 2014-11-07T09:22:40.723 回答