0

在开发和部署基于 OSGi 的系统时,我想深入了解工业中使用的生命周期。
我的主要关注点是部署阶段,在开发阶段创建版本并打包捆绑包之后。可能执行的具体测试程序和集成方法。
具有一些低级别详细信息的非常高级帐户将非常有帮助。
谢谢你。

4

3 回答 3

1

OSGi 捆绑包可以在运行的 OSGi 引擎(无论是 Equinox、Felix、dmServer 等)中组装在一起。与其他代码一样,可能依赖于特定于平台的行为(例如仅在使用 c:\ 样式文件引用的 Windows 上工作的代码)、与 JNI 一起工作且仅对 x86 平台有效的代码等。在这些情况下,OSGi 不会帮助或阻碍软件测试。

它可以增加复杂性的地方在于运行包的纯粹组合爆炸。与 Java 应用程序不同,它可以非常愉快地在单个整体 CLASSPATH 上运行,您往往直到稍后才发现错误(例如,尝试加载 JDBC 驱动程序时的 ClassNotFoundException)。在这方面,OSGi 有助于确保您必须至少有必要的软件包导出包;但即便如此,一些包可能是可选的,因此最终会遇到同样的问题。

作为 OSGi 捆绑器,您确实需要测试:

  • 这些包实际上都启动了吗,即在安装到您最喜欢的 OSGi 引擎之后, start n是否正常工作?如果您拥有所有依赖项,那么它应该从 INSTALLED 到 RESOLVED 再到 ACTIVE;如果它停留在 INSTALLED 中,则意味着它缺少一些依赖项
  • 您的应用程序是否需要在 OSGi VM 启动时启动某些捆绑包(如声明式服务或远程服务)?
  • 捆绑包之间是否存在起始顺序问题?它们都应该正常工作,但您可能想测试如果 Bundle A 在 Bundle B 之前启动会发生什么

这些是您在验证一组捆绑包以相互协作时必须查看的额外测试内容。理想情况下,您应该有可以运行的 OSGi VM 测试——这就是 Eclipse 的 JUnit 插件测试的运行方式。

于 2009-07-27T21:19:49.827 回答
0

我建议阅读dmServer 入门指南或查看SpringSource.org dmServer 站点的其他信息。

入门指南介绍了一个名为GreenPages的小型 Web 应用程序,它是从一个框架项目结构分阶段构建的。最终实现是一个模块化的多捆绑应用程序。在此过程中,单元和集成测试在 Eclipse 以及独立 (Maven) 构建中进行了演示。

尽管 Eclipse 很大,而且是一个有用的示例,但我不认为它是典型的 OSGi 模块化系统,我也不知道对所采用的开发过程生命周期的解释。

于 2009-05-17T01:26:59.337 回答
0

您可以学习 Eclipse,因为它是我所知道的最大的基于 OSGi 的系统之一。他们有很多文档讨论版本控制以及他们如何在 eclipse 平台中使用测试。

于 2009-04-10T01:52:03.310 回答