Keith Donald

Alumni
Recent Blog posts by Keith Donald

First Milestone of the Next Generation Version of Spring Web Flow Released

Releases | August 28, 2007 | ...

Dear Spring Community,

We are pleased to announce that the first milestone of the next generation version of Spring Web Flow is now available.  Spring Web Flow 2.0 M1 introduces several major new features, including support for flow-managed persistence contexts, improved support for Java Server Faces, full unified expression language (EL) support, and a more comprehensive sample web application.

 

Spring Web Flow 2.0 is a next generation framework for developing Java web application controllers.  The framework offers a unified runtime for executing stateless and stateful client interactions across a variety of environments.

Goal of the Web Flow 2.0 Release

Today, most application developers use Spring Web Flow to implement linear page flows, such as wizards, by plugging Web Flow into their "base" web framework such as Spring MVC.  Such page flows exhibit linear navigational rules, are stateful, and form dynamic, self-contained modules of web application functionality.  A good example is a loan application process: Web Flow's unique flow definition language provides a natural programming model for implementing these types of processes.

The overall goal of Spring Web Flow 2.0 is to formally take the product from what it is today, a framework used primarily to implement linear wizards, to what it was always designed to become: a universal application controller engine for powering all types of client interactions.  Such interactions include wizards, stateless "RESTful" interactions, and finer-grained, non-linear/asynchronous interactions often present in a "web 2.0" application.

Spring Web Flow 2.0 will provide the Spring community with a unified application controller framework and runtime, suitable for executing all types of client interactions, and capable of integrating a variety of view rendering technologies and UI component models.  This unified runtime will enable consistent application of management instrumentation, security, AJAX, and managed persistence, among other unique features.

View the complete Spring Web Flow 2.0 Roadmap.

Web Flow 2.0 M1 New and Noteworthy

The first 2.0 release milestone introduces several major new features on the road to 2.0 final.  These features are described below. 

Flow Managed Persistence Contexts with JPA and Hibernate

Spring Web Flow 2.0 M1 introduces support for Flow Managed Persistence Contexts with Hibernate and JPA.  The new Hotel Booking Sample application included in the release demonstrates this feature.  Here is how it works in the context of the booking sample:

  • When a new hotel booking flow begins, a persistence context is created for you automatically.
  • As you progress through the flow, the persistence context is used for all data access operations automatically.   You do not have to worry about locating the flow-bound EntityManager instance, or managing it in any way.
  • When you authorize a booking, all changes to managed persistent entities are committed and flushed back to the database automatically.  If you choose to cancel your booking, none of your changes are committed.

The graphical Spring IDE view of this Hotel Booking flow is shown below:

Booking Flow 

Improved Support for Java Server Faces (JSF)

Spring Web Flow 2.0 M1 introduces the Spring Faces module (spring-faces-2.0-m1.jar), a component shipped with the Web Flow distribution that contains first-class support for organizations developing web applications with Java Server Faces.  The pre-existing Web Flow + JSF integration has been factored out to this project, and this project will be the home of all future JSF integration work.

The Spring Faces module provides the Spring community a dedicated project for exploring additional JSF integration opportunities.  The initial work in 2.0 M1 introduces integration with Ext, a popular Javascript GUI widget framework.  Several lightweight JSF UI Components are provided that encapsulate the rendering of rich Ext widgets.  The approach we took allows Ext widgets to decorate standard JSF components, adding a desktop-like look-and-feel and additional UI behaviors such as client-side validation.  The following Ext component decorators are provided in 2.0 M1:

  • A date validator component that performs rich client-side validation on a date text field, with a great-looking date chooser control.
  • A text validator that performs rich client-side validation on a free-form text input field.
  • A number validator that performs rich client-side validation on number text fields.

A screen-shot of the date validator control, also used in the Hotel Booking sample application, is shown below:

 

Ext controls look great, and because all UI behaviors execute client side the responsiveness of the UI is excellent.  We will be adding further support in this area in future Web Flow release milestones, as part of the Spring Faces module.

Having a dedicated Spring Faces module also simplifies the process of setting up Spring Web Flow in a JSF environment.  Before 2.0 M1, developers were required to modify faces-config.xml manually to setup the boilerplate Spring/SWF integration plumbing.  With 2.0 m1, this setup is done for you automatically simply by including spring-faces-2.0-m1.jar in your classpath.

Unified Expression Language (EL) Support

Also new in this release is full support for the Unified EL, which provides an alternative to the OGNL-based expression parser currently used by default in Spring Web Flow.  Use of the unified EL is now recommended for a JSF environment, and will become the default for JSF developers in future milestones.

An example EL expression used within the Hotel Booking flow definition is shown below: 

 

The "id" expression above evaluates the current hotel identifier stored in Flow Scope.  Note how there is no need for any explicit flowScope prefix here.  The developer simply references the variable by its name, and the ELExpressionEvaluator handles resolving the variable by searching through the various scopes.  This makes managed-bean references in Web Flow definitions 100% consistent with references in JSF views used for model binding expressions.  For example, see the following snippet from the bookingForm.xhtml view:

 

2.0 Release Notes

Spring Web Flow 2.0 requires Spring 2.0 or greater and Java 1.4 or greater.

Spring Web Flow 2.0 will retain backwards compatability with the 1.0.x XML-based flow definition language as far as possible.  It is expected that some SWF SPIs will change in future Web Flow 2.x milestones, as Web Flow evolves into a complete controller framework.

Future milestones of Spring Web Flow 2.0 will introduce new dialects for defining flows in real programming languages, providing more powerful alternatives to the current XML-based flow definition syntax.  A POJO-based Java flow definition syntax is in the works, as is a Groovy-based approach.  Also, high-level flow dialects for implementing REST-ful and CRUD flows will be introduced.  Because the Web Flow definition API and execution runtime are separate from any concrete flow definition syntax, we can naturally introduce new syntaxes that engineer application controllers at runtime in different ways.

For JSF users, Spring Web Flow 2.0 and Spring Faces run on JSF 1.1 and JSF 1.2.  The UI component libraries in the Spring Faces module are independent of the Web Flow runtime and may also be used with JSF's default navigation handlers.

Spring Web Flow 2.0 will continue to provide full support for Servlet 2.4 or greater, Portlet 1.0 or greater, and JUnit 3.8.1 or greater environments. 

Spring Web Flow 2.0 will continue to run in Struts 1.2 or greater and Spring MVC 2.0 or greater environments, and will also be usable as a standalone web application controller framework by 2.0 final.

Spring Web Flow Java One 2007 Demo

Engineering | May 18, 2007 | ...

When Sun scheduled my JavaOne 2007 session on Spring Web Flow for Friday, the last day of the conference, I wasn't sure what to expect. I was honored to have been accepted again this year, but I wondered what I would see in terms of attendance presenting on the last day of the 4-day conference.

I could not have been more pleased with how things transpired. When I checked in at speaker setup on Thursday 800 people had pre-registered for my Friday session. Fifteen minutes before my talk was to begin the room had reached that number. In the end, 1000 JavaOne attendees came to room 307-310 of…

What Spring Web Flow Offers JSF Developers

Engineering | April 21, 2007 | ...

Spring Web Flow, much like the Spring Framework itself, is a unique integration technology. Most of our users view it as a generic ApplicationController that can be embedded in any environment. We support Servlet and Portlet based applications, and ship integration with the leading web frameworks Struts, Spring MVC, and Java Server Faces. There are even teams I know of using Spring Web Flow in a Flex environment. In each of these environments, Spring Web Flow integrates to provide a better model for implementing navigation logic and managing application state.

Our users like this because…

Spring Web Flow 1.0.2 Released

Releases | April 11, 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 Web Flow 1.0.1 Released

Releases | 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.

Enjoy!

Keith Donald and Erwin Vervaet
Spring Web Flow Project Leads

What you have to look forward to at The Spring Experience 2006...

Engineering | November 30, 2006 | ...

These shots of our venue were taken yesterday (proximity to places like this is one of the perks of Interface21 having an office in Florida).

 
The Majestic Westin Diplomat
Complete with an infinity pool
A lazy river underneath
On beautiful beach-front property

We are incorporating several of these shots into the main conference banners to be draped from the towering ceilings of the Diplomat. Everything is set for a great show. See you at The Spring Experience next week!

Spring Web Flow 1.0 RC4 Released

Releases | 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">
        <render-actions>
            <bean-action bean="phonebook" method="search">
                <method-arguments>
                    <argument expression="flowScope.searchCriteria"/>          
                </method-arguments>
                <method-result name="results"/>
            </bean-action>
        </render-actions>
        <transition on="newSearch" to="enterCriteria"/>
        <transition on="select" to="browseDetails"/>
    </view-state>

  • (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"/>
        </evaluate-action>
        <transition on="CORRECT" to="showAnswer"/>
        <transition on="*" to="enterGuess"/>
        <transition on-exception="java.lang.NumberFormatException" to="enterGuess"/>
    </action-state>
  • (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"/>
        </transition>
    </action-state>
  • (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"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.springframework.org/schema/webflow
                                           http://www.springframework.org/schema/webflow/spring-webflow-1.0.xsd">
   
        <start-state idref="selectFile"/>
       
        <view-state id="selectFile" view="fileForm">
            <transition on="submit" to="uploadFile"/>
        </view-state>
   
        <action-state id="uploadFile">
            <action bean="uploadAction" method="uploadFile"/>
            <transition on="success" to="selectFile">
                <set attribute="fileUploaded" scope="flash" value="true"/>
            </transition>
        </action-state>
       
    </flow>
  • (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:execution-attributes>
            <flow:alwaysRedirectOnPause value="false"/>
        </flow:execution-attributes>
    </flow:executor>
  • (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"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:flow="http://www.springframework.org/schema/webflow-config"
           xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/webflow-config
               http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">
   
        <!-- 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"/>
        </flow:registry>
       
    </beans>

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.

Enjoy!

The Spring Web Flow Team

Experience Spring in December in Hollywood, Florida

Engineering | August 03, 2006 | ...

Over the last month Jay Zimmerman and I have been working hard planning The Spring Experience 2006 (TSE). Creating a first-class technical conference is no easy task--it takes hour upon hours to arrive at the perfect mix of speakers and content.

I am proud to say we are now ready to roll with an unprecedented event. Check it out:

The Spring Experience 2006

I hope to see you there. Here is what I believe sets this show apart:
  • 55 ninety-minute sessions across 5 tracks over 3-full days, all at a five-star beach resort.
  • Exclusive premium technical content on Spring 2.0. Half of the sessions are led by core Spring developers who apply the latest Spring capabilities inside and out. This includes Rod Johnson, Juergen Hoeller, Adrian Colyer, Rob Harrop, Colin Sampaleanu, Ben Alex, Arjen Poutsma, Erwin Vervaet, and yours truly.
  • Cutting edge sessions from leading Java software innovators. This includes Jeff McCaffer, lead of the Eclipse RCP and Equinox projects; Guilluame LaForge, Groovy project lead; Eamonn McManus, JMX Lead; Patrick Linskey, BEA Kodo JPA lead, and Mike Keith, lead of the Java Persistence Architecture (JPA).
  • Privileged access to synced-audio slideshows for all sessions following the show, so you don't miss a beat.
  • Full-course breakfast, lunch, and dinner included with registration.
  • "Meet the Gurus" user BOFs. A great opportunity for Spring users to interact with Spring project leads.
  • Two kick ass parties, one Friday night, and a Saturday afternoon party on the beach complete with a Spring users vs. developers volleyball game.
  • Cool conference schwag. And lots of it. Registered experiencers' receive an all access conference pass, a custom (and very cool) TSE laptop bag, a custom-designed notebook binder, a limited-edition TSE 2006 shirt, and even an official TSE 2006 beach towel. You'll have chances to win an iPod and XBox 360.
  • Diversity. Whether you are a hard core enterprise developer, a web application developer, or a leading software architect, this conference has something for you. Last year's show brought 250 people from 20 countries. This year we expect 500 attendees from over 25. It's going to be a lot of fun, and a great learning and networking opportunity.
There is no better place to be than Hollywood, Florida in December. See you and your team at The Spring Experience 2006!

Welcome to the Interface21 Team Blog

Engineering | July 07, 2006 | ...

As Interface21 grows as a global company one thing has become more and more clear to me everyday:

we really have some damn talented, highly motivated leaders who have a lot to say on both business and technology.
Having said that, one of the things we want to do is give our people a convenient, easily accessible channel to share their insights, experiences, ideas, and innovations. And after a little hard work behind the scenes, I think we are there. Welcome to the Interface21 Team Blog.

Here you will gain insight into what's going on at i21, from what we're working on, to what problems we're solving, to where we're going, to what we've learned along the way. You'll see a lot of diversity, as our company is doing a lot of things, from leading the development of the Spring Framework and the Spring family of products to expanding operations in five major international markets.

This entire blog is subscribable via RSS. In addition, you can follow your favorites by subscribing to…

Spring Web Flow 1.0 RC3 Released

Releases | June 26, 2006 | ...
 

Dear Spring Community,

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

This stable release contains bug fixes and minor improvements.   At this time we expect this to be the last release candidate before Spring Web Flow 1.0 final, which is just around the corner.  The noteworthy include...

NOTEWORTHY IMPROVEMENTS

Improved flow exception hierarchy.  Overall the exception hierarchy now more clearly organizes the categories of failure from flow definition access (FlowLocatorException) to runtime flow execution (FlowExecutionException) and execution persistence (FlowExecutionRepositoryException).

 

Improved support for BACK button use within a Portlet environment.  Combined with a continuation-based repository SWF supports full use of browser navigational buttons (back, refresh) within a Portlet environment while the flow remains active.  When a flow execution terminates a browser refresh will trigger a new execution to be launched automatically.

Simpler default JSF view mapping.  Now by default SWF view names are expected to correspond to JSF view ids exactly. You'll see this default in play within the sellitem-jsf sample--note how views are referenced like "/priceAndItemCountForm.jsp" like a standard JSF navigation handler.  This allows natural support for other JSF view technologies such as Facelets and is a more natural default for JSF developers.  If you require a custom mapping SWF to JSF view mapping, plug a custom ViewIdMapper into your FlowPhaseListener.

Sample application simplifications.  We've simplified the fileupload, flowlauncher, birthdate, and sellitem samples to take advantage of the latest features and best practices of Spring Web Flow.

POTENTIAL USER AFFECTING CHANGES

With 1.0 RC3 there are a few potential user-affecting changes on the road to 1.0 final.  The following section notes them:

The FormAction property "validateUsingValidatorMethod" was removed for simplicity.  Experience has shown this property to be a source of confusion for new users.  As a better alternative, to execute a data binding operation without validation simply invoke the "bind" action method from your flow definition.  When you require piecemeal Validator validation, simply invoke "bindAndValidate" or "validate" with the "validatorMethod" attribute set to the specific validator method.  See sellitem for an example.

StateExceptionHandler was renamed "FlowExecutionExceptionHandler". This affects custom handler implementations.  To upgrade, simply implement the new interface; the signature is logically the same.

FlowExecutorImpl's "redirectOnPause" attribute now accepts a boolean value instead of a RedirectType enum.  There is only one redirect type in SWF as of 1.0 RC2--the flow execution redirect.  Setting this flag to 'true' triggers it each time a flow execution pauses by entering a view state.  See Numberguess or sellitem for an example.
--------

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 1.0 RC3 release, each demonstrating a 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, conversational scope, 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 (thanks to Steven Devijver)
6. NumberGuess - demonstrates stateful beans and "single key" flow execution redirects.
7. Birthdate - demonstrates Struts integration
8. Fileupload - demonstrates multipart file upload
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

Enjoy!

The Spring Web Flow Team

Keith Donald
Erwin Vervaet
Juergen Hoeller
Colin Sampaleanu
Rob Harrop

Get ahead

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

Learn more

Get support

Tanzu Spring 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