有关更快地制作PAX(OSGI测试)框架的提示

时间:2011-08-26 03:11:01

标签: java pax pax-runner

我知道PAX正在做很多事情并且创建容器并复制所有这些罐子并不便宜但是有任何提高性能的一般技巧。我有一些测试在几分之一秒内在容器外执行,而在内部需要更长时间。我主要使用PAX来验证我的清单是否准确,并且可以部署bundle而不会丢失任何依赖项。我尝试过Knopflerfish,Equinox,Felix,一般情况下,他们对准系统无容器运行的速度相对较慢。

2 个答案:

答案 0 :(得分:1)

正如您所知,底层容器并没有太大的区别。

如果您希望动态创建最少的捆绑包,可以试用Pax Tinybundles:如果这适用于您的情况,您可以构建一组最小化捆绑包,其中只包含您实际需要测试的内容。例如,您可以打包Manifest。我没有为这个特殊目的自己做基准测试,但值得一试。

作为旁注,请考虑Pax考试2.3为@Before和@After引入支持(参见here),从而为您提供更灵活的负载设置/拆卸功能。

答案 1 :(得分:1)

使用Native Container比Pax Runner Container更快,节省了启动外部进程的开销。

使用EagerSingleStagedReactorFactory可以节省为每个测试重新启动框架的开销。

为避免复制JAR,首选mvn:URLs或mavenBundle()为常规URL,然后在下载后,将从本地Maven存储库中获取包。

Pax Exam 2.3.0中的一个新功能是参考:协议,它允许您在不进行复制的情况下配置捆绑包 - 这甚至适用于爆炸捆绑包(即解压缩的目录结构)。