[英]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服務進行配置。 另一方面,您可以找到提供遠程管理系統的Apache 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推送命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.