簡體   English   中英

OSGi可以安裝/部署URL上托管的捆綁軟件嗎?

[英]Can OSGi install/deploy bundles hosted on a URL?

我想知道是否可以配置OSGi容器(例如Karaf (或任何其他流行的容器)),以便通過那里的任何聯網機制(RMI,HTTP,URLClassLoader等)從托管在另一台計算機上的遠程存儲庫中下載捆綁包(.BND)。 )?

理想情況下,我可以隨時將新版本的捆綁軟件部署到此遠程存儲庫中,並以某種方式觸發OSGi容器“下載”(安裝/部署)遠程捆綁軟件,並將其熱部署到舊版本的相同的捆綁包。

這可能嗎? 如果是這樣,怎么辦? 提前致謝!

OSGi具有一個API,用於在每個Bundle激活程序接收的BundleContext上管理OSGi框架。 該API允許您通過URL或InputStream安裝/更新捆綁軟件。

由於這是一個標准化的API,因此有很多人制作捆綁軟件,以提供有關此部署過程的策略。 原型服務器是Apache FileInstall,它監視一個目錄並自動安裝在此目錄中找到的每個捆綁軟件,並在捆綁軟件消失后將其卸載。 例如,這對於Dropbox效果很好。 它還支持通過Configuration Admin服務進行配置。 另一方面,您可以找到提供遠程管理系統的Ap​​ache Ace。

為了找到最佳的解決方案,請嘗試列出您的要求。 一兩個系統還是一百萬? 通過慢速線路本地還是遠程?

可以肯定的是,您會發現一些項目或提供程序能夠為您提供實現所需管理策略的OSGi捆綁包。

我們使用Apache Felix並維護OBR存儲庫 設置完成后,您可以從OSGi Shell部署新版本。 這確實需要您手動登錄並輸入命令,例如deploy com.example.foo

另外,您也可以直接從網址進行install http://example.com/bundles/bundle.jar ,例如install http://example.com/bundles/bundle.jar

您的最后一個要求(自動部署)比較棘手。 您也許可以在OSGi容器上啟用遠程Shell,並在構建過程中通過telnet推送命令。

我建議在配置文檔中查看 Karaf 的配置 您能夠部署帶有Maven網址,http或文件引用的捆綁軟件。 或者,您可以將一組捆綁軟件作為功能定義(從Maven存儲庫加載所有必需和已使用的捆綁軟件)或通過部署kar文件來進行部署。

暫無
暫無

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

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