繁体   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