问题标签 [apache-felix]

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 投票
2 回答
4671 浏览

dependency-injection - OSGi/Felix 声明式服务:如何过滤要绑定的服务?

我正在使用 Apache Felix 及其声明式服务 (SCR) 来连接包之间的服务依赖关系。

例如,如果我需要访问 java.util.Dictionary 我可以说以下内容让 SCR 提供:

现在,我有多个可用的 Dictionary 服务,我想使用“name”服务属性(我只想要“name=myDictionary”)过滤它们。我可以使用代码(使用 ServiceTracker)来做到这一点,但我宁愿在 @scr 注释中指定过滤器。

0 投票
4 回答
5808 浏览

java - 从 OSGi 包访问命令行参数

我有一个作为 OSGi 包集合运行的应用程序。我使用嵌入 Felix 框架的非常小的包装器来启动它。这个包装器的必要性让我有点恼火,因为它依赖于 Felix(而应用程序本身也可以在 Equinox 中运行),所以我想摆脱它,并使用默认的 Felix发射器。

包装器真正做的唯一一件事就是将命令行参数传递给启动的 OSGi 框架,以便那里的包可以对它们做出反应。请注意,它实际上并不解析参数,只是将 String[] 推送到我的应用程序中。

是否有标准方式(或至少是 Felix 标准方式)从包中访问命令行参数,以便我可以取消自定义启动器?

0 投票
1 回答
1549 浏览

java - Felix/OSGi:如何使用不是 OSGi 服务的 SCR 组件?

Apache Felix 的 SCR 允许声明(通过注释或 XML)组件,然后将其实例化、连接到它们的依赖项并注册为 OSGi 服务。

也可以跳过服务注册部分,只让 SCR 创建组件(通过指定@scr.component,但省略@scr.service)。我在想这可能仅对依赖注入(在包中)有用,但是如何使用组件?可以使用scr.reference注入服务,但这不适用于非服务(或者是否)?

直接访问 SCR API 是可行的,但直接与容器服务对话有点违背 DI 的目的。

0 投票
1 回答
912 浏览

osgi - OSGi r4.1 中的 ServiceTracker

我正在使用org.osgi.util.tracker.ServiceTracker(PrintableServiceTracker 实现 ServiceTrackerCustomizer 并在添加新服务时简单地打印)。

我在新的电子书“ OSGi in action ”中读到了“伪注册”,我想知道我是否必须明确地进行伪注册,或者框架是否会自动处理?

(ServiceTracker 是否会捕获已安装的 Printable 服务。是否会为每个预安装的 Printable 服务调用 ServiceTracker.addingService(ServiceReference))

0 投票
2 回答
2433 浏览

java - Apache Felix:什么是扩展包?

Apache Felix 具有“扩展包”的概念。这似乎是一个有助于系统捆绑的捆绑。还为他们注册了一个特殊的 URL “felix://extensions/”。

我什么时候需要使用扩展而不是常规捆绑包?

是否有使用这种方法的捆绑包示例?

这是 Felix 独有的功能还是 OSGi 规范的一部分?

0 投票
1 回答
1932 浏览

java - OSGi felix:可以在宿主应用程序和捆绑包之间共享一个类吗?

在我的宿主应用程序中,我尝试实现一个简单的 pushService,通过提供 set 和 get 方法,该服务将用于将名为 Vehicle 的类的实例传输到 OSGi 世界。为了能够使用该服务,我将服务接口和 Vehicle 类都导出到了一个 jar 文件中,并将该文件导入到应该使用该服务的包中。

每次我尝试在我的宿主应用程序中使用 Vehicle 类时,它实例化了 felix 框架和包,我得到一个链接错误。阅读以下博客条目(http://frankkieviet.blogspot.com/2009/03/javalanglinkageerror-loader-constraint.html)后,我明白了为什么会发生此错误。但我不知道如何解决我的问题。

是否可以在宿主应用程序和 OSGi 实例之间共享一个类?也许我必须使用反射而不是导入 jar 文件?我查看了那个库(http://code.google.com/p/transloader/),我不确定这个库是否能够解决我的问题......

BR,

马库斯

0 投票
10 回答
55417 浏览

java - 为什么在 Apache Felix 中运行时 JAXB 找不到我的 jaxb.in​​dex?

它就在那里,在它应该被索引的包中。不过,当我打电话时

我得到一个 JAXBException 说

“my.package.name”不包含 ObjectFactory.class 或 jaxb.in​​dex

虽然它确实包含两者。

什么有效,但不是我想要的,是

来自其他人的这个问题出现在相当多的邮件列表和论坛上,但似乎没有得到答案。

我在 OpenJDK 6 上运行它,所以我得到了源包并将我的调试器放到了库中。它首先查找 jaxb.properties,然后查找系统属性,但均未找到,它尝试使用 com.sun.internal.xml.bind.v2.ContextFactory 创建默认上下文。在那里,异常被抛出(内部ContextFactor.createContext(String ClassLoader, Map)),但我看不到发生了什么,因为源不在这里。

预计到达时间:

从 ContentFactory 的源代码来看,我在这里找到了,这可能是一段无法按预期工作的代码:

根据我以前的 经验,我猜测这与运行它的 OSGi 容器的类加载机制有关。不幸的是,我在这里仍然有点不够深入。

0 投票
2 回答
2115 浏览

repository - 如何配置 Felix OBR 存储库列表?

有没有办法在 Felix 的config.properties文件中指定多个 OBR 存储库?我确实可以在运行时添加一个存储库,但我必须在重新启动后这样做。

“Prefrences Service”没有帮助,似乎“Bundle Repository”没有使用它。

0 投票
2 回答
23661 浏览

java - 如何使用自定义清单文件在 Eclipse 中构建 JAR?

我正在尝试在 Eclipse 中构建一个 Felix 包。这基本上包括让 Eclipse 创建一个 JAR(通过导出)并添加我的自定义清单文件,但是,我似乎无法让它工作。当我尝试导出 JAR 文件时,我的自定义清单文件显示在 JAR 中,但从未添加到 JAR (meta-inf) 中的正确位置。这会导致将另一个由 Eclipse 创建的默认清单文件添加到我的 JAR 文件中。

注意:我正在使用 Eclipse 的内置 JAR 导出工具并选择使用工作区中现有清单文件的选项。

我敢肯定有一些小细节被忽略了,但我有点难过。

谢谢你的帮助。

0 投票
4 回答
1816 浏览

java - 开始使用 osgi + felix

我需要哪些Felix软件包才能开始使用?下载页面上有数不胜数的。

(ps 这个名字是对 Odd Couple + 的引用,与 OSGI 的“Oscar”参考框架形成对比?这是我在阅读了其中一个教程页面后想到的,我从中得到了笑声。)