After 18 months of development, 6 previews, 29,000 downloads, 3,700 posts by 500 forum users, and 1 book, the first Spring Web Flow 1.0 release candidate is now available
. This release solidifies the 1.0 API which will retain backwards compatibility throughout the 1.x series. The Spring Web Flow team expects one more release candidate before 1.0 final, which should be released in June.
The new and noteworthy elements in 1.0 RC1 include:Improved support for managing stateful business components
. Spring Web Flow now employs several techniques for managing instances of stateful middle-tier components that execute business logic as part of a task execution. In most cases, state management is completely transparent. You simply store your application state in instance variables and Spring Web Flow handles scoping that state within a conversation in a thread safe manner.
This support is illustrated by the simple NumberGuess sample application, where a "Game" component managed by the flow carries out the execution of game business logic. The component itself has zero dependencies on Spring Web Flow APIs.Enhanced support for flow variables, created automatically when a flow starts
. Flow variable values may even be sourced from a backing bean factory, benefiting from full dependeny injection there. The exact scope of the variable is configurable.A new flow execution redirect response type, for redirecting to a unique flow execution URL
. Accessing a flow execution URL refreshes an executing Flow at a previously entered ViewState, allowing continuation from there. The URL remains valid while the conversation is active and the continuation point remains valid. This allows for full use of back, next, refresh, and new window buttons without page caching.Refinements in state exception handling
, with convenient support for "transition executing" state exception handlers. The core transition element now supports a on-exception attribute that drives a transition to a new state on the occurrence of an exception.Improvements in flow attribute mapping support
. Each flow may now be configured with an input-mapper to map input provided by callers that start the flow. A flow may also be configured with an output-mapper to expose return values to callers who terminate the flow. These enhancements allow a flow to be reused as a top-level flow and a subflow without change, as input and output attributes are mapped consistently for both cases.Support for dynamic view name and target state expressions
, allowing for convenient runtime-based calculation of ViewState's logical view name, and a transition's target state, respectively.Enhanced JSF integration
. The JSF integration now supports the logical redirect response types including FlowExecutionRedirect, ConversationRedirect, FlowRedirect, and ExternalRedirect. In addition, enhancements to the FlowPhaseListener allow for a flow execution to be launched and refreshed without having to go through a formal navigation step. 1.0 RC2 is expected to add further JSF convenience and official support with JSF in a Portlet environment.
For additional information including how to get started, see the original springframework.org community announcement