SPRING WEB FLOW CHANGELOG ========================= http://www.springframework.org/webflow Changes in version 2.4.0.RELEASE ----------------------------------------------- Save Web Flow output variables to Spring MVC Flash scope Support JSR303 Validation Groups for Webflow View States Refactor code assuming Java 5 minimum Upgrade code for JSF 2 minimum requirement Add support for partial state saving with MyFaces Upgrade portlet support to JSF 2.0 Upgrade to Spring Framework 3.2.1 Upgrade to Spring Security 3.1.3 Upgrade Test Dependencies Switch to Gradle build and SpringSource Artifactory repository Create samples repository on Github http://githib.com/SpringSource/spring-webflow-samples Make ConversationManagers easier to subclass Add "/rfRes/**" resource handling mapping for RichFaces integration SerializableListDataModel should extend ListDataModel for primefaces sorting support Provide setter to modify redirect status code in FlowHandlerAdapter Skip DataModel iteration when delivering PostRestoreStateEvent Add additional inherited constructor to FacesConversionService Make tag work with Web Flow Fix issue with Fileupload and Richfaces 4.0.0 Final Prevent NPE in Mojarra when creating initial view pdf documentation doesn't contain images Replace ${...} with #{...} in expression examples in Flow XSD JsfManagedBeanPropertyAccessor causes early release of FacesContext ScopeSearchingPropertyAccessor cause NPE Incorrect MaxHeapSize value in gradlew.bat and build.gradle Composite components displayed at bottom of page after clicking commandLink Portlet FlowHandlerAdapter config samlpe incorrect in Chapter 14 Changes in version 2.3.1.RELEASE (Mar 27, 2012) ----------------------------------------------- Upgrade Spring to version 3.1.1 Upgrade JSF Mojarra version to 2.1.7 Modify Jsf2FlowFacesContext.isValidationFailed() to check Web Flow's MessageContext for errors Recognize class-level bean validation messages in BindingResult.getGlobalErrors() Ensure "embedded" mode is flow session local, i.e. specific to a specific flow or subflow Allow JSF view root to survive redirect in same state (following fix in JSF Mojarra 2.1) Ensure PostRestoreStateEvent is delivered to registered listeners Upgrade booking-faces sample to use PrimeFaces 3.1.1 Fix NullPointerException in FlowViewStateManager when not in a flow request Move source code to http://github.com/SpringSource/spring-webflow Modify FlowPartialViewContext to return a modifiable List to comply with its contract Check request parameter in addition to request header to recognize JSF 2 Ajax requests. Changes in version 2.3.0.RELEASE (Feb 28, 2011) ----------------------------------------------- [SWF-360] - Flow managed persistence context propagation [SWF-1415] - Provide support for Portlet 2.0 resource requests [SWF-1419] - Add support for JSR-303 (Bean Validation) style validation [SWF-1424] - Support partial rendering through the "render" action with JSF 2 and PrimeFaces [SWF-759] - Add ability to inject Custom ConversationManager and FlowExecutionRepository in Webflow 2.0.1 [SWF-991] - Make client-side redirect behavior configurable for Ajax requests [SWF-1413] - Provide configuration option for whether redirect after POST should occur after server-side validation error [SWF-1414] - Simplify process for getting up and running with the samples [SWF-880] - Update Web Flow Samples on richweb.springframework.org [SWF-1408] - Replace use of persistence-context by default in Web Flow samples [SWF-1447] - Update documentation for 2.3.0 release [SWF-1434] - Use Maven central dependencies in Web Flow samples [SWF-1435] - Add top-level pom.xml and settings.xml for verifying Maven settings [SWF-1446] - Make it easy to install Maven-central compatible Web Flow artifacts locally [SWF-1127] - ValidationHelper should make use of Validator.supports method [SWF-1247] - MessageContextErrors ResolveMessageCodes [SWF-1421] - dojo.require may not have sufficient time to load under some circumstances [SWF-1426] - PrimeFaces' commandButton does not work on view transition in Internet Explorer. [SWF-1432] - JsfAjaxHandler does not set content type when sending a partial response with a redirect instruction [SWF-1437] - Two concurrent threads in an expression of a flow override the rootobject of evaluation context Changes in version 2.2.1.RELEASE (Oct 28, 2010) ----------------------------------------------- [SWF-1406] - Regression in showing global messages only [SWF-1407] - Webflow 2.2 problem when using MVC view resolver [SWF-1159] - SQL injection in example application [SWF-1411] - Documentation for JSF integration references deprecated ResourceServlet [SWF-1409] - Reference Documentation for Spring Web Flow 2.2 needs to be fixed to correct versions Changes in version 2.2.0.RELEASE (Oct 11, 2010) ----------------------------------------------- [SWF-1374] - Update documentation for 2.2.0 release [SWF-1382] - Clarify documentation in regards to file upload support. [SWF-1404] - Deprecate the ResourcesServlet [SWF-1271] - datePattern attribute not honored in Spring JS decorator for Dojo DateTextBox [SWF-1402] - FlowViewResponseStateManager should call delegate isPostback() Changes in version 2.2.0.RC1 (Sep 22, 2010) ------------------------------------------- [SWF-1333] - Spring security tag support for JSF/Facelets [SWF-1368] - Build the Web Flow booking reference application with PrimeFaces components [SWF-1379] - Provide support for Portlet API 2.0 and JSF 1.2 [SWF-1386] - Split org.springframework.js-[version].jar into two artifacts [SWF-1387] - Upgrade to dojo 1.5.0 and include dojox [SWF-1375] - Provide custom namespace element(s) to simplify configuration for JSF 2 [SWF-1373] - Upgrade to Spring 3.0.4 and update the booking-mvc sample [SWF-1376] - Handle missing spring headers for ajax redirect [SWF-1388] - Move client-side resources (.js, .css) to META-INF/web-resources instead of META-INF [SWF-1381] - FlowExecutionImpl: handleException ignores result of another handleException [SWF-1383] - Spring Faces throws NPE when writing flow state [SWF-1385] - servletRelative redirects don't work with default-servlet-handler [SWF-1389] - MessageContextErrors doesn't obey the Errors contract [SWF-1378] - org.springframework.faces.webflow.FlowResourceResolver incompatible with JSF 1.2 Changes in version 2.2.0.M1 (Aug 5, 2010) ----------------------------------------- [SWF-1365] - Add support for partial state saving in JSF 2 [SWF-1366] - Add support for handling JSF 2 resource requests [SWF-1367] - Add support for JSF 2 Ajax requests [SWF-1313] - and : "disabled" attribute not working [SWF-1364] - Changelog version typo Changes in version 2.1.1.RELEASE (July 19, 2010) ------------------------------------------------ * Extract JSF 2 methods from FlowApplication into Jsf2FlowApplication (SWF-1261). * Fix handling of cascaded attributes in AjaxTilesView (SWF-1053). * Document DataModel implementations (SWF-1358) * Remove Dojo files from svn and replace with script to put together custom Dojo build (SWF-1362). * Remove compressed Spring.js and Spring-Dojo.js files from svn and compress during the build (SWF-1363). * Minor JavaScript fixes (SWF-1268, SWF-1358). Changes in version 2.1.0.RELEASE (June 17, 2010) ------------------------------------------------ * Upgrade to Spring 3.0.3 * Fix version of JSF in pom.xml of samples to 2.0 Changes in version 2.1.0 RC1 (June 3, 2010) ------------------------------------------- * Update documentation for all Web Flow 2.1 related changes. * More changes towards providing initial support for JSF 2. * JSF 2 related sample updates. * Add ivy configurations allowing booking-faces to be recompiled with Mojarra and MyFaces 2 and 1.2. Changes in version 2.1.0 M2 (May 18, 2010) ------------------------------------------- * Add support for running with JSF 2.0 (SWF-1194) * Fix issue with rendering multiple fragments via Tiles during an Ajax request (SWF-1238) * Open several methods in AbstractMvcView for extension (SWF-1218) * Fix issue occurring with MyFaces 2.0 Changes in version 2.1.0 M1 (May 7, 2010) ----------------------------------------- * Upgrade to Spring Framework 3.0.2, Portlet API 2.0.1, and Tiles 2.1.2 (SWF-1226) * Upgrade to Spring Security 3.0.2 (SWF-1182) * Add support for cascaded attributes in AjaxTilesView (SWF-1053) * Switch to Spring EL as the default expression parser implementation in Web Flow (SWF-1136) * Integrate Spring type conversion and formatting (SWF-1234) * Update samples as reference apps for Web Flow on Spring 3 (SWF-1219) Changes in version 2.0.9 (Apr 14, 2010) --------------------------------------- * ViewState now ignores case where 'model' expression fails to evaluate (SWF-1176) * Added calls to lock/unlock the coversation when a flow execution is launched (SWF-1213) * Added serialization methods to FlowFacesMessageAdapter as workaround for issue in MyFaces (SWF-1187) * Prevented the wrapping of a converter with ObjectToCollection in cases where the targetClass of the converter is already a collection (SWF-1229) * Upgraded to Dojo 1.2.4 containing security fixes. Changes in version 2.0.8 (2009.08.06) ------------------------------------- Bug Fixes * Corrected the order of "expected" and "actual" arguments in AbstractFlowExecutionTests.assertFlowExecutionOutcomeEquals (SWF-1021) * Corrected the handling of flow definition redirects when using FilenameFlowUrlHandler (SWF-1027) * Fixed incompatibility with JSF 1.1 in JsfView by calling ViewStateManager.saveSerializedView instead of ViewStateManager.saveView (SWF-1112) * Fixed bug where serialization errors could occur during session replication due to ViewActionStateHolder and ViewRootHolder not being Serializable (SWF-1114) * Fixed incompatibility between Spring Faces AjaxViewRoot and RichFaces (SWF-1115) * Fixed bug with binding to Maps when using Spring Bean Binding mode (SWF-1132) * Updated JsfView to use a more reliable method of detecting a post-back when using JSF 1.2+ (SWF-1133) * Fixed bug causing NPE in FlowHandlerAdapter.sendFlowDefinitionRedirect when flowRedirect did not have parameters appended to it (SWF-1144) * Fixed bug in the convention-based validator invocation routine to correctly handle using sub-types as method arguments (SWF-1146) * Corrected some minor issues in the documentation (SWF-1121, SWF-1125) Improvements * Added an example to the documentation of how to handle a file upload with Web Flow (SWF-1113) * Added some info on custom AjaxHandler implementations to the documentation (SWF-1160) * Removed an unnecessary extra invocation of the JSF state saving routine when redirects are disabled (SWF-1162) Changes in version 2.0.7 (2009.04.17) ------------------------------------- Bug Fixes * Fixed several issues with WebFlowMessageCodesResolver algorithm, including a JDK 1.4 compatibility issue (SWF-1064) * Fixed bug in Spring Faces custom ListDataModel implementations related to row selection tracking (SWF-1066) * Fixed bug where subclasses of FacesMessage we do not control could introduce dependencies on JSF-specific services outside of Web Flow's control (SWF-1073) This specifically caused problems with Rich Faces 3.3.0's messages component, which adds a LabeledFacesMessage that requires a FacesContext to be serialized. * Fixed bug where a FlowExecution's flashScope and MessageContext were not cleared when a user had already completed a render response (SWF-1089). * Fixed bug where FlowHandlerMapping was not querying parent flow registries when determining if a flow should handle the current request (SWF-1095). * Fixed bug where flow was not redirecting after ViewState bind/validation error when not an Ajax request and redirectOnPause was set to true (SWF-1096). * Fixed bug where parent Model list could be shared by child in flow definition inheritance algorithm (SWF-1094). * Fixed bug where AjaxTilesView was not checking the AttributeType to determine potentially renderable Tiles Attributes (SWF-1092). * Made FlowExecutionSnapshotGroup public for serialization reasons * Fixed bug where a flow execution snapshot id was not always incremented, which could lead to collisions between multiple windows sharing the same execution (SWF-1098). * Fixed bug where updating ViewState history could result in exceptions if no flow execution key was assigned or no snapshot had been taken (SWF-1099). * Fixed bug where ExternalContext.getFlowExecutionUrl method was not encoding execution URL for rendering by views * Fixed bugs where FlowHandlerAdapter was not encoding flow definition URLs in its default flow outcome and exception handler routines Improvements * Added userEventQueued and getUserEventState methods to View SPI, which simplified ViewState and View object interaction. Custom View implementations will need to be updated to implement these new operations. See View's API JavaDocs and ViewState's doEnter and resume implementations. * Added saveState method to View SPI, allowing stateful views to save out their component state to support going back after exiting a ViewState with history preserved. Required by Spring Faces for stateful JSF views. * Added org.springframework.webflow dm Server library definition for use in a dm Server deployment environment (SWF-1067) * Strengthened contract for response-related methods in ExternalContext. Specifically, calling any of the requestRedirect methods also now completes the response. If you attempt to complete a response more than once against an ExternalContext, an IllegalStateException is thrown. * Documented how to obtain Web Flow development branch snapshots using Maven, for both Maven Central compatible usage and SpringSource Enterprise Bundle Repository usage. * Updated OSGi Manifest imports to allow Web Flow 2.0.7 to work with Spring Framework 3.0.x in a OSGi environment Changes in version 2.0.6 (2009.03.12) ------------------------------------- General * Changed Maven artifact ids for the org.springframework.webflow projects to be consistent with other Spring artifacts published to Maven Central (SWF-993). This change was made to prevent conflicts when resolving artifacts from both Maven Central and the OSGi-ready SpringSource Bundle Repository. NOTE: this change will require an artifact-id update as well as a version update to your poms that obtain Spring Web Flow artifacts from Maven Central. See the reference documentation for updated instructions on obtaining web flow artifacts from Maven Central. Bug Fixes * Fixed bug where ViewState and EndState still sent a response even if another artifact, such as an Action, handled the response by marking ExternalContext.setResponseComplete() (SWF-1061) * Fixed bug where FlowHandlerMapping could not handle null flow id scenarios (SWF-968) * Fixed bug where flow ids were not properly generated when loading flow resources using classpath*: notation (SWF-988, SWF-992) * Fixed bug where file extension was left off URLs generated by Web Flow when servlet mapping was extension-based e.g. *.htm (SWF-988) * Fixed bug where Web Flow upgrader tool did not properly output end-state 'output' elements (SWF-969) * Fixed bug where String to Enum conversions failed to work in conjunction with BeanWrapperExpressionParser, enabled when setting "useSpringBinding" flag on a MvcViewFactoryCreator to true (SWF-1005). * Fixed bug where Collection and Array property bindings did not work with custom converters (SWF-984) * Fixed bug where form:checkbox and form:checkboxes tags did not apply type conversion properly in views rendered by Web Flows (SWF-986) * Fixed bug where Errors nestedPath attribute was not respected in views rendered by Web Flow (SWF-973) * Fixed bug where Errors nestedPath attribute was not respected when using Errors API programatically within a Validator called by Web Flow (SWF-973) * Made MessageCodesResolver pluggable on MvcViewFactoryCreator; configure a DefaultMessageCodesResolver to resolve error message codes consistent with default Spring MVC behavior (SWF-977) * Made FlowHandlerAdapter#sendRedirect method protected, allowing overriding of web flow system redirect behavior; for example, to redirect to a SSL channel. * Made DefaultFlowUrlHandler consistent with Spring MVC RedirectView behavior for URL encoding of flow URL parameters; URL encoding scheme is also now pluggable. * Introduced createDefaultFlowHandler hook in FlowHandlerMapping, allowing for customizing the Default FlowHandler implementation application wide (SWF-994) * Fixed bug where Hibernate and JPA flow execution listeners performed their commits against the flow-managed PersistenceContext after the flow had ended (SWF-1010). This prevented exceptions such as optimistic locking failures from being handled by the flow. Commit processing is now performed in the sessionEnding listener callback now, which is called before the flow actually terminates. * Fixed bug where root flow FlowExecutionExceptionHandlers were queried even when a FlowExecution was not active (SWF-1004). This could occur during FlowExecution startup before the root session had been activated. Specifically, this caused problems when handling AccessDeniedExceptions thrown by the SecurityFlowExecutionListener, which uses the sessionCreated FlowExecutionListener callback to perform a flow startup security check. Before root session activation, a FlowExecution is NOT active, and any exceptions thrown at this time should propagate; root flow execution handlers should not be allowed to handle these exceptions. Improvements * Improved FlowExecution test documentation * Improved FlowExecutionExceptionHandler API documentation * Added documentation on streaming actions Changes in version 2.0.5 (14.11.2008) ------------------------------------- Bug Fixes * Fixed compatibility issue introduced in Web Flow 2.0.4 with previous 2.0.x versions related to request -> flow id mapping. The existing FlowController now applies the previous behavior of "filename-based" request-> flow mapping (see FilenameFlowUrlHandler); for example /hotels/booking URL -> "booking" flow. The new FlowHandlerAdapter used in conjunction with FlowHandlerMapping now applies the new "path-based" request -> flow mapping (see DefaultFlowUrlHandler) ; for example /hotels/booking URL -> "hotels/booking" flow. Use of FlowHandlerAdapter with FlowHandlerMapping and the default path-based mapping (DefaultFlowUrlHandler) is recommended (SWF-939). * Fixed bug introduced in 2.0.4 that broke rendering of multiple view fragments with Tiles (SWF-941). * Render 'fragments' request parameter values are now trimmed consistent with the Web Flow render fragments parameter (SWF-947). * Fixed bug in which model validation never ran if there were data binding errors in Spring MVC-based views. This was inconsistent with previous behavior in Spring MVC's SimpleFormController and in Spring Web Flow 1.0.x, and caused usability concerns. Validation always runs after binding now unless suppressed by a transition (validate=false) or the 'validateOnBindingErrors' flow execution attribute (SWF-949). * Fixed bug where model data binding results were lost after ActionRequest processing in a Portlet environment. This prevented invalid user input values from being rendered correctly when a form re-rendered in the next RenderRequest. Data binding results are now preserved correctly across the Action->Render cycle so all original user input values are preserved (SWF-953). * Fixed bug that prevented a new flow execution snapshot from being taken when entering the same view-state again in the current request. This lead to undesirable back-button behavior, particularly when a flow was called recursively as a subflow. Now a new snapshot is always taken when entering a ViewState, consistent with Web Flow 1.0.x behavior. When no new snapshot is desired, for example, in the case of processing an Ajax event that does not transition the view, do not leave the current state; rather, simply execute actions to handle the event and use 'render' to request re-rendering of parts of the page. * Fixed bug where POJO action methods returning an empty string resulted in an IllegalArgumentException being thrown (SWF-739). * Fixed bug where base-path required a trailing slash in conjunction with flow-location entries (SWF-948). Improvements * Added additional console logging to help debug Spring JavaScript decoration behaviors (SWF-937). * Improved documentation in the area of flow exception handling and security (SWF-922, SWF-944). * Improved logging in the area of view processing, including view rendering, model binding, and model validation. * The model validation invoker will now invoke a default validate(ValidationContext) or validate(Errors) method if present (SWF-666). * It is now possible to use a Errors object anywhere you can use a ValidationContext, for compatibility with existing Spring MVC code (SWF-957). Changes in version 2.0.4 (04.11.2008) ------------------------------------- New Features * Added FlowHandlerMapping for use with FlowHandlerAdapter, simplifying the process of mapping web requests to registered flow definitions. This HandlerMapping strategy maps the path of a request to a registered flow id; for example, a path of '/hotels/booking' would match the flow with id 'hotels/booking'. If no mapping is found, null is returned and the next HandlerMapping in the DispatcherServlet mapping chain will be queried. We recommend use of FlowHandlerMapping and FlowHandlerAdapter over FlowController going forward. See the Spring Travel booking-mvc or booking-faces samples for an example. * A flow-registry configuration may now define a base resource path for flow definitions, for example, /WEB-INF. All flow locations are then defined relative to that path, for example /hotels/booking/booking.xml Often used in conjunction with a flow-location-pattern, such as /**/*-flow.xml. When a base path is defined, a flow id is calculated by extracting the directory path to the flow definition; for example, a flow located at /WEB-INF/hotels/booking/booking.xml would be assigned id "hotels/booking" by default. (SWF-909) * Added a 'development' flag to the flow-builder-services element allowing switching on a "development mode". In development mode, flow definition and message bundle changes are refreshed automatically. (SWF-846) Development mode is off (false) by default. * Added a ValidationContext to pass to validation methods, as an alternative to MessageContext. This new ValidationContext provides access to the MessageContext as well as additional user information. Allows for conditional validation by user event / user principal. (SWF-735) * Added a "with-dependencies" distribution, allowing Web Flow and its sample applications to be built off-line. This is particularly useful for building Web Flow in corporate environments behind a firewall, where access to the SpringSource Enterprise Bundle Repository may be restricted. * Added Maven POMs to the sample applications, allowing the samples to also be built using Maven. Improvements * Upgraded to Spring Framework 2.5.6 * Upgraded to Dojo 1.2 (SWF-883) * The ResourceServlet is now more configurable (SWF-566, SWF-921) * The default ConversionService now supports string-to-Java 5 enum conversion (SWF-827, SWF-834, SWF-911) * Validate all decorations for Ajax forms are now simpler to define (SWF-853) * A Dojo date text box now uses a locale specific date format when gracefully degrading (SWF-844) * Added numerous improvements to the reference guide documentation Bug Fixes * Fixed bug where a registered ConversionService was not auto-wired with the default ExpressionParser implementation. This prevented user-installed type converters from being applied without explicit configuration. * Fixed bugs limiting compatibility with IE 6 for Spring Faces and Spring JS (SWF-786, SWF-770) * Global transitions can now be merged for flow inheritance (SWF-733) * Transitions on-exception will now match exceptions thrown from an OGNL expression. (SWF-780) * Child flow definitions are now able to inherit from a flow in the parent flow registry (SWF-815) * Fixed issue with EL binding to map properties in Resin (SWF-832) * Ajax enabled forms will now be submit using the HTTP method defined on the form tag (SWF-851) * If a specific converter is defined for a property, it will always be used even if the source and target types do not match the converter (SWF-896) * Ajax request can now render nested Tiles definitions as a fragment (SWF-916) * Global transitions now fire the transitionExecuting event for global transitions (SWF-923) * Removed unsafe Java 5 API calls to maintain 1.4 compatibility (SWF-926) * Type conversion errors in the binding subsystem now resolve properly to the typeMismatch message for the property (SWF-928) * Flow application contexts are now explicitly closed when the flow registry is destroyed (SWF-929) Changes in version 2.0.3 (31.07.2008) ------------------------------------- New Features * Introduced view-state sub-element, allowing the model bindings to be configured explicitly per view (SWF-568). This allows you to restrict the allowed field->model bindings. It also allows you to register a custom type Converter per field by referring to it by its identifier; e.g. "shortDate". In addition, you can set basic binding value constraints such as required=true. See the 'Views' section of the reference documentation for more information and the Spring Travel booking-mvc sample for an example. * You can now use Spring's own DataBinder for form data binding; as an alternative to OGNL or Unified EL. This allows you to take advantage of the unique features of the DataBinder such as the ability to apply type conversion to elements of a generic collection. To do this, set the "useSpringBeanBinding" property to true on a custom MvcViewFactoryCreator instance. See the Config section of the reference documentation for how to install a custom ViewFactoryCreator. * Added the ability to disable model validation per transition by setting validate="false". This allows enabling binding but disabling validation; useful when going back between pages. See the 'Views' section of the reference documentation for more information. * Introduced new flavor of the Spring Travel referenced application built to run as a set of OSGi bundles on the SpringSource Application Platform in a PAR deployment unit. Access spring-webflow-samples/platform-spring-travel to review and build the sample. * Now ensure that Spring Faces now outputs Javascript blocks that are valid for both HTML and XHTML content types (SWF-785). Improvements * Unified the "Formatter" and "Conversion" systems into a single "Conversion" type conversion system. This unified type conversion system is now used consistently throughout Web Flow, including for view data binding. Simplified the Converter API to make it easier to implement custom converters, including TwoWayConverters. See the example converters in org.springframework.binding.convert.converters package for example Converter implementations. To plug in your own custom converters, register a custom ConversionService. Custom converters will be usable immediately throughout the system, and can be aliased e.g. "shortDate". See the Config section of the reference documentation for how to install a custom ConversionService, and the booking-mvc sample for an example. * Made several improvements to the documentation. Added coverage of action-states and decision-states (SWF-721). Also added converage of the new view-state binder element. * Added support for rendering .jspx views selected by a flow in a Spring MVC environment (SWF-793). * Error responses returned as the result of handling an Ajax request are now displayed in an error popup dialog by default (SWF-783). * Made the eventId request parameter configurable in a Spring MVC environment (SWF-731). Bug Fixes * Fixed a bug preventing binding of String[] array request parameters to collection properties in a Spring MVC environment (SWF-720). This bug effected use of and tags. * Fixed a bug where classpath: resource loading prefix was not respected within a Flow ApplicationContext (SWF-743). This prevented loading of classpath-based resources defined in flow beans files imported using the tag. * Fixed a bug where the Severity.FATAL severity was lost in the mapping of a JSF FacesMessage to a Spring Message (SWF-752). Added Severity.FATAL as a supported message severity. * Fixed a bug where the "detail" part of a FacesMessage was lost in the mapping of a JSF FacesMessages to a Spring Message (SWF-751). * Fixed a bug where transitioning back to the originating view-state within one request always triggered a redirect (SWF-808). Redirect+after+post is appropriate for non-Ajax requests, but was not appropriate for Ajax requests. * Fixed a bug where attempting to render a view from an end-state resulted in an exception (SWF-711). * Fixed a bug where flows where not accessible inside unexpanded WAR archives (SWF-784). * Fixed several browser compatibility bugs affecting IE 6 with Spring Javascript (SWF-764). Changes in version 2.0.2 (06.06.2008) ------------------------------------- New Features * Allow flow-execution-repository max-execution-snapshots to be set to 0 to disable snapshotting (SWF-709). Use this to disable serialization-based execution state snapshotting. Note that browser back button use is not supported when this option is enabled. Improvements * Added syntax highlighting to the reference manual. * Documented the Default ExpressionParser configuration for Spring Faces (SWF-707). * Documented transition actions and how to restrict transition execution by returning action error results (SWF-715). * Documented how to link in parent flows in a test environment when using inheritance (SWF-694) * Documented how to access Web Flow Nightly Builds from the SpringSource Bundle Repository (SWF-710). * Simplified Spring Security Config across the booking samples (SWF-724). * Now set Locale of UIViewRoot to the Spring MVC Request Locale for JSF-based Spring MVC Views (SWF-659). Bug Fixes * Fixed a bug preventing use of Faces commandLinks or commandButtons inside facet definitions (SWF-692). * Fixed a bug where Spring.ElementDecoration did not properly copy styles from the decorated node (SWF-703). * Fixed a bug where ajaxEnabled="false" did not work properly with the Faces commandLink (SWF-700). * Fixed a bug the Spring Web MVC AjaxView was not properly sending Ajax redirect requests to Spring.js (SWF-682). * Fixed a bug in Spring.js related to regexp matching of