BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News First Public Release of Impala Provides Dynamic Modules for Spring

First Public Release of Impala Provides Dynamic Modules for Spring

This item in japanese

Developed and distributed using the Apache Licence, Version 2, and using the Java 1.5 runtime, Impala provides a means by which a developer can divide Spring MVC-based web applications into a set of modules that form a hierarchy. Every application using the framework contains a root module and may also contain one or more sub modules. The main purpose of the root module is to define a set of interface beans and to provide a home for Java interfaces and shared/domain classes used in the application, whilst the sub modules are typically more domain focused. The framework allows modules to be dynamically added, updated or removed within a running application, and supports viewing and reloading of modules using Java Management Extensions (JMX). Impala strongly favours test driven development as a development methodology, and provides an "interactive test runner" based on JUnit 3 which is intended to reduce the develop/deploy/test cycle, particularly in the context of integration testing.

The project team have just released their first milestone release which can be downloaded here. This release is tightly coupled to Eclipse and Ant, and supports Tomcat and Jetty as its servlet container options. The final 1.0 release is expected to add additional IDE support for Netbeans and IntelliJ, with JDeveloper also under consideration. As well as support for Spring MVC a generic web integration mechanism is planned. Impala is not currently OSGi compliant although this is also planned for the first full release.

From the RoadMap - the following features have been implemented for the first milestone release:

  • Interactive test runner: a Java main application which can load, update and reload modules, as well as run tests.
  • Suite test runner: support for efficient, rapid running of a suite of integration tests.
  • Simple scaffolding, allowing building of new projects.
  • Eclipse web application runner (using Jetty), allowing multi-module web applications to be developed without builds.
  • War deployment build - supporting creation of war files which can be deployed in a standard JEE application server or servlet container.
  • Non-war deployment build for Jetty - a specialised deployment structure with an embedded Jetty server.
  • Internal refactoring to remove wrinkles in architecture.
  • Spring MVC integration with support for multi-module, dynamically reloadable web applications being built using Spring MVC.
  • JUnit 3.8 support, specifically in the interactive test runner.
  • Automatic module updates using a file system modification detector.
  • Manual module updates using JMX administration console.
  • Deployment build with automatic tagging of release versions.
  • Ant-based build system which can be used in Impala-based applications.

Impala clearly has some overlap with Spring OSGi and an entry on the Impala blog provides a comparison. The project is considering some convergence with OSGi, ultimately allowing OSGi to be used as an alternative runtime for Impala applications.

The Impala project lead is very keen to get community involvement in the project. If you are interested have a look here.

Rate this Article

Adoption
Style

BT