在我上一篇文章之后,许多人一直在询问迁移到 OSGi Web 容器对 dm Server 的影响。最常见的提问是
- 增加了什么?
- 什么保持不变?
- 什么发生了变化?
- 我如何保持最新?
我将分别解答这些问题。如果您有更多问题,请随时评论。
增加了什么?
与 Web Container RI 集成将使 dm Server 能够访问 OSGi Web Container 标准的所有功能。这包括处理 WAR 的标准模型、对 webbundle URL 方案的支持以及对 Web Container extender 的支持。
我正在为 RI 探索一些不错的增值功能,包括使用 ConfigAdmin 进行动态配置、用于检查已部署 Web bundle 的全面 MBean 接口以及 EventAdmin 集成以监控生命周期事件。所有这些功能都将添加到 dm Server 以及 RI 中。
什么保持不变?
您会很高兴地知道,您在 dm Server 中学到的有关 Web 应用程序的大部分知识都保持不变。
使用 dm Server 部署器
除了对 webbundle URL 的支持之外,WAR 文件仍然可以使用 dm Server 部署器进行部署。部署器的所有路径都受支持,包括 pickup 目录、deployer MBean 和 Admin Console。
使用 dm Server 部署器部署时,WAR 文件依赖项将自动从配置的仓库链中可用的 bundle 安装。
WAR 部署模式
程序员指南中提到的所有 WAR 类型都保持不变 - 事实上,它们是 Web Container 标准的一部分。
系统包导入
使用 dm Server 部署的 WAR 将自动导入所有配置的系统包,即使此功能未进入标准。如果使用 webbundle URL 进行部署,您可以使用 URL 参数触发系统包导入。我希望规范将包含此区域的一些标准行为
什么发生了变化?
我们的目标是在 dm Server 中保持大多数功能不变,但迁移到 Web Container 确实需要一些更改。与此同时,我们正利用代码重构的机会集成用户提出的一些更受欢迎的功能请求。
Web 模块将被移除
最大的变化是移除了web 模块。我们倾向于支持基于标准的方法,现在我们已经能够与 OSGi Alliance 合作创建基于标准的 OSGi Web 应用程序方法,我们正在转向它,而不是特定于 dm Server 的解决方案。
对于目前正在使用 Web 模块的各位,我非常想听听您最喜欢哪些功能以及不舍得失去哪些功能。重要的 Web 模块功能完全可以在 Web Container web bundle 之上重新实现。
切换到 Tomcat 配置格式
在 1.0.x 版本中,dm Server 中嵌入的 Tomcat 实例使用 JSON 配置文件格式进行配置。许多用户要求我们切换回使用 Tomcat 的 XML 格式。Web Container RI 使用标准的 Tomcat 格式,当 dm Server 切换到 Web Container 时,它也将切换配置文件格式。
我仍在最终确定配置文件将存储在哪里。我希望能够使用可以从 ConfigAdmin 填充的占位符对 Tomcat 配置文件进行参数化。
我如何保持最新?
了解进展的最简单方法是跟踪 Web Container 和 dm Server Web 的 SVN 仓库。您可以通过以下 URL 访问这些仓库
我会定期在此博客更新,您可以通过 Twitter 跟踪进展,使用 #osgi 和 #dmserver。