当我建立一个缓存系统,在我的OSGi应用程序在那里我最初的想法是,确定当服务被注册我想申请缓存来,我只是代理该服务,并与注册代理非常高的服务排名。活力使用白羊座蓝图
这几乎工程,这取决于其中为了我的束开始。 如果消费者开始最后一切正常,并且如果我停止缓存捆绑,如果我重新启动缓存束那么消费者没有得到服务的代理版的消费者fallbacking原来的执行但。
为了举一个简单的例子来证明这一点,我做了一个简单的捆绑包,它用一个更高级别的手工注册一个知道的服务(即不创建代理等),问题依然存在,当更高级别的服务获得开始消费者仍然使用排名较低的服务。
做蓝本的活力只适用于某些情况下?
- 初始布线 - >选择排名最高的服务
- 当有线服务消失 - >选择排名最高的服务
- 当一个新的服务出现 - >不做任何事
有没有办法在3:d情况下获得1和2的行为?
还是有更好的方式来完成我想要做什么? IE浏览器。与HookEvent或类似?
感谢
编辑: 我通过代理注册,这似乎是更新服务布线后更新包用于解决这方面的问题。
Bundle[] usingBundles = reference.getUsingBundles();
for(.....)
{
b.update();
}