我想知道是否可以配置像 Karaf 这样的 OSGi 容器(或任何其他流行的)通过任何网络机制(RMI、HTTP、URLClassLoader 等)从另一台计算机上托管的远程存储库下载 bundle (.BND)?
理想情况下,我可以随时将 bundle 的新版本部署到此远程存储库,并以某种方式触发 OSGi 容器“下载”(安装/部署)远程 bundle 并将其热部署同一 bundle 的旧版本。
这可能吗?如果是这样,怎么办?提前致谢!
最佳答案
OSGi 有一个 API,用于管理每个包激活器接收的 BundleContext 上的 OSGi 框架。此 API 允许您通过 URL 或 InputStream 安装/更新 bundle 。
由于这是一个标准化的 API,因此很多人制作了 bundle 来提供围绕此部署过程的策略。典型的是 Apache FileInstall,它监视一个目录并自动安装在此目录中找到的每个包,并在该包消失时卸载该包。这适用于例如保管箱。它还支持通过配置管理服务进行配置。另一方面,您会发现 Apache Ace 提供了远程管理系统。
要找到最佳解决方案,请尝试列出您的要求。一两个系统还是一百万个?通过慢速线路进行本地或远程?
有一件事是肯定的,您会发现某些项目或提供商能够为您提供实现您所需的管理策略的 OSGi bundle 。
关于java - OSGi 可以安装/部署 URL 上托管的 bundle 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825030/