Osgi Equinox从外部捆绑中启用组件

时间:2013-09-24 12:54:23

标签: osgi bundle equinox declarative-services

鉴于这种情况:

捆绑A:组件1A(启用:false) 捆绑B:组件2B

如何从Bundle B或Component 2B启用组件1A?

我尝试使用componentContext,

来做到这一点
dsContext.enableComponent("1A");

但它似乎只适用于同一捆绑中的服务。

1 个答案:

答案 0 :(得分:0)

您使用的是用于管理的机制,似乎您希望在应用程序级别上使用它。应通过其依赖关系或通过特定于域的方式启用/禁用声明性服务。你应该让另一个启用/禁用组件的actor。使用这条路线可能会得到非常复杂的系统,因为很难控制时间和顺序。

从技术上讲,你应该使用Apache Felix SCR服务来控制DS的启用/禁用,遗憾的是这还没有标准化,然后需要Apache Felix SCR作为DS的实现。

如果您解释为什么要启用/禁用其他组件,可能会为您指出更好的解决方案。