继我的上一篇文章之后,许多人一直在询问转向 OSGi Web 容器将对 dm Server 产生什么影响。最常被问到的问题是
- 正在添加什么?
- 哪些保持不变?
- 哪些正在改变?
- 如何保持更新?
我将分别解答这些问题。如果您还有其他问题,请随时留言。
正在添加什么?
与 Web Container RI 集成将使 dm Server 能够访问 OSGi Web 容器标准的所有功能。这包括处理 WAR 的标准模型、对 webbundle URL 方案的支持以及对 Web 容器扩展器的支持。
我正在为 RI 探索一些不错的增值功能,包括使用 ConfigAdmin 进行动态配置、用于检查已部署 Web Bundle 的全面 MBean 接口以及 EventAdmin 集成以监控生命周期事件。所有这些功能都将添加到 dm Server 和 RI 中。
哪些保持不变?
您将很高兴得知,您在 dm Server 中学到的关于 Web 应用程序的大部分内容保持不变。
使用 dm Server 部署器
除了支持 webbundle URL 外,仍然可以使用 dm Server 部署器部署 WAR 文件。部署器的所有路径都受支持,包括 pickup 目录、部署器 MBean 和 Admin Console。
使用 dm Server 部署器进行部署时,WAR 文件依赖项将从配置的仓库链中可用的 Bundle 自动安装。
WAR 部署模式
在程序员指南中提到的所有 WAR 类型都保持不变 - 实际上它们是 Web 容器标准的一部分。
系统包导入
使用 dm Server 部署的 WAR 将自动导入所有配置的系统包,即使此功能未包含在标准中。如果使用 webbundle URL 进行部署,您可以使用 URL 参数触发系统包导入。我希望规范中包含这方面的一些标准行为
哪些正在改变?
我们的目标是让 dm Server 中的大部分功能保持不变,但转向 Web 容器确实需要进行一些更改。与此同时,我们正在利用代码重构的机会,整合用户提出的更受欢迎的一些功能请求。
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 关注进展。