java - OSGi 可以安装/部署 URL 上托管的 bundle 吗?

标签 java url osgi apache-karaf osgi-bundle

我想知道是否可以配置像 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/

相关文章:

java - 从黑莓应用程序发送 JSON 请求

git - 通过 Visual Studio 2013 将 URL 更改为远程 Git 存储库?

java - 在 OSGi 中,被跟踪的服务类型和被跟踪对象的类型有什么区别

java - "IA64_32"osgi.arch 是什么意思?

java - 带有 Swing UI 的 Spring-Boot

java - 通过 append 原始文件名来保存文件

REST 方式在一个请求中发布多个相同类型的资源

javascript - `www.me.com/page.php` 和 `www.me.com/page.php?1` 和 `www.me.com/page.php?2` 被视为 3 个唯一的 URI 吗?

java - 应用配置管理工具

java - 使用自引用数组,多边形是不可见的