我还有一个与iPOJO中的动态更新有关的问题:
1.问题:
//
@Component(name="C", immediate=true)
@Instantiate
public class C_impl {
@Requires
A_Service service;
}//
2.要求:
问题:
如何开发一个独立的组件来重新配置(控制)组件实现?我读过(http://felix.apache.org/site/dive-into-the-ipojo-manipulation-depths.html),但我不太明白。谢谢您的答复
发布于 2014-11-11 10:40:49
您想要更改组件的组件类吗?这是行不通的。
唯一的方法是在没有实例的情况下声明两个实现(no @instantiate),并创建一个需要两个工厂(org.apache.felix.ipojo.Factory服务)的组件,并在需要时创建实例。显然,如果需要替换,在创建第二个实例时还需要释放第一个创建的实例。
因此,它需要这样的组件(这是伪代码):
@Component(immediate=true)
@Instantiate
public class Controller {
@Requires(filter="(factory.name=A)")
Factory factoryOfA;
@Requires(filter="(factory.name=B)")
Factory factoryOfB;
ComponentInstance instance;
@Validate
public void createA() throws Exception {
instance = factoryOfA.createInstance(null);
}
public void switchToB() throws Exception {
instance.dispose();
instance = factoryOfB.createInstance(null);
}
}https://stackoverflow.com/questions/26844739
复制相似问题