Karaf 和 OBR 中的功能有什么区别

2024-01-26

我正在研究部署和更新 OSGI(特别是 Karaf)应用程序的方法。似乎有几种选择。一是使用 OSGi Bundle Repository (OBR),二是使用 Karaf 中的 Features,三是使用卡拉夫洞穴 http://karaf.apache.org/index/subprojects/cave.html.

我不太确定这些选项有何不同。他们似乎都在做同样的事情。它们只是相同功能的不同实现吗?有人可以解释一下差异或提供一些建议吗?


Karaf 功能和 OBR 是解决(某种程度上)同一问题的不同方法。两者都允许您将 OSGi 捆绑包安装到 OSGi 框架中,但它们决定安装哪些捆绑包的方式不同。

对于 Karaf 功能,您可以提供一个文件(例如 feature.xml),其中明确列出了该功能的所有捆绑包的 URL。它们可以存在于文件系统、maven 存储库或可以通过 URL 描述的任何其他位置。

另一方面,OBR 根据需求和功能确定要制定的捆绑包。它将计算出您作为起点安装的任何内容的传递依赖项,并确保它们全部安装。通常,您会配置一个或多个支持 OBR 格式的外部存储库,然后运行时中的 OBR 解析器将从这些存储库提供捆绑包。因此,您可以说“我需要包 org.foo”或“我需要一个实现 org.bar 的 OSGi 服务”,配置程序将决定哪些捆绑包最适合您的要求。 OBR 比 Karaf 功能更灵活、更通用,但如果您只是将一组明确定义的捆绑包安装到一个已经准备好所需基础设施的框架中,那么它可能有点矫枉过正。如果组成应用程序的捆绑包彼此之间没有依赖关系,它也对您没有帮助 - 您仍然需要将它们全部包含在您的“起始集中”中。

区别有点模糊,因为 Karaf 功能允许您在 Maven URL 中指定版本范围,因此即使使用某个功能,您也可以在配置内容方面更加灵活。 Karaf 功能还具有与 OBR 的互操作性,因此您可以根据 OBR 要求编写功能定义文件。

我相信 Karaf Cave 是一个具有一些特性的 OBR 实现。所以它是一个服务器,而不是像功能或 OBR 配置这样的新“技术”。

-- 企业 OSGi 实际应用:http://www.manning.com/cummins http://www.manning.com/cummins

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Karaf 和 OBR 中的功能有什么区别 的相关文章

  • 大型企业 Java 应用程序 - 模块化

    我在一家全国性的公司工作 所以我们开发的软件规模很大 我们的核心系统是基于网络的 包括webservices 我们目前正在重新设计整个项目 现在是开始项目结构的时候了 我们有大约 7 个 Web 模块 包括基于Struts2 and Spr
  • 如何使用 OSGI HttpService 支持虚拟主机

    使用 osgi 的所有示例HttpService展示如何注册 servlet 资源等 但所有这些都在同一个服务实例和同一个命名空间中 我怎样才能运行多个实例HttpService在osgi 最好是嵌入式 中 每个都有自己的命名空间 基于针对
  • Clojure 热代码交换 uberjars/.classes

    我希望在项目更新之间进行热代码交换 但我还没有找到有关如何动态加载 class 文件的任何信息 更具体地说 我想要这样的东西 Make lein uberjar 获得some client 0 0 0 standalone jar 运行它j
  • 将多个 OSGi 包打包在同一个 jar 中

    我对 OSGi 平台非常陌生 拥有 OSGi 捆绑包B1依赖于另一个包B2 这很可能不是由容器提供的 我可以将两个包打包在同一个包中吗jar 如果是 该怎么做 如果jar已安装并且捆绑包已安装 是的 你可以这样做 有点 通常 OSGi 包是
  • 当存在多个实现时,优先考虑容器内的 OSGi 服务选择

    我正在玩 OSGi 并且有一些捆绑包 捆绑包 A 和 B 都包含实现单个接口的注册服务 第三个包 C 包括用于查找实现前面提到的接口的服务的代码 A 和 B 捆绑包具有不同的版本号 但 C 似乎从第一个启动的捆绑包中获取服务 我已经更改了启
  • Apache Aries Managed JPA 支持哪些 JPA 提供程序?

    显然是 OpenJPA 我也看到提到过 EclipseLink 和 Hibernate 但是功能上有显着差异吗 大多数差异来自于提供商对 OSGi 的感知程度 例如 您可能需要自己将 Hibernate jar 包装为 OSGi 捆绑包 或
  • Glassfish 作为 OSGi 容器

    我正在评估 OSGi 容器 主题是使用 Glassfish 来包含我的 OSGi 应用程序组件 我的问题是 Glassfish 对此有好处吗 有人有以这种方式使用它的经验吗 背景 该应用程序不是 Java EE 应用程序 而是 Spring
  • Jetty SSL 配置 Apache karaf

    我正在尝试配置 Jetty 以在 Apache Karaf OSGI 容器中使用 SSL http 有效 但 https 无效 可能是什么问题呢 我的配置详细信息如下 等 jetty xml
  • 在 Liferay 7 中创建自定义标签库

    我正在使用 Liferay 7 和 OSGi 模块编写一个应用程序 我需要创建一个跨所有模块 portlet 可用的自定义标签库 但我几乎不知道从哪里开始 你有什么主意吗 我应该将 taglib 定义 类和 JSP 存储在 OSGi 模块中
  • 如何检测是否在osgi容器中运行

    我有一个 OSGi 包 也可以在纯 Java 进程中运行 我需要能够判断捆绑包是否已加载到 OSGi 系统中 我怎样才能做到这一点 如果没有 OSGi 标准方法来执行此操作 我将采用 Eclipse Equinox 特定的方法 将 Bund
  • 我们如何为 pom.xml 创建一个 build.gradle 等效文件来构建和部署 AEM 代码?

    我正在尝试创建一个构建 gradle文件 例如完整的 pom xmlAEM Maven 原型 https github com Adobe Marketing Cloud aem project archetype or 懒骨头模板 htt
  • Java 17 是否支持任何 OSGi 版本?

    我已经使用 Java17 运行了 OSGi 捆绑包 并在启动时得到了以下结果 Java 17 还不支持 OSGi 吗 org osgi util tracker ServiceTracker getServices 为空 None
  • 将 OSGi 包分组以形成一致的“应用程序”的最佳方式是什么

    OSGi 方式 是开发包含离散的 连贯的功能块的单独的包 有时这些包包含实用程序类 有时它们依赖于实用程序类并设置自己的 OSGi 服务 另一方面 用户不太可能接触到捆绑包 他们更关心的是应用 一个执行任务或解决问题的软件 通常 应用程序将
  • OSGI 嵌套依赖 jar

    如果我有一个 OSGI Bundle 其中包含嵌套在 OSGI Bundle jar 中的依赖项 jar 我是否需要在 Import Package 清单中列出这些类以便我可以使用它们 我认为不会 另外 如何将这些依赖项 jar 添加到我的
  • MATLAB 仅在最初几秒内找到 eclipselink 的 persistence.xml

    这是中描述的问题的延续在从 MATLAB 运行的 Java 代码中使用 eclipselink https stackoverflow com questions 4390740 using eclipselink in java code
  • 无法在 Felix config.properties 中将 PAX-URL 的程序集协议与自动启动的捆绑包一起使用

    我正在尝试使用 PAX URL 这样我就可以即时组装未打包的捆绑包 如果我将 pax url assembly 1 2 1 jar 放入自动启动包中 然后键入 安装程序集 路径 到 我的 文件夹 一切正常 问题是 我想使用 gt felix
  • 包使用冲突:捆绑包启动时的导入包

    尝试安装 htmlunit 捆绑包时出现以下错误 com springsource com gargoylesoftware htmlunit 2 6 0 370 could not be resolved Reason Package u
  • 在 Java 8 中使用 Java 7 比较器

    情况 我有一个 OSGi 项目 我正在尝试迁移到 Java 8 在我的项目中 我依赖于我 OSGi fied 的第三方库 只需添加MANIFEST MF文件并将元数据放入其中 这些库是从只读 SVN 存储库中签出的 因此我可以在需要时签出更
  • 将 AOP 与 OSGI 结合使用的最佳解决方案?

    我正在使用 Equinox 因此 Equinox Aspect 项目似乎是理所当然的 但该项目似乎处于非活动状态 并且只有一页文档 让我最终悬而未决 除了那个项目之外 我没有看到在 OSGI 中使用 AOP 的很多选项 让我知道你们的想法以
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将

随机推荐