【发布时间】:2014-04-29 19:55:55
【问题描述】:
如果我理解正确,建议在 OSGi 中进行白盒测试的方法是将(测试)片段添加到需要测试的包中。我有以下设置:
- 将“com.bundleA”与包“com.bundleA.foo”捆绑在一起
- 使用包“com.bundleA.foo”和“com.bundleA.utils”分段“com.bundleA.tests”
- 将“com.bundleB”与包“com.bundleB.bar”捆绑在一起
- 片段“com.bundleB.tests”与包“com.bundleB.bar”
- “com.bundleA”导出“com.bundleA.foo”
- “com.bundleA.tests”导出“com.bundleA.utils”
- “com.bundleB”导入包“com.bundleA.foo”
我的用例如下:我希望“com.bundleB.tests”导入“com.bundleA.utils”。在 OSGi 中,从哪里导出包并不重要。然而,Eclipse PDE 需要在 'com.bundleA' 中设置 'Eclipse-ExtensibleAPI=true' 以使其了解 'com.bundleA.tests' 可以导出其他包。但是,在编译时,“com.bundleB”现在可以从测试片段中的“com.bundleA.foo”访问类!这是不希望的,因为片段不会被部署,因此会出现运行时错误。
在这种情况下,最佳做法是什么?
【问题讨论】:
标签: java dependencies osgi eclipse-rcp