2016-04-12 114 views
0

我想知道是否有可能創建從一種激活方法到另一種激活方法的回退? 比方說,我有一個通過聲明服務激活的包,但SCR沒有安裝在有問題的應用程序服務器上。是否有可能同時使用聲明式服務和Blueprint激活器,並決定加載順序? 例如:我是否可以創建一個包並指定它應該由SCR加載(如果可用)以及藍圖(如果SCR未安裝)?OSGi激活方法回退

+0

然後,如果Blueprint未安裝,該怎麼辦? –

+0

要麼尋找激活或放棄? :) –

+2

所以,如果你是關心安裝一個更多的包(SCR),那麼只需寫一個'BundleActivator'。但這是一個奇怪的問題。 –

回答

3

如果您想使用SCR功能,並且您的套件安裝在沒有SCR的應用服務器上,那麼最簡單的答案就是安裝SCR。它是一個單獨的小包,它與你所依賴的軟件包等同。

如果你真的不能安裝SCR或依靠SCR已經可用,那麼你需要編寫一個BundleActivator。這通常只適用於非常低級別的「管道」類型捆綁包,或者在極其資源受限的設備上運行。

+0

好的,在我的情況下,我不能只安裝額外的包,我需要尋找最低公分母?好吧,那就是我會做的。謝謝:) –

1

這是不可能的。我認爲最好的做法是決定其中的一個。如果您擔心引入其他依賴關係,那麼DS是更好的選擇,因爲它只需要一個包就可以工作。