BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Spring IDE 2.0 Adds Web Flow and AOP Development Tools

Spring IDE 2.0 Adds Web Flow and AOP Development Tools

Bookmarks
Version 2.0 of Spring IDE was released today. InfoQ took the opportunity to speak with Christian Dupuis, Spring IDE co-lead, in order to learn more about this release.  According to Dupuis, the major new features in version 2.0 are:
  • Support for Spring Web Flow - validation and graphical editing of web flows are now available, and the Eclipse Web Tools Project has been extended to provide content assistance and hyperlinking functionality
  • Full XSD-based configuration support - Spring IDE's internal model of bean definitions was completely reworked in order to leverage the Spring Tooling API
  • Spring AOP development tools - support now exists for visualization of both <aop:config>-based and @AspectJ-style cross-cutting references, and for validating configurations such as pointcut expressions
  • Several usability and UI improvements - A new Spring Explorer replaces the previous Beans View, refactorings have been updated to include Spring Beans in some operations, and several new wizards have been added (e.g. Spring Bean configuration file, new Project)
Full details of the changes in version 2.0 are also available. This version of Spring IDE also includes support for several Spring 2.1 language features. InfoQ asked Dupuis to describe these, and he responded:
Spring 2.1 introduces a new bean(<name pattern>) pointcut primitive. This new pointcut primitive is already supported by Spring IDE 2.0. Besides that Spring 2.1 adds a mechanism that scans a package tree for annotated classes and automatically creates Spring bean definitions from the annotation meta data (read more). Support for this is already build into Spring IDE 2.0.

Other new features of 2.1 that are of interest from a tooling perspective are the new and refined namespaces. Currently there is a new <jms:* /> and <context:* /> namespace; some other changes and additions might follow. We are planning to support the namespace once they become stable. So this is basically within the Spring 2.1 RC1 or RC2 timeframe.
Spring IDE 2.0 also fully supports Eclipse 3.3, which is due out later this week.

InfoQ also asked Dupuis about which Spring subprojects were supported by Spring IDE. He had this reponse:

Certainly Spring IDE 2.0 aims to fully support Spring 2.0. As already mentioned we have very specialized support tools for Spring Web Flow. Furthermore Spring IDE 2.0 supports Spring bean configurations that are created by Spring JavaConfig; it even tries to parse the dependencies of bean definitions created by JavaConfig from the Java source code (see here).

Spring Security (aka Acegi) will add comprehensive configuration namespaces in the coming version. Work has been started to get tooling support for this valuable enhancement right with the initial release of Spring Security.

Currently we are not planning to have anything special for Spring Modules. If there is a community need for this, we could add support for Spring Modules' namespaces. It is important to note that Spring IDE 2.0 is open for extension. We are following the Eclipse pattern of defining extension points that allow other plug-ins to contribute functionality. Using Spring IDE's extension points a custom namespace developer is able to plug in support for his namespaces without the need to change Spring IDE code (see here). This is just like adding a NamespaceHandler or BeanFactoryPostProcessor to Spring.

Furthermore we are exposing extension points to contribute custom validation rules for Spring bean definitions.

Finally, Dupuis was asked about future plans for the Spring IDE. He left us with these thoughts:

In the future the team will further enhance and streamline the working experience with Spring IDE: We are trying to put an higher emphasis on Spring's theme of Power and Simplicity. Therefore you can expect a close integration with Mylyn, a plug-in that allows focusing the Eclipse workspace on the current task. We will leverage Mylyn to prioritize content assist in Spring IDE's XML editor extension, filter the Spring Explorer and even collapse uninteresting blocks in your XML bean definition file.

Work on this integration has already been started a while ago. Together with the Mylyn team around Mik Kersten we are planning to release a preview of Spring IDE's Mylyn integration around the Eclipse Europa release later this month.

Rate this Article

Adoption
Style

BT