The Spring Blog

Engineering
Releases
News and Events

Spring Web Flow 1.0

 

Product Leads
Keith Donald, SpringSource
Erwin Vervaet, Ervacon
 
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 that are runnable in any environment.  The framework delivers improved productivity and testability while providing a strong solution to enforcing navigation rules and managing application state.  

The Big Picture

Spring Web Flow allows developers to build reusable, self-contained controller modules called flows. A flow defines a user dialog that responds to user events to drive the execution of application code to complete a business goal.  Consider this graphical view of a flow definition that carries out a search process with the user:
Seach Flow 
Flows such as the one above are defined declaratively using a rich domain-specific language (DSL).  The XML (XSD) form of this language is the most popular with users.  Once defined, a flow is testable in isolation, may be embedded within other flows as a subflow, and may be deployed for execution across multiple environments including Java EE Servlet and Portlet (JSR 168) without change.

Product Highlights

Spring Web Flow contains a number of innovative features that are popular with our users. These include the ability to:
  • Define all controller logic for an application task, such as a search process, in one place, instead of scattering that logic across many places.
  • Compose flows together to create rich controller modules from simple parts.
  • Enforce strict user navigation rules with a natural, object-oriented linear programming model and without coding verbose if/else blocks.
  • Have memory you allocate during flow execution automatically clean itself up when execution ends or expires.
  • Deploy a flow for execution in a Servlet environment using your base web framework of choice.  Spring Web Flow ships convenient integration with leading web frameworks Struts, Spring MVC, and Java Server Faces.
  • Change Web frameworks, going from Struts to Spring MVC for example, without changing your flow definitions.
  • Change environments all together, going from JUnit test to Portlet for example, without changing your flow definitions.
  • Evolve your application’s navigation rules on-the-fly at development time without a container restart.
  • Receive automatic browser button support (back, forward, refresh) with no custom coding.
  • Store task data in any of four managed scopes: request, flash, flow, and conversation; each with their own distinct semantics.
  • Test flows in isolation without the container.  Ensure your application control logic works before you deploy.
  • Visualize and edit your flow navigation logic graphically with Spring IDE 2.0.

Getting Started

The best way to get started with Spring Web Flow is read Erwin’s practical introduction and to walk through 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 demonstrating a distinct set of features.  The 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
  11. Booking-Faces - a more comprehensive Spring Web Flow + JSF application.
All sample projects are Spring IDE projects directly importable into Eclipse as "Dynamic Web Projects" that can also be deployed inside the Eclipse IDE with Eclipse Web Tools.
 
For in-depth and thorough coverage of the entire Spring Web Flow feature set, your best bet is to read Working with Spring Web Flow.

Current Release Notes

  • Spring Web Flow 1.0.x is proven software fit for production use.
  • Spring Web Flow runs on Java SE 1.3 or greater, and Java EE 1.3 (Servlet 2.3, Portlet 1.0) or greater.  Spring Web Flow runs on all major application server platforms.
  • Spring 1.2.7 or greater is required for the Spring 1.x series, Spring 2.0 or > is required for the Spring 2.x series.
  • Struts Classic (1.2.9), Spring MVC, and JSF integration is shipped out-of-the-box.
  • The 1.0 release signifies that public API and XSD backwards compatability will be preserved throughout the 1.x series.

Upcoming Release Notes

  • Spring Web Flow 2.0 is the next major release of the framework, focusing on enhanced integration and ease-of-use.
  • Spring Web Flow 2.0 final is due out in April of 2008.

Community

  • Join our forums for lively discussions about Spring Web Flow usage and architecture.  This is the best way to get involved in the Web Flow community.

Essential Resources

Read more...

Spring Web Flow 1.0 RC2 Released


 

Dear Spring Community,

We are pleased to announce that Spring Web Flow (SWF) 1.0 RC2 (Release Candidate 2) has been released.  Download | Documentation | Changelog

This release contains bug fixes and minor improvements.   The new and noteworthy of 1.0 RC2 include…

NEW AND NOTEWORTHY

Support for passing newly launched flow executions input from their calling environment in a configurable manner.  By default all request parameters are exposed as input.  The flow may then choose to map this input into its own local scope using its input mapper.  This mapper defines the input contract for the flow which is consistent regardless of whether the flow is started as a top-level flow  or as a subflow.

Read more...

Spring IDE 1.3.1 Released

Dear Spring Community,

We are pleased to announce that Spring IDE 1.3.1 has been released.

This release of Spring IDE provides a bunch of bugfixes. For a complete list visit http://springide.org/project/milestone/Release%201.3.1

Changes:

  • Now Web Tools is only required if you want to use the BeansXmlEditor
  • Fixed resource leak in image caching
  • Updated to Spring 1.2.8

More details are available from the project’s site http://springide.org/

Use Eclipse’s update manager to install this release from the project’s update site http://springide.org/updatesite/

For bug reports tickets can be opened via http://springide.org/project/newticket

Read more...

Acegi Security 1.0.0 is released

After more than two and a half years of development, I am delighted to announce that Acegi Security 1.0.0 is now officially released.

Download | Documentation | Changelog 

In addition to more than 80 improvements and fixes since 1.0.0 RC2, this new release includes several changes to help new users. This entails a significant restructure and expansion of the reference guide (now at more than 90 pages) and a new "bare bones" tutorial sample application.

Furthermore, many of the frequently-identified problems experienced by new users have been addressed, such as:

Read more...

Spring Framework 1.2.8 Released

Dear Spring community,

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

This is a maintenance release, fixing a number of issues found in previous 1.2.x releases. Most of these fixes have been backported from 2.0 M4, so have already been available there. Please see the changelog for details.

Juergen
—–
Juergen Hoeller
Lead, Spring Framework Development
Chief Architect, Interface21
http://www.springframework.org
http://www.interface21.com

Read more...

Spring Web Flow 1.0 RC1 Released

Spring Web Flow Logo

Dear Spring Community,

We are very pleased to announce that Spring Web Flow (SWF) 1.0 RC1 (Release Candidate 1) has been released.  Download it.

After over a year of hard development work, 29,000 downloads, 3,700 posts by 500 forum users, one book, and numerous community-driven articles, this release delivers the first 1.0 release candidate of Spring Web Flow.  Considered fit for production use, this release solidifies the 1.0 API which will remain backward compatible throughout the entire 1.x series.

Read more...

Spring IDE 1.3 Released

Dear Spring Community,

We are pleased to announce that Spring IDE 1.3 has been released.

This release of Spring IDE provides some new features
and a bunch of bugfixes. For a complete list visit http://springide.org/project/milestone/Release%201.3


Changes:


Read more...

Spring Framework 2.0 M4 Released

Dear Spring community,

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

Spring 2.0 M4 is the fourth milestone of the next generation of Spring.

The new and noteworthy include:

  • updated JPA support
  • named parameter support for JDBC acces
  • refined XML schema namespaces
  • auto-proxying for FactoryBean-created objects
  • and many other refinements noted in the changelog.

This release also contains numerous fixes for issues discovered since M3.  Users of previous milestones are encouraged to update.  See the changelog for details on all M4 changes.

With this release we are approaching a feature freeze for the 2.0 production target, with only a few further features and refinements planned for inclusion in 2.0. The next release will be Spring 2.0 Release Candidate 1 (RC1), scheduled for May.

We will also release a 1.2.8 maintenance release within a few days, backporting all applicable fixes from 2.0 M4. (This is already available from mbranch-1-2 in CVS, awaiting final tests.)

Enjoy and keep the feedback rolling in,

Juergen
—–
Juergen Hoeller
Lead, Spring Framework Development
Chief Architect, Interface21
http://www.springframework.org
http://www.interface21.com

Read more...

Acegi Security System for Spring 1.0.0-RC2 Released

Acegi Security System for Spring, v1.0.0 RC2 has now been release. Ben Alex’s announcement from the mailing list is posted below:

—–

Dear Spring Community

I’m pleased to announce that Acegi Security release 1.0.0 Release Candidate 2 is now available. This release includes over 50 improvements and fixes since 1.0.0 RC1, including comprehensive new LDAP capabilities. We recommend that users upgrade to 1.0.0 RC2 in order to take advantage of these improvements. Upgrading to 1.0.0 will also assist us in identifying any issues as we move towards our final 1.0.0 release.

Please visit the changelog for detailed information on changes and fixes. As always, detailed upgrade instructions are included in the release ZIP file.

The project’s web site at http://acegisecurity.org provides additional information on Acegi Security’s features, access to online documentation, and links to download the latest release.

We hope you find this new release useful in your projects.

Cheers
Ben

Read more...

Spring Framework 2.0 M2 released

Dear Spring community,

I am pleased to announce that Spring 2.0 M2 has been released.

Download it here.

Spring 2.0 M2 is the second milestone of the next generation of Spring. This release includes enhancements and new features, including refined AspectJ support and Java Persistence API (draft) support.  It also contains fixes for issues discovered since 2.0 M1.

Please see the changelog for details.

Spring 1.2.7 will also be released shortly, backporting a number of fixes and minor enhancements from 2.0 M1/M2, and providing the 1.2 series basis for the upcoming Spring Web Flow 1.0 release candidate.  The next Spring release in the 2.0 series will be 2.0 M3. Please review the roadmap for more detailed information.

Cheers,

Juergen
 
—–
Juergen Hoeller
Interface21 Ltd
http://www.springframework.com

Read more...