问题标签 [osgi-fragment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

osgi - 如何通过从片段中读取值来设置组件中的最终静态变量值?

我只是 OSGi 的初学者,我们仍在使用版本 4。我有一个 OSGi 组件,其中一个类具有公共静态最终 (psf) 变量。

我想做的是,我想使用一个片段,它从属性文件中读取值并设置组件中 psf 变量的值。? 如果未找到片段,则应将值设置为默认值。

请找到我的快照代码,让我知道我该怎么做?

组件类

片段类

0 投票
0 回答
49 浏览

module - 在主机包中未指定的 OSGI 片段中导入包

我必须提供捆绑包的一些 UI 定制,为此我正在使用 osgi 片段。场景是我想在我的片段模块中包含另一个包,它在主机包中没有引用,例如在片段模块中,我想包含在其他包中定义的包,但不在主机包中。

我试过使用Import-Package Bundle-classpath但没有成功

如果可能或任何其他解决方案可以解决此问题,请指导我。

0 投票
0 回答
229 浏览

eclipse - Eclipse 产品未检测到 dropins 插件并且未更新 bundles.info

我已将我的 eclipse RCP 产品从 eclipse 3.8 迁移到 eclipse 4.12。每当我们向 plugins 或 dropins 文件夹添加任何其他插件时。它反映在 eclipse 3.8 的 bundles.info 中。但在 Eclipse 4.12 中,它不会更新 bundles.info 文件,并且在启动时会导致错误。

为什么它不更新 bundles.info?

目录:

\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info

文件夹结构

    • 插件
    • 下降
    • 配置
0 投票
1 回答
228 浏览

java - OSGi 中仅运行时依赖项的最佳实践

根据开闭原则,我通常以这样一种方式设计我的 Java 包和库,即有一个通用的“接口”或“API”包/库和一个或多个实现(非常类似于许多常见的 API,如 JDBC或 JAXP/SAX)。为了在不违反 OCP 的情况下在基础 API 库中定位一个实现(或有时是多个实现),我通常使用 Java 的ServiceLoader机制,或者偶尔通过ClassGraphReflections等第三方库进行类路径扫描。从 Maven 的角度来看,实现是作为runtime依赖项引入的(因为它们仅在执行时需要,而不是在编译时需要)。很标准的东西。

所以,现在,我想将其中一些包作为 OSGi 包提供(API 和实现在单独的包中),但由于在 OSGi 中每个包都有自己的类加载器,因此类路径扫描和ServiceLoaderAPI 都不能用于此目的。乍一看,OSGi 的“片段”机制似乎与上述纯 Java 设置最接近。在这种情况下,API 包将是“片段主机”,具体实现将作为片段附加到该主机包。由于片段宿主及其所有附加片段使用相同的类加载器,标准的纯 Java 机制如ServiceLoader或者 ClassGraph 仍然可以想象。这还有一个优点,那就是不需要检测库/包是否在 OSGi 上下文中运行,并且不需要 OSGi 框架依赖项。

所以,简而言之,我的问题是:片段是在 OSGi 中实现仅运行时依赖项的正确方法,还是有更好(或更标准)的方法?最好,我正在寻找一种在 OSGi 容器中工作但不需要依赖于 OSGi 本身的解决方案。

0 投票
0 回答
27 浏览

eclipse-plugin - 从活动目标平台导入片段的问题

我已将 Babel 片段“org.eclipse.jdt.ui.nl_ru”从活动目标平台导入到我们的项目中,并在其中进行了一些更改,但这些更改不适用。似乎继续使用来自活动目标平台的旧片段。如何让新的片段开始被使用?

0 投票
1 回答
31 浏览

osgi - Fragment-Host 以哪种方式操作 OSGi 片段?

我在让片段按我的意图工作时遇到了一些困难。它向我提出了一个问题,网络上的各种文章都没有回答。

首先,我对片段的理解是,它很像 OSGi Bundle,只是它不会自行激活。相反,它由另一个包托管。这样,它可以被认为是对现有捆绑包的扩展。

以上如有错误,请高人指正。

现在的主要问题与经常与片段文章一起使用的 Manifest 属性有关,特别是 Fragment-Host 属性。Fragment-Host 属性通常声明一个符号包名称,但不清楚的是:

  1. 如果包含 Fragment-Host 的清单属性是现有捆绑包的一部分,则声明在另一个模块中定义的片段(即:托管捆绑包声明它将托管的片段)-或-
  2. 如果包含 Fragment-Host 的清单属性是声明片段的模块的一部分,其值定义了托管捆绑包(即:片段声明托管它的捆绑包)这是我相信的,因为“片段主机”听起来像是声明将托管片段的内容。

这似乎是一个基本问题,但并没有得到真正的回答,而且如果没有一个可行的例子,我就会质疑它应该采用哪种方式。大多数指定需要片段并且“这些是清单应该看起来像”的人并没有声明这种可以极大地澄清问题的简单信息。

0 投票
1 回答
26 浏览

osgi - Spring OSGi集成:在springContext中获取osgi服务时出现ClassCastException

OSGi 新手。我正在尝试在春季从 osgi 获得服务。代码的 Git 链接:https ://github.com/shinevs/SpringIntegrationTest 获取 ClassCastException。

我正在尝试从 spring 服务初始化一个 OSGi bundle jar。OSGi bundle 注册一个名为 Activator 的服务,一旦 OSGi bundle 初始化并创建了 Activator,就会尝试从 Spring 访问 Activator。

注意:OSGi bundle 是另一个模块,它是这个项目的一部分,用于测试目的。Spring App 只需要一个 OSGi 包作为 jar。

如何运行: curl http://localhost:8080/osgi

面临的问题:Spring App 在尝试访问 Activator 时,抛出 ClassCastException

这是由于 spring 和 osgi 中的不同类加载器。我试图实现片段,但这也没有用。