我有一个与iPOJO有关的问题,例如:
-
我定义并部署了一个组件a,它提供了一个"HelloService"服务(接口)。组件A的一个名为"instance_A"的实例
-
我还在a中定义了一个需要"HelloService"服务的组件B。B的实现声明了一个依赖项:
HelloService你好;
在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>
- 现在,我想要实现一个组件C来动态控制元数据中的更改(from="instance_a")到另一个(例如from="stance_D")
我该如何做(组件C)来更改这个"from"?
提前感谢
请参阅我关于在iPOJO中更新动态目标提供程序以动态更改依赖项过滤器的回答。
然而,在您的情况下,拦截器似乎会给您更多的控制权:http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/service-binding-interceptors.html
- 创建一个处理依赖关系的排名拦截器
- 当一个新的提供程序到达时,请按所需顺序对提供程序集进行排序。这将调整服务绑定