當我建立一個緩存系統,在我的OSGi應用程序在那裏我最初的想法是,確定當服務被註冊我想申請緩存來,我只是代理該服務,並與註冊代理非常高的服務排名。活力使用白羊座藍圖
這幾乎工程,這取決於其中爲了我的束開始。 如果消費者開始最後一切正常,並且如果我停止緩存捆綁,如果我重新啓動緩存束那麼消費者沒有得到服務的代理版的消費者fallbacking原來的執行但。
爲了舉一個簡單的例子來證明這一點,我做了一個簡單的捆綁包,它用一個更高級別的手工註冊一個知道的服務(即不創建代理等),問題依然存在,當更高級別的服務獲得開始消費者仍然使用排名較低的服務。
做藍本的活力只適用於某些情況下?
- 初始佈線 - >選擇排名最高的服務
- 當有線服務消失 - >選擇排名最高的服務
- 當一個新的服務出現 - >不做任何事
有沒有辦法在3:d情況下獲得1和2的行爲?
還是有更好的方式來完成我想要做什麼? IE瀏覽器。與HookEvent或類似?
感謝
編輯: 我通過代理註冊,這似乎是更新服務佈線後更新包用於解決這方面的問題。
Bundle[] usingBundles = reference.getUsingBundles();
for(.....)
{
b.update();
}