2012-09-19 107 views
2

看到罗伯特·邓恩的OSGi Dependencies: Heaven and Hell后,我在下面特别感兴趣的是:如何在激活捆绑包时自动激活捆绑的依赖关系?

如果您正在使用一个解析器,这是不知道的ACTIVE束 依赖,那么你就必须来管理这一切你自己。随着 敏捷,你只需要问你需要什么,让解决方案照顾 其余的。这加快了开发生命周期,并使脚本中的冗余杂乱无章。

就像理查德说的那样,使用obr可以解决解析时间依赖关系。但是,我认为如果不扫描捆绑包的源代码,则很难解决活动时间依赖性(自动激活捆绑包的依赖性)。

例如,如果一个捆绑包A使用一个使用BundleContext.register方法在捆绑包B上注册的服务,那么当激活捆绑包A时,我们怎么能知道我们也必须激活捆绑包B?

+0

你也许应该添加一个OSGi标签 –

+0

感谢Robert的建议! –

回答

2

整个方法背后的假设是捆绑包将提供指示其需求和能力的元数据。可以从包中的其他工件(例如web.xml文件或声明性服务组件文件)推断出一些额外的信息。

即使存在代码级依赖关系,也无法检测任意动态类加载 - 元数据是必不可少的。

编写一个程序,可以确定一个包的所有可能的功能和要求将是一个硬静态分析问题,并且这些是不可能的。

相关问题