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的项目经理非常渴望社区的参与。如果你对此感兴趣,请看看这里。