Impala 1.0 for Spring Modularity Approaches Final Release
Join the DZone community and get the full member experience.Join For Free
Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway? Brought to you in partnership with IBM.
The most welcome new feature in Impala 1.0 is the added Maven support. Impala already has Ant support, meaning both sides of the Maven vs. Ant debate can build the way they like. The RC2 also adds simplifications for using Maven in the default project structure. The Maven project structure includes a parent build project, which contains all the dependency definitions, a host web project, containing the main web.xml file but not the application modules, and a project for each application module. There is a Maven sample project for Impala that illustrates the project structure.
The second release candidate also features a dynamic properties namespace for easier property support. The properties can be implemented and dynamically updated without any module or application reload. In addition, Impala 1.0 includes enhancements for the mechanisms that support multi-module web applications, and supports the newly released Spring 3.0 framework.
A significant deviation from OSGi is Impala's modularization of applications, but not the dependent jars (third party libraries). Zoio says, "With Impala, you manage third party libraries in exactly the same way as you would for a regular application (for example, by placing third party libraries in the WEB-INF/lib directory). The advantage is that you also spared the overhead of having to provide fine grained package import and export declarations in your application. Of course, with Impala you don't get versioning and reloading of third party libraries within the application. The big question in view is whether very many applications really require this feature, or use it in anger." Although it might not attract hardened OSGi adopters, Impala could be a welcome tool for the large group of Java developers who haven't learned OSGi. Zoio explains, "A project like Impala offers a simpler, more gentle introduction to modularity, which brings many of the benefits of modularity (in particular the dynamic service model, and dynamic redeployment of parts of an application) with very little pain."
In future versions, Zoio says it's a priority to make Impala widely accessible on all of the major IDE's. Currently, there's only a plugin for Eclipse. He also wants to add a module administration console and other usability features. Better support for multi-language modular applications is another priority, Zoio says. He thinks support for modular Grails applications would be lucrative feature as well. To learn more about the Impala project you can visit the project website.
For a more in-depth look at Impala, see DZone's recent interview with Phil Zoio. A number of interesting comments and arguments are posted.
Opinions expressed by DZone contributors are their own.