Spring Web Flow 1.0.2 Released

Releases | Keith Donald | April 10, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.2 has been released.  This is a bugfix and enhancement release, addressing all bugs reported against the Spring Web Flow 1.0 series and significantly enhancing Spring Web Flow's support for users of Java Server Faces (JSF).  We recommend upgrading to this release from previous versions.


Spring Web Flow is a next generation Java web application controller framework.  The framework provides a powerful system for implementing navigation logic and managing application state consistently across a variety of environments.

New and Noteworthy in this Release

Spring Web Flow 1.0.2 is a solid, stable release that serves as a drop-in replacement for existing users and also contains several noteworthy enhancements.  Three of these enhancements are particularly worth noting in more detail:

Significantly enhanced JSF integration

Now when used as a JSF extension, Spring Web Flow provides:

  • A NavigationHandler that brings the full power of the Web Flow navigation system to JSF developers.  This system allows for implementing dynamic navigation rules and solves the infamous back-button problem out-of-the-box.
  • A state management system providing UI Components full access to beans managed in any of Web Flow's conversational data scopes, including "conversation", "flow", and "flash" scope.  These scopes complement JSF's default scopes and are particularly useful for interactive web applications that apply Ajax techniques using libraries such as Ajax4JSF.
  • Native support for all major JSF view technologies.  With Spring Web Flow 1.0.2, views that participate in flows are standard JSF views whether they are built using JSP or Facelets.  Any JSF UI Component can now bind to beans managed in any of the conversational scopes seamlessley.

Please run and review the sellitem-jsf sample for a quick assessment of these enhancements in action.  They significantly improve the ease of using Spring Web Flow in a JSF environment, and are the start of a larger effort that will continue into the 1.1 release and beyond.

Expanded practical documentation

Complete walk-throughs of each of Spring Web Flow's sample applications are now provided in the reference manual.  These walk-throughs take you through the implementation of each sample, and explain best practices and design considerations along the way.   After downloading the release, see the 'Practical' chapter for how to get the sample applications running inside your IDE.

Spring IDE 2.0 integration

The upcoming 2.0 version of the Spring IDE Eclipse Plugin features a Graphical Web Flow Editor and XML Flow Definition Editor.  Beginning with Spring Web Flow 1.0.2, each of the sample applications has been Spring IDE 2.0 enabled, allowing you to easily assess these tools as they progress.  To evaluate Spring IDE 2.0 simply import the sample projects into Eclipse and install the latest version of the Spring IDE 2.0 plugin from the nightly update site.

Spring Web Flow 1.1 Road Map 

Work has begun on Spring Web Flow 1.1 in anticipation of a first release candidate becoming available at JavaOne.  Building on 1.0.2, this release will offer major new functionality including support for conversational persistence contexts, Acegi Security integration, unified EL integration, integrated Spring 2.0 custom scopes, enhanced support for Java-based flows, and support for flow composition and inheritance.

Special thanks to Jeremy Grelle, Rossen Stoyanchev, and Christian Dupuis for their major contributions to this release.  It is an exciting time to be a part of the Web Flow community!

Keith Donald - Interface21
Erwin Vervaet - Ervacon
Leads, Spring Web Flow Development 

Spring Framework 2.0.4 Released

Releases | Juergen Hoeller | April 10, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring 2.0.4 has been released.  This is a bugfix and enhancement release, addressing all reported bugs against the Spring 2.0 series and introducing significant performance improvements.  We recommend upgrading to Spring 2.0.4 from previous 2.0.x releases.

Spring 2.0 Released


Regarding the performance improvements, repeated creation of Spring bean instances is up to 12 times faster in this release than previous versions of Spring 2.0. AspectJ-based weaving performance has also increased by a significant factor.

Please see the changelog and JIRA roadmap for all the details of the 77 issues addressed in this release.

Juergen Hoeller
Lead, Spring Framework Development
Interface21 - http://www.interface21.com

Spring Framework 2.0.3 Released

Releases | Juergen Hoeller | March 09, 2007 | ...

Dear Spring community,

We are pleased to announce that Spring 2.0.3 has been released.

Spring 2.0 Released


This is a bugfix and enhancement release in the Spring 2.0 series, including about 200 (!) refinements and fixes. Furthermore, this release introduces support for the JSR-166 (java.util.concurrent) backport project and basic support for JCA 1.5 (ResourceAdapter bootstrap, WorkManager support), as well as extended support for IBM WebSphere and Oracle OC4J.

Among the noteworthy enhancements are DefaultMessageListenerContainer's dynamic scaling capability and the thoroughly revised scripting integration, supporting more styles of writing Groovy and BeanShell scripts and providing seamless interaction with Spring's AOP facilities. This release also includes refinements in the AspectJ pointcut support as well as in the scoped-proxy facility.

See the changelog for details!

Juergen Hoeller
Interface21 - http://www.interface21.com

Spring Framework 1.2.9 Released

Releases | Juergen Hoeller | March 09, 2007 | ...

Dear Spring community,

I'm pleased to announce that Spring 1.2.9 has finally been released. Download | Docs | Changelog.

This is a bugfix and refinement release for people still using the 1.2 series, and is intended as a drop-in update for Spring 1.2.8. It contains fixes for all problems reported since 1.2.8, and includes various backports from the Spring 2.0 branch.

Note that this is the last planned release in the Spring 1.2 branch. Patch releases for 1.2.9 will only be provided in case of critical issues. We recommend to upgrade to Spring 2.0 for long-term usage.

Juergen Hoeller

Spring Web Flow 1.0.1 Released

Releases | Keith Donald | January 11, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.1 has been released.


Spring Web Flow is a next generation Java web application controller framework that allows developers to model user actions as high-level modules called flows.  The framework delivers improved productivity and testability while providing a strong solution to enforcing navigation rules and managing application state.

Release Notes

Spring Web Flow 1.0 saw over 10,000 downloads in a two month period and is used heavily within Fortune 500 companies.  This is the first 1.0 maintenance release, including fixes for bugs that have been reported since 1.0 final, as well as introducing several minor enhancements. Please see the changelog for all the details.

Getting Started

The best way to get started with Spring Web Flow is to download the release, read Erwin's practical introduction, and walk through the sample applications.  We recommend reviewing all samples, starting with Phonebook, supplementing with reference manual material as needed. Ten sample applications ship with the release, each demonstrating a distinct set of product features.


Keith Donald and Erwin Vervaet
Spring Web Flow Project Leads

Spring Framework 2.0.1 Released

Releases | Juergen Hoeller | November 23, 2006 | ...

Dear Spring community,

We are pleased to announce that Spring 2.0.1 has been released. Download | Docs | Changelog.

This is the first maintenance release for Spring 2.0, including fixes for most bugs that have been reported since 2.0 final as well as many minor enhancements. This release also introduces OpenJPA support and GlassFish weaving support. Furthmermore, it features redesigned AspectJ support internals and an improved bean definition tooling SPI.

As always, please see the changelog for the details.

If you are new to the Spring 2.0 series, please also see the original Spring 2.0 announcement for more information.

FYI, the Spring 2.0.2 release is scheduled for end of December. Our JIRA road map outlines the issues that are planned to be addressed in that release.

Juergen Hoeller
Lead, Spring Framework Development
Chief Architect, Interface21

Spring LDAP 1.1.1 Released

Releases | Ulrik Sandberg | November 18, 2006 | ...

Dear Spring Community,

We are pleased to announce that Spring LDAP version 1.1.1 has been released. This is an update release that adds several new features and fixes a few problems that were in 1.1. Download | ChangeLog | Documentation | API

A summary of the more important changes:

  • Added capability to use server-side controls in search.
  • DirContextAdapter.getNameInNamespace() now returns the full DN.
  • DistinguishedName now supports multi-valued RDNs separated by a '+' sign, like "cn=Rod+sn=Johnson", for example.
  • Added lookup methods that take an array of return attribute names.
  • Upgraded Spring to 2.0 internally. Spring 1.2.8 is still supported.

About Spring LDAP
Spring LDAP is a Java library for simplifying LDAP operations, based on the pattern of Spring's JdbcTemplate. The framework relieves the user of the burden of looking up and closing contexts, looping through NamingEnumerations, encoding/decoding values and filters, and more.

The LdapTemplate class encapsulates all the plumbing work involved in traditional LDAP programming, such as creating, looping through NamingEnumerations, handling Exceptions and cleaning up resources. This leaves the programmer to handle the important stuff - where to find data (DNs and Filters) and what do do with it (map to and from domain objects, bind, modify, unbind, etc.), in the same way that JdbcTemplate relieves the programmer of all but the actual SQL and how the data maps to the domain model.

In addition to this, Spring LDAP provides Exception translation from NamingExceptions to DataAccessExceptions, as well as several utilities for working with filters, LDAP paths and Attributes.

Spring-LDAP requires J2SE 1.4. J2SE 1.4 is required for building. J2EE 1.4 (Servlet 2.3, JSP 1.2) is required for running the example.

Where to start
Download the distribution from the link above. The distribution contains extensive JavaDoc documentation as well as full reference documentation and a sample application illustrating different ways to use Spring LDAP.

The permanent home of Spring LDAP is at http://www.springframework.org/ldap.

Spring LDAP is based on the SourceForge LdapTemplate project. Users of LdapTemplate are advised to switch to Spring LDAP.

Mattias Arthursson & Ulrik Sandberg
Spring LDAP Project Team

Spring Web Flow 1.0 RC4 Released

Releases | Keith Donald | October 05, 2006 | ...
Dear Spring Community,
We are pleased to announce that Spring Web Flow 1.0 RC4 has been released.


Spring Web Flow is a product of the Spring community focused on the orchestration of user interface flow within a web application.

This release contains many improvements and several exciting new features.  We consider it the most stable release to-date and, at last, the release that makes the Spring Web Flow 1.0 final roadmap feature complete.  Spring Web Flow 1.0 final will be released next week with minimal changes.  Between now and then we encourage you to test 1.0 RC4 to help catch any remaining issues before the big 1.0 launch.

Note there are user-affecting changes in this release.  1.0 RC3 or earlier users should review the upgrade guide which outlines these changes in detail.

The new and noteworthy in 1.0 RC4 is an exciting list, including: 

New and Noteworthy

As the final release candidate before Spring Web Flow 1.0 final, Spring Web Flow 1.0 RC4 introduces powerful new features such as render actions (1), evaluate actions (2), set actions (3), flash scope (4), flow execution attributes (5), and always redirect on pause (6). It provides enhanced documentation, better flow definition validation, smart defaults, and a complete custom Spring 2.0 configuration schema (7) for configuring the flow execution engine.

  • (1) Render actions execute application behavior before a response is rendered.  A render action is invoked when a view-state is asked to make a renderable view selection, on entry or on a refresh triggered by a redirect or brower refresh button.  The following example shows a render-action that executes a search of the phonebook before the results view is rendered.

    <view-state id="displayResults" view="searchResults">
            <bean-action bean="phonebook" method="search">
                    <argument expression="flowScope.searchCriteria"/>          
                <method-result name="results"/>
        <transition on="newSearch" to="enterCriteria"/>
        <transition on="select" to="browseDetails"/>

  • (2) Evaluate actions evaluate expressions against flow execution state.  The expression (OGNL-based by default) can be against any object reachable from the flow execution's root RequestContext, including objects in any scope such as flow scope.  The following example shows an evaluate-action that invokes the "makeGuess" method on the "game" flow-scoped bean:
    <action-state id="makeGuess">
        <evaluate-action expression="flowScope.game.makeGuess(requestParameters.guess)">
            <evaluation-result name="guessResult"/>
        <transition on="CORRECT" to="showAnswer"/>
        <transition on="*" to="enterGuess"/>
        <transition on-exception="java.lang.NumberFormatException" to="enterGuess"/>
  • (3) Set actions set attribute values in scope types such as flow scope.  The attribute may be a top-level attribute or a property at a nested property path.  The following example shows a set-action that sets the "fileUploaded" attribute to "true" in flash scope.
    <action-state id="uploadFile">
        <action bean="uploadAction" method="uploadFile"/>
        <transition on="success" to="selectFile">
            <set attribute="fileUploaded" scope="flash" value="true"/>
  • (4) Flash scope is a new scope type for persisting attributes across a redirect and any refreshes of the view.  When an event is signaled to transition out of the view flash scope is cleared.  The following complete flow definition example shows use of flash scope to expose a "fileUploaded" attribute to the selectFile view-state for displaying a success message after a successful upload.
    <flow xmlns="http://www.springframework.org/schema/webflow"
        <start-state idref="selectFile"/>
        <view-state id="selectFile" view="fileForm">
            <transition on="submit" to="uploadFile"/>
        <action-state id="uploadFile">
            <action bean="uploadAction" method="uploadFile"/>
            <transition on="success" to="selectFile">
                <set attribute="fileUploaded" scope="flash" value="true"/>
  • (5) Flow execution attributes allow you to set custom attributes that can influence flow execution behavior.  The following example shows an instruction to set the "alwaysRedirectOnPause" attribute to false in a Portlet environment (where redirecting doesn't tend to apply).
    <flow:executor id="flowExecutor" registry-ref="flowRegistry">
            <flow:alwaysRedirectOnPause value="false"/>
  • (6) "Always redirect on pauses" gives you default POST+REDIRECT+GET behavior with no special coding. Now by default, when a view state is entered a redirect is issued automatically.  This triggers a refresh to a flow execution URL that remains stable while the conversation is active.
  • (7) The new Spring 2.0 Configuration Dialect greatly simplifies system configuration and provides strong validation and tools support.  Configuring webflow's infrastructure is now as simple as defining two elements, as shown in a complete manner below:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        <!-- Launches new flow executions and resumes existing executions. -->   
        <flow:executor id="flowExecutor" registry-ref="flowRegistry"/>
        <!-- Creates the registry of flow definitions for this application -->
        <flow:registry id="flowRegistry">
            <flow:location path="/WEB-INF/flows/**-flow.xml"/>

See the reference manual for more information on these features.  Spring Web Flow 1.0 RC4 further refines the reference documentation, providing 70 pages on SWF usage.  The manual is available on-line in HTML and PDF forms.

Getting Started

One of the best ways to get started with Spring Web Flow is to review and walkthrough the sample applications.  We recommend reviewing all samples, supplementing with reference manual material as needed from the start. Ten sample applications ship with the  release, each demonstratinga distinct set of product features.  These samples are:

  1. Phonebook - the original sample demonstrating most features (including subflows)
  2. Sellitem - demonstrates a wizard with conditional transitions, flow execution redirects, custom text field formatting, and continuations
  3. Flowlauncher - demonstrates all the possible ways to launch and resume flows
  4. Itemlist - demonstrates REST-style URLs and inline flows
  5. Shippingrate - demonstrates Spring Web Flow together with Ajax technology
  6. NumberGuess - demonstrates stateful beans, evaluate actions, and "single key" flow execution redirects.
  7. Birthdate - demonstrates Struts integration
  8. Fileupload - demonstrates multipart file upload, set actions, and flash scope
  9. Phonebook-Portlet - the phonebook sample in a Portlet environment (notice how the flow definitions do not change)
  10. Sellitem-JSF - the sellitem sample in a JSF environment

To build the sample applications for quick evaluation simply:

  1. Extract the spring-webflow-1.0-rc4.zip release archive
  2. Access the projects/spring-webflow/build-spring-webflow directory
  3. Execute the "ant dist" target.
  4. See the "target/artifacts" directory for deployable .war files for each sample as well as expanded war directories.
See the release readme.txt and projects/spring-webflow/spring-webflow-samples/readme.txt for more information on the release archive contents and samples, respectively.

All sample projects are Spring IDE projects directly importable into Eclipse.

Thanks to everyone out there who supported this release.  Spring Web Flow 1.0 is now... finally... just around the corner.


The Spring Web Flow Team

Spring 2.0 Final Released

Releases | Rod Johnson | October 03, 2006 | ...

It is our pleasure to announce that the long-awaited final release of the Spring Framework version 2.0 is now available.

Spring 2.0 Released

Download | Documentation | Changelog 

As the leading full-stack Java/Java EE application framework, Spring delivers significant benefits for many projects, reducing development effort and costs while improving test coverage and quality.

This stable, production-grade release comes after 9 months of active development.  In this short time the Spring 2.x series has matured immensely, benefiting from over 150,000 early access downloads across 9 milestone releases, resulting in over 750 JIRA issues resolved, 50 of which introduce major new features.

What's New?

We believe three attributes capture what our users can expect from the Spring 2.0 series: Simple, Powerful, and Proven.

Version 2.0 brings major new simplifications to the framework's overall usage model.  As our existing users know, the heart of Spring is the Bean Container which drives the configuration of your Java and Java EE application.  In version 2.0 many common configuration tasks have been simplified through the introduction of custom Bean Configuration Dialects.  What does this mean to you?

This means you can now:

  • Make your business services transactional in one-line of configuration code.
  • Lookup objects from JNDI in one-line of configuration code.
  • Expose externalized properties to your services in one line of configuration code.
  • Apply consistent exception handling policies to your data access objects with a single annotation.
  • Invoke Stateless Remote EJBs by defining a single configuration tag.  No more custom service locators or business delegates.
Simplifications continue across the modules of the framework, allowing you to:
  • Write parameterized JDBC queries in one line of code.
  • Apply convention over configuration when deploying your Spring MVC controllers.
  • Use Spring JSP tags to reduce your typing when developing input forms.

A major goal of Spring 2.0 is to make the common tasks easier.  Version 2.0 also opens up exciting new doors for solving the harder problems in an elegant manner.  In 2.0 you may:

  • Weave custom behavior into multiple points of program execution using AspectJ's concise pointcut expression language.
  • Receive asynchronous JMS messages with transactional and thread-safety guarantees.  See it live
  • Develop your own Bean Configuration Dialect for your application.
  • Inject objects from custom scopes such as "request" and "session" scope in a thread-safe manner.
  • Invoke Groovy, Beanshell, and JRuby scripts from your Java application.
  • Schedule tasks to run asynchronously with sophisticated threading and pooling options.

Version 2.0 builds on the foundation set by Spring 1.x.  This new release delivers major new functionality while preserving backwards compatability as far as possible.

With over one million downloads since its release in March 2004, Spring 1.x made developing sophisticated applications from plain Java Objects (POJOs) the de-facto standard.  The 2.x series builds on this widely-recognized best-practice to deliver new simplification and power while preserving full compatiblity with the established Spring 1.x series.  Users can expect their upgrade to be straightforward; in most cases, simply a matter of replacing the 1.2.8 JAR files with those included in Spring 2.0.

Enjoy, and thank you

Spring 2.0 represents the cumulative effort of many over the last year.  From the lead developers Juergen, Rob, Rick, and Costin at Interface21, to our supporting partners BEA and Oracle, to the many in the community contributing innovations, patches, documentation, bug reports, and tests--there is a lot of blood, sweat, and tears here.  We truly hope you find this new version as much a joy to use as it was for us to build.  Enjoy, and rest assured: the work doesn't stop here.


The Spring Team


Additional Resources

  • Attend The Spring Experience 2006, the premier conference for the Spring community, December 7th - 10th in Hollywood, Florida.  Register by October 16th to secure the early bird discount for your team.
  • Track future Spring 2.x development with the Roadmap
  • Bookmark this page for the rollout of additional screencasts and code examples showing the new 2.0 features in action.

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all