问题标签 [felix-dependency-manager]

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 回答
171 浏览

osgi - OSGi注入依赖管理器

我正在尝试将其DependencyManager注入我的组件中。被BundleContext注入但DependencyManager不是 ( @Inject)。我究竟做错了什么?

0 投票
1 回答
2249 浏览

osgi - 无法在项目上执行目标 (generate-scr-scrdescriptor) 无法加载已编译的类

有任何人面临以下错误。为什么会导致.? 我正在使用以下版本的插件。

[错误] 无法在项目 osgiexample.core 上执行目标 org.apache.felix:maven-scr-plugin:1.20.0:scr (generate-scr-scrdescriptor):E:\MY-Work\TESTProj\osgiexample\core\ src\main\java\osgiexample\core\servlets\MyDataProviderServlet.java :无法加载编译的类:osgiexample.core.servlets.MyDataProviderServlet -> [帮助 1]

0 投票
0 回答
170 浏览

java - Felix 和 OSGi - 如何指定父类和抽象类

我将 Apache Felix 与 BluePrint 一起用于依赖配置。

我有一个涉及抽象父类和子类的用例。如何在这些类的蓝图中映射依赖关系。我无法在 BluePrint.xml 中看到 Abstract & Parent 字段(它无法说明 parent 和 Abstract 和 Parent 不是有效字段)

Java 类:

谢谢,

0 投票
1 回答
151 浏览

osgi - 使用 dmlambda 时不调用 Apache Felix 停止方法

我们遇到了 DM Lambda (1.1.1) 的问题,即在停止捆绑包时未调用捆绑包的停止方法。我有一个包含此问题的简单示例的可执行 jar。该示例包含两个自定义包,一个使用标准 DM 语法,其中 stop 被按预期调用。第二个自定义捆绑包使用新的 DM Lambda 语法,激活器代码包含在下面。第二个包 (org.syntech.examples.dmlambda) 不会导致停止调用。

我不得不认为我只是遗漏了一些明显的东西,但是尽我所能,我无法调用启用 DM Lambda 的捆绑包的 stop 方法。任何帮助或指导将不胜感激。我们非常喜欢新的 DM Lambda 语法,并希望继续使用它。

示例:使用 DM Lambda 语法的简单激活器,它不会按预期调用“停止”方法。我尝试使用默认值并明确指定回调,似乎没有任何效果。

以下是示例 JAR 中包含的捆绑包版本。

我还有一个可执行的 JAR 和可以发送的示例项目来说明这个问题。任何帮助或指导将不胜感激。

0 投票
1 回答
124 浏览

java - OSGi AspectService 获取切面服务的服务属性

给定一个Sender具有属性的服务和一个切面服务LogSender,如何LogSender获取当前的服务属性Sender?我想添加一个属性来选择性地记录特定Sender发送的数据。

component.getServiceProperties();似乎返回LogSender' 服务属性而不是Sender' 属性。

我已经看过了,ConfigAdmin但我没有看到一种方法可以将Sender那个LogSender方面与使用的特定配置相关联。

如果相关,我将使用 Apache Felix 作为我的 OSGi 容器。

这是添加到依赖列表后的Activator'方法。initConfigurationAdmin

0 投票
1 回答
74 浏览

java - 如何为 OSGi R7 元类型注释强制(到 1.2.0)OSGi XMLNS

我正在将一个项目更新为 OSGi R6 注释(由于我将依赖项部署到我的容器中,我有运行 OSGi R7 的限制)并且遇到了一个问题,即我的旧 Apache Felix SCR 注释中有破折号,这在 OSGi 中是不可能的R6。

我试图在移动到 OSGi R6 注释的同时保持现有的 OSGi 属性(包含破折号),但是事实证明这很困难。

我现在要做的是使用支持破折号的 OSGi R7 注释$_$,并寻找某种方法可以强制/target/classes/OSGI-INF/metatypeXML 文件具有

<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.2.0"...

代替

<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.4.0"...

..这是我的应用程序中的不兼容(无法解析 1.4.0 命名空间,不,我无法更新我的 Metatype 服务)。

有什么方法可以在我的元类型 XML 生成中强制使用 XMLNS?我可以在 /target/classes/OSGI-INF 的 Component XML 文件上强制使用它,方法是指定@Component(xmlns="http://www.osgi.org/xmlns/metatype/v1.2.0")但是这将它设置为组件而不是元类型(我需要它作为元类型)。

我正在使用:

关于如何实现这一目标的任何想法?

0 投票
1 回答
48 浏览

osgi - 启用 Apache Felix Web 控制台以显示 100 多个日志

我们正在使用Apache Felix Web 控制台来显示活动包、配置和日志。但是,如果能够显示的不仅仅是默认的 100 个日志条目,那就太好了。有没有办法以这种方式配置控制台?我在官方文档中没有找到任何内容,但这是一个基本要求,我猜想在某个地方有解决方案。我错过了什么吗?

0 投票
1 回答
74 浏览

osgi - 如何根据配置绑定动态引用?

我有以下使用参考服务的消费者组件sender

只要接口有一个实现,这就可以正常工作TelementrySender

但是,如果该接口有两个实现,并且我想根据配置属性选择要绑定的实现,那么正确的方法是什么?根据我的理解和发现,尝试了以下方法。

在我的组件中包含一个绑定方法,如下所示。

我的TelemetrySender实现之一如下,

我的问题是如何选择正确的TelemntrySender内部setSender方法?或者,如果我使用了错误的方法,请纠正我。我参考了这篇文章

0 投票
2 回答
124 浏览

java - OSGI服务可见性/DS注解组件注入

我有一个由 Apache Felix Dependency Manager 实例化的服务,因为我需要使用工厂方法来返回实现:

因为我希望将此服务注入到同一个包中的服务中,所以 aService 和 bService 都需要在同一个包中

这工作得很好,问题是我不希望 aService 在捆绑包之外可见,就像私人服务一样。如果我删除:

该组件似乎是无论如何创建的,它没有被注册为服务,因此其他捆绑包不可用,但我不能使用 DS 注释来注入组件。真的不可能使服务仅在发起它的包中可见吗?或者有没有办法仍然用 DS 注释注入组件?

我尝试使用 Apache Felix Dependency Manager 注入组件:

但我发现组件没有注入:

这是否意味着我不能用 @ServiceDependency 注入简单的组件,因为它们必须是服务,因此在 OSGI 注册表中?那么如何使用注解注入简单的组件呢?应该有一个吧?

更新

我刚刚意识到 aService 实现需要导出包,因此这只是一个设计缺陷。然后我只是找到了一种方法将服务分成两个不同的包(OSGI 方式)并解决了我的问题。

在此之前,我尝试从导出的​​捆绑包中删除包,但仍然无法正常工作,该服务仍然可用。