InfoQ

News

Spring IDE 2.0 Adds Web Flow and AOP Development Tools

Posted by Ryan Slobojan on Jun 27, 2007 12:24 PM

Community
Java
Topics
Artifacts & Tools
Tags
Spring ,
Spring Web Flow ,
Spring IDE
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.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.