Impala 首个发布版为 Spring 提供动态模块

  • Charles Humble
  • 张龙

2008 年 6 月 6 日

话题:JavaDevOps语言 & 开发架构文化 & 方法

Impala使得开发者可以将基于 Spring MVC 的 web 应用划分成一组形成继承体系的模块,它采用 Java 1.5 运行时,其许可协议基于 Apache V2。使用该框架的每个应用都包含一个根模块,还可以包含一个或多个子模块。根模块的主要作用是定义一套接口 beans 并为应用中使用的 Java 接口和共享 / 领域类提供 home 接口,而子模块主要关注领域。该框架可以在运行的应用中动态增加、更新或删除模块,还可以利用 JMX 查看和重新装载模块。Impala 从内心深处拥抱测试驱动开发并提供了一个基于 JUnit 3 的“交互式测试运行器”,其目的在于减少开发 / 部署 / 测试的周期,尤其是集成测试。

Impala 项目组刚刚发布其首个里程碑版本,可以从这里下载。该版本与 Eclipse 和 Ant 结合非常紧密,并支持 Tomcat 和 Jetty 作为其 servlet 容器。最终的 1.0 版打算增加对 Netbeans 和 IntelliJ 的支持,同时对 JDeveloper 的支持也在考虑中。除了对 Spring MVC 的支持,它还计划支持一般的 web 集成机制。尽管 Impala 计划在其首个完全发布版中增加对 OSGi 的支持,但是它现在与 OSGi 并不兼容。

根据 Impala 的路线图——在其首个里程碑版本中已实现如下特性:

  • 交互式测试运行器:一个可以加载、更新、重新加载并运行测试的 Java 应用。
  • 套件测试运行器:支持高效、快速地运行一组集成测试。
  • 简单的脚手架,允许构建新项目。
  • Eclipse web 应用运行器(使用 Jetty),无需构建就可以进行多模块 web 应用的开发。
  • War 部署构建——可以创建 war 文件,该文件可以被部署到标准的 JEE 应用服务器或者 servlet 容器中。
  • 针对 Jetty 的非 war 部署构建——在嵌入式 Jetty 服务器中的一个专门的部署结构。
  • 内部重构以除去架构中的瑕疵。
  • 集成 Spring MVC,支持多模块及使用 Spring MVC 构建的动态可重新加载的 web 应用。
  • 支持 JUnit 3.8,特别是在交互式测试运行器中。
  • 利用文件系统修改探测器实现的自动模块更新。
  • 利用 JMX 管理控制台实现的手动模块更新。
  • 部署构建自动打上发布版本标签。
  • 可以在基于 Impala 的应用中使用的基于 Ant 的构建系统。

很明显,Impala 在某些方面与 Spring OSGi 有重复之处,在Impala 的博客上有一篇文章对此作了比较。该项目考虑到与 OSGi 的关系,最终允许将 OSGi 作为 Impala 应用的另一个可选运行时。

Impala 的项目经理非常渴望社区的参与。如果你对此感兴趣,请看看这里

查看英文原文:First Public Release of Impala Provides Dynamic Modules for Spring

JavaDevOps语言 & 开发架构文化 & 方法