问题标签 [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.
osgi - OSGi注入依赖管理器
我正在尝试将其DependencyManager
注入我的组件中。被BundleContext
注入但DependencyManager
不是 ( @Inject
)。我究竟做错了什么?
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]
java - Felix 和 OSGi - 如何指定父类和抽象类
我将 Apache Felix 与 BluePrint 一起用于依赖配置。
我有一个涉及抽象父类和子类的用例。如何在这些类的蓝图中映射依赖关系。我无法在 BluePrint.xml 中看到 Abstract & Parent 字段(它无法说明 parent 和 Abstract 和 Parent 不是有效字段)
Java 类:
谢谢,
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 和可以发送的示例项目来说明这个问题。任何帮助或指导将不胜感激。
java - OSGi AspectService 获取切面服务的服务属性
给定一个Sender
具有属性的服务和一个切面服务LogSender
,如何LogSender
获取当前的服务属性Sender
?我想添加一个属性来选择性地记录特定Sender
发送的数据。
component.getServiceProperties();
似乎返回LogSender
' 服务属性而不是Sender
' 属性。
我已经看过了,ConfigAdmin
但我没有看到一种方法可以将Sender
那个LogSender
方面与使用的特定配置相关联。
如果相关,我将使用 Apache Felix 作为我的 OSGi 容器。
这是添加到依赖列表后的Activator
'方法。init
ConfigurationAdmin
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/metatype
XML 文件具有
<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")
但是这将它设置为组件而不是元类型(我需要它作为元类型)。
我正在使用:
关于如何实现这一目标的任何想法?
osgi - 启用 Apache Felix Web 控制台以显示 100 多个日志
我们正在使用Apache Felix Web 控制台来显示活动包、配置和日志。但是,如果能够显示的不仅仅是默认的 100 个日志条目,那就太好了。有没有办法以这种方式配置控制台?我在官方文档中没有找到任何内容,但这是一个基本要求,我猜想在某个地方有解决方案。我错过了什么吗?
osgi - 如何根据配置绑定动态引用?
我有以下使用参考服务的消费者组件sender
,
只要接口有一个实现,这就可以正常工作TelementrySender
但是,如果该接口有两个实现,并且我想根据配置属性选择要绑定的实现,那么正确的方法是什么?根据我的理解和发现,尝试了以下方法。
在我的组件中包含一个绑定方法,如下所示。
我的TelemetrySender
实现之一如下,
我的问题是如何选择正确的TelemntrySender
内部setSender
方法?或者,如果我使用了错误的方法,请纠正我。我参考了这篇文章
java - OSGI服务可见性/DS注解组件注入
我有一个由 Apache Felix Dependency Manager 实例化的服务,因为我需要使用工厂方法来返回实现:
因为我希望将此服务注入到同一个包中的服务中,所以 aService 和 bService 都需要在同一个包中:
这工作得很好,问题是我不希望 aService 在捆绑包之外可见,就像私人服务一样。如果我删除:
该组件似乎是无论如何创建的,它没有被注册为服务,因此其他捆绑包不可用,但我不能使用 DS 注释来注入组件。真的不可能使服务仅在发起它的包中可见吗?或者有没有办法仍然用 DS 注释注入组件?
我尝试使用 Apache Felix Dependency Manager 注入组件:
但我发现组件没有注入:
这是否意味着我不能用 @ServiceDependency 注入简单的组件,因为它们必须是服务,因此在 OSGI 注册表中?那么如何使用注解注入简单的组件呢?应该有一个吧?
更新
我刚刚意识到 aService 实现需要导出包,因此这只是一个设计缺陷。然后我只是找到了一种方法将服务分成两个不同的包(OSGI 方式)并解决了我的问题。
在此之前,我尝试从导出的捆绑包中删除包,但仍然无法正常工作,该服务仍然可用。