InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

First Public Release of Impala Provides Dynamic Modules for Spring

Posted by Charles Humble on Jun 03, 2008

Sections
Enterprise Architecture,
Operations & Infrastructure,
Process & Practices,
Architecture & Design,
Development
Topics
Announcements ,
Java ,
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

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.