InfoQ

News

Spring IDE 2.0 Adds Web Flow and AOP Development Tools

Posted by Ryan Slobojan on Jun 27, 2007

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

Security for the Services World

Chris Riley presents security issues threatening service based systems, examining security threats, presenting measures to reduce the risks, and mentioning available security frameworks.

Navigating The Rapids:Real-World Lessons in Adopting Agile

This talk investigates technical issues encountered when moving to an Agile process.

Codename "M": Language, Data, and Modeling, Oh My!

Don Box and Amanda Laucher present “M”, a declarative language for building data models, domain models or external DSLs. Don Box's demos show some of M’s features and latest changes of the language.

SOA Manifesto - 4 Months After

It is four months since the SOA manifesto was announced; InfoQ interviewed the original author’s to get insight into the motivations and the process behind the initiative.

Memory Barriers and JVM Concurrency

This article explains the impact memory barriers, or fences, have on the determinism of multi-threaded programs.

7 Fundamentals of Mission-Critical Service Testing

Schneider on 7 service testing fundamentals: thoroughly testing, large amounts of realistic data, security testing, high productivity, tracking test results, realistic loads, and proper governing.

Agile Infrastructure

This talk outlines innovations in tools, process, planning and culture emerging at the front lines of continuous delivery.

Pragmatic F# in Action

Amanda Laucher and Josh Graham introduce the audience to F# basics showing some of its main features, emphasizing what makes it better than imperative languages, and also showing F# code samples.