InfoQ

News

First Public Release of Impala Provides Dynamic Modules for Spring

Posted by Charles Humble on Jun 03, 2008 12:01 AM

Community
Java
Topics
Announcements ,
Build systems
Tags
Spring
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.

No comments

Reply

Exclusive Content

Ruby.rewrite(Ruby)

In this RubyFringe talk, Reginald Braithwaite writes Ruby code to read, write, and rewrite Ruby. Demos include extending Ruby with conditional expressions, call-by-name and more.

Book Except and Interview : Aptana RadRails, An IDE for Rails Development

Aptana RadRails: An IDE for Rails Development by Javier Ramírez discusses the latest Aptana RadRails IDE, a development environment for creating Ruby on Rails applications.

Fast Bytecodes for Funny Languages

Cliff Click discusses how to optimize generated bytecode for running on the JVM. Click analyzes and reports on several JVM languages and shows several places where they could increase performance.

Scott Ambler On Agile’s Present and Future

Scott Ambler, Practice Lead for Agile Development at IBM, speaks on the current status of the Agile community and practices having a look at the perspective of the Agile’s future.

Manager's Introduction to Test-Driven Development

Dave Nicolette and Karl Scotland try to introduce non-technical managers to one of the most popular Agile development techniques: Test-Driven Development (TDD).

Structured Event Streaming with Smooks

Smooks is best known for its transformation capabilities, but in this article Tom Fennelly describes how you can also use it for structured event streaming.

How to Work With Business Leaders to Manage Architectural Change

Successful architectures evolve over time to meet changing business requirements. Luke Hohmann presents how to collaborate with key members of your business to manage architectural changes.

Colors and the UI

In this article, Dr. Tobias Komischke explains how colors used in a GUI can influence our interaction with a computer and offers advice on using the appropriate colors for the interface.