簡體   English   中英

從代碼解析OSGi捆綁包

[英]Resolve OSGi bundle from code

我必須以編程方式確保多個OSGi捆綁包的特定啟動順序,因為激活過程與其他捆綁包有一些依賴性。 我從Java代碼管理捆綁軟件的生命周期,在Java代碼中,我嘗試確定捆綁軟件的接線以計算正確的啟動順序。 所有捆綁軟件均已正確安裝。

由於將束線接縫初始化為已解決狀態,因此我正在尋找一種以編程方式解決束的方法。 我只找到bundle.start()可以解析但也可以啟動bundle。 有沒有辦法解決而不開始? 如果我手動使用OSGi Shell,則可以通過resolve <bundle-id>

您無法以可靠且可靠的方式執行此操作。 OSGi沒有開始訂購。 期。 出。 克服它。

原因很簡單,捆綁包可能會停止,並且引發您在啟動時發明的任何巧妙命令。

唯一有效的順序是服務依賴性。 每個組件應指定其依賴的服務,而不是在注冊所需的服務之前啟動。 這是唯一可靠的訂購方式。

當您可以使用DS時,這當然很簡單。

您可以使用FrameworkWiring.resolveBundles解析一組捆綁軟件。 但是解決捆綁包只是啟動捆綁包的必要先決條件,但與訂購無關。 您可以一次解決所有捆綁軟件,然后以隨機順序啟動捆綁軟件。

如Peter所說,如果您需要按特定順序啟動捆綁軟件,則系統出了點問題。 它將如何處理更新包?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM