问题标签 [ipojo]
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.
java - Eclipse Bndtools 中 OSGi 包的 iPOJO 操作
我想在 Eclispe 中使用 iPOJO 注释进行组件声明,并在构建期间执行 iPOJO 操作以在捆绑清单中包含“iPOJO-Components”标头。
谷歌搜索后,我对“bnd-ipojo-plugin”有了一些了解。不知道这样能不能解决问题。
我想知道 :
1)这是否可以解决我的问题。
2)如果可以解决问题,如何将这个'bnd-ipojo-plugin'添加到'cnf'目录。
请帮忙解决问题
java - 如何使用 iPOJO 中的字段分配重新发布服务属性
我是 iPOJO 的新手。作为学习 iPOJO 框架的一部分,我发现了以下问题。
我正在发布服务属性“when”的服务“ServicePropertiesExample”,初始/默认值设置为 0。此服务属性附加到字段“count”。当归档的“计数”设置为空时,服务属性“何时”未发布(如 iPOJO 文档中的http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix- ipojo-用户指南/描述组件/提供-osgi-services.html)
NullPointerException
但是当从 value 重新分配字段“count”时,我得到了一个结果null
。我想重新发布此服务属性。如何才能做到这一点 ?
这是一个例外:
java - 除非添加了验证返回,否则不会调用 iPOJO 组件注入回调
除非我添加验证回调方法,否则不会调用我的 iPOJO 组件的注入回调。
但是当我键入命令“instances”时,OSGi 控制台会列出该组件是有效的。有什么问题 ?
osgi - 在 IPojo 中重命名实例
有没有办法重命名 iPojo 实例?
我正在使用工厂来构造实例,因此在 createComponentInstance 的参数中我传递了一个带有实例名称的名称属性。但是在运行时,一旦实例开始运行,我将能够获得更多我想用作名称的信息
我尝试使用 @Property(name="name") 或 @Property(name="instance.name") 在类中添加一个字符串字段,然后将其设置为新名称,但更改未生效
java - 关闭时的 IPOJO 日志记录警告
当应用程序关闭并且某些@Requires 服务关闭时,ipojo 正在记录一个异常“依赖项不是可选的,但是不能在 A 中注入任何服务对象”
我怀疑(我无法在我的机器上重现该问题)它可能与 proxy = false 和/或在 unbind 中将其设置为 null 有关。
java - iPOJO 和组件 ipojo 之间的连接
我有一个与我的问题有关的例子。(文件联合:https ://drive.google.com/file/d/0B8ThLrV6-uchaFlTZTNGQ1FnT1E/view?usp=sharing )
我有 3 个 ipojo 组件(3 个捆绑包):
CallHello 使用在 HelloDelay 或 HelloComponentReplace 中实现的 DelayService 服务
HelloDelay 和 HelloComponentReplace 使用在 HelloPrint 中实现的 HelloService 服务。
在部署时,我部署了 5 个捆绑包:
service.hello.service.jar
打印机.hello.printer.jar
delay.hello.delay.jar
替换.hello.replace.jar
call.hello.call.jar
结果:DelayService 始终使用 HelloDelay 中的实现。
最后,我运行 Main.java 来控制 HelloDelay 和 HelloComponentReplace 之间的手动选择。
我在 Main.java 中实现了一个启动/停止或卸载/安装包的功能(并且效果很好)。但是,HelloDelay 或 HelloComponentReplace 都是有效的。
如果两者都有效且有效,我在 iPOJO 网站上阅读,我可以使用“比较器”。但我不明白如何应用“比较器”来控制上述两个组件之间的选择。这是要改变优先级吗?我知道我们可以更改捆绑包的优先级,但我不知道如何应用到我的文件(Main.java)和 iPOJO。
我们能否控制一个需求组件和许多提供组件(相同的服务或接口)之间的连接(绑定)?
我希望你能在这个时候帮助我的困难。
此致,
java - 在 iPOJO 元数据中动态“从”更改
我有一个与 iPOJO 相关的问题,例如:
我定义并部署了一个提供“HelloService”服务(接口)的组件 A。还有一个名为“instance_A”的组件A实例</p>
我还在 A 中定义了一个需要“HelloService”服务的组件 B。B 的实现声明了一个依赖项:
你好服务你好;
在 metadata.xml 中,我声明:
- 现在,我想实现一个组件 C 来动态控制元数据中的更改(从 =“instance_A”)到另一个(例如 from =“instance_D”)
我该如何做(组件C)来改变这个“来自”?
提前致谢
ipojo - 更新 iPOJO 中的动态定位提供程序
我有一个组件声明为:
该组件的jar文件:helloComponent.jar
现在,我想将 (value="A") 更新为 (value="AA")。因此,我使用 ConfigurationAdmin 实现了一个组件来更新此属性
但是,此 ControllerReconfiguration 组件无法更新 'hello' 实例中的值 'A'(由 'AA')。
请问如何修改这个 ControllerReconfiguration 组件?
谢谢你的帮助。
java - 更新 IPOJO 组件实现
我还有另一个与 iPOJO 中的动态更新有关的问题:
1.问题:
- 假设我有 2 个组件 A 和 B。这两个组件分别由 A_impl.java 和 B_impl.java 实现。它们实现了两个服务 A_service 和 B_service。
- 组件“C”使用 A_service 声明如下:
//
//
- 所有三个组件都已部署并且工作正常。
2.要求:
- 现在,我将通过将 C_impl.java 中的依赖类型(@Requires A_service 服务)更改为(@Requires B_service 服务)来动态更新“C”的实现,即它在运行时将 C_impl 中的 A_service 更改为 B_service。
问题:
如何开发独立组件来重新配置(控制)组件实现?我读过(http://felix.apache.org/site/dive-into-the-ipojo-manipulation-depths.html)但我不太明白。提前感谢您的回复
java - 无法将服务与需要组件的过滤器绑定,该组件在 iPOJO 中包含更多依赖项
我有 3 个组件(A、B、C)提供服务(As、As、Cs)(A 和 B 实现相同的(As)服务)。1 个组件 (E) 需要维修。
E的组件类,我声明:
我有一个控制器来设置“dep1”的过滤器。它控制“dep1”选择组件 A 或 B 的 (As) 服务。
所有组件工作正常。我可以控制A和B组件之间的服务。
现在,我修改 E 类如下:
在这种情况下,我也可以从控制器控制过滤器,但是:
“dep1”总是使用组件“A”的服务,尽管“dep1”的过滤器设置为“B”
请问这种情况怎么解决?提前致谢。