Spring Web Flow PR4 Released

Releases | Keith Donald | July 17, 2005 | ...

Dear Spring Community,

I'm pleased to announce the release of Spring Web Flow Preview 4 (PR4). This release aligns Spring Web Flow for use with Spring 1.2.2+.

This will be the last Web Flow preview release; the next release will be 1.0 RC1. To download, access: http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=148517

Note: there are some incompatible changes between PR3 and PR4. This includes a root package rename from org.springframework.web.flow to org.springframework.webflow, noting Web Flow's status as a standalone module deserving of a top-level package.  For a complete list of changes, access the change log here: http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

Special note for WebFlow Portlet users: PR4 does not ship Portlet MVC integration.  Portlet MVC users will need to wait for Web Flow RC1 in a few weeks when Portlet MVC has been integrated for shipment with Spring 1.3. We apologize for any short-term inconvenience here: expect better Portlet MVC integration + the sample app to be back in the coming weeks.

Contained within this PR4 release are a number of new and noteworthy enhancements. Here are some of them:

State entry actions

Any instance of any State type may be configured with an entry action that will be executed when the state is entered.  This facilitates generic state setup logic. For example, a ViewState could set an entry action to execute arbitrary pre-render logic. Such pre-render logic might load reference data to populate form drop downs.  Any number of actions may be executed in order as part of a composite state entry action:

<view-state id="displayCriteria" view="searchCriteria">
<entry>
<action bean="searchFormAction" method="setupForm"/>
<action bean="searchFormAction" method="setupReferenceData"/>
</entry>

<transition on="search" to="executeSearch">
<action bean="searchFormAction" method="bindAndValidate"/>
</transition>
</view-state>

TransitionableState exit actions

Any instance of any TransitionableState type may be configured with an exit action that will be executed when the state is exited. This facilities generic state tear-down logic.  Multiple actions may again be specified and they will automatically be wrapped in a CompositeAction.

<action-state id="executeSearch">
<action bean="searchAction"/>
<transition on="success" to="displayResults"/>
<exit>
<action bean="auditAction" method="logResults"/>
</exit>
</action-state>

Flow Execution Listener Criteria

Before PR4 there was no easy way to define for a set of flow definitions which listeners should observe launched flow executions.  The new FlowExecutionListenerCriteria provides a pluggable strategy where the set of applicable listeners for executions for a given Flow definition is calculated on a per-request basis.

<bean id="flowExecutionManager"
class="org.springframework.webflow.execution.servlet.ServletFlowExecutionManager">
<property name="listenerMap">
<map>
<entry value="*">
<key>
<list>
<bean class="example.Listener1"/>
<bean class="example.Listener2"/>
</list>
</key>
</entry>

<entry value="sampleFlowA">
<key>
<list>
<bean class="example.Listener3"/>
</list>
</key>
</entry>
</map>
</property>
...
</bean>

The above Spring configuration attaches Listener 1 and 2 to executions of all flows (*), while Listener 3 is only attached to "sampleFlowA".

Greatly enhanced expression language support

One of the real strengths in this release is the continued progress with the new Spring data binding module.  Contained within spring-binding is an expression parsing and evaluation abstraction seamlessly integrated with a robust type conversion facility.  These two in combination allow for arbitrary strings representing one or more expressions like “Announcement: ${org} ${product} ${release} is out!” to be consumed and converted to evaluateable expressions utilizing any expression language, with OGNL being the default.  Spring Web Flow leverages this machinery in several places including redirect expressions, transition expressions, and attribute mapping expressions:

  1. For redirect expressions that evaluate against the request context, for example:
    redirect:/${sourceEvent.parameters.url}?attribute1=${flowScope.foo}&attribute
    2=${requestScope.bar}"
  2. For transition expressions that drive dynamic state transition decisions:
    <transition on="${result == 'success' && ${flowScope.selectedItinerary.price} > 500.0" to="requireCreditCheck"/>
  3. For attribute mapping expressions that map attributes between two sources:
    <subflow-state id="browseDetails" flow="detailFlow">
    <attribute-mapper>
    <input value="${sourceEvent.parameters.id}" as="someBean.id" from="string" to="long"/>
    </attribute-mapper>
    ...
    </subflow-state>

Enhanced attribute-mapper type-conversion support

The ”from” and “to” attributes of input and output mapping elements can be used to specify type conversion rules.  So the definition:

<input value="${sourceEvent.parameters.id}" as="someBean.id" from="string" to="long"/>

says:

Convert the value of ${sourceEvent.parameters.id} from a string to a long and set the long result at someBean.id.

Session-based TransactionSynchronizer strategy

A new TransactionSynchronizer that manages a transaction token in HTTP-session scoped storage is new for PR4.  It is ideal for working with flows that are leveraging continuations and need to prevent duplicate application transactions from occurring.

New convenience action implementations

The webflow.action package now sports several new action implementations including: CompositeAction, DelegatingAction, and GuardedAction.

JMX-enabled flow execution statistics

The sellitem sample now demonstrates the capability to collect global statistics on all Web Flows using the JMX management protocol, and monitor those statistics using any JMX client like the JDK 1.5 JConsole.  Future web flow releases will enhance this capability to allow for management and monitoring on a per flow execution basis.

Simplified and improved Struts integration

Struts 1.x integration has been greatly simplified with PR4 and aligned with Spring 1.2.2’s introduction of the SpringBindingActionForm.  There is no longer a need for a special FlowActionMapping as all webflow-specific configuration is now managed by Spring.  See the birthdate sample application for a concrete example.

Other:

Improved javadoc, error messages, and logging

Much improved build system with “one-step” sample application build/deployment

Erwin and I must thank Colin Sampaleanu for putting together one heck of a build system to manage the overall development and release process.  You will find when you download PR4 that building and deploying the sample applications, as well as any component of Spring Web Flow (such as the project itself or the binding module) to be simple and easy, with careful, automatic jar file management.  This “common-build” system is Ant 1.6.x based and leverages Ivy for jar dependency management--

These are just some of the new features of this release.  For a full list of changes, see http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

As always, we very much value your feedback.  Expect Web Flow 1.0 RC1 by the end of July with Portlet MVC and JSF integration.

Cheers,

Keith Donald
Erwin Vervaet

Spring IDE 1.2.1 Released

Releases | Torsten Juergeleit | July 14, 2005 | ...

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


Version 1.2.1 is a bugfix release with a few enhancements. For a complete list of bugfixes and enhancements included visit http://springide.org/project/milestone/Release%201.2.1

 

Changes:
  • Updated to Spring 1.2.2
  • Graph reopens after Eclipse has been restarted
  • Graph shows dependencies for interceptors and lookup-methods
  • Validator handles lookup-methods and list of interceptor names in ProxyFactoryBean
More details are available from the project's site http://springide.org/

This release is available from the project's Eclipse…

Spring Framework 1.2.2 Released

Releases | Colin Sampaleanu | July 05, 2005 | ...

We're pleased to announce that Spring 1.2.2 has just been released. This is a bugfix and minor enhancement release. It also provides a unified basis for the upcoming Spring WebFlow release candidate.

Besides refinements in the JTA transaction synchronization and SQLException translation, this release introduces a variety of internal refactorings and new helper classes. Furthermore, support for JDK 1.5's XML-based properties format has been added to all relevant Spring classes.

We have also extended our reference documentation in various areas. Most importantly, it covers JDO, TopLink, OJB…

Spring Framework 1.2.1 Released

Releases | Colin Sampaleanu | May 28, 2005 | ...

We're pleased to announce that Spring 1.2.1 has just been released. This is a bugfix and refinement release, addressing a number of issues found in 1.2 final.

Furthermore, the PetClinic sample has been updated to serve as showcase for JMX export: the JDBC version exposes a cache refresh operation and a call monitor via JMX now.

We'd like to encourage all Spring 1.2 RC/final users to upgrade to Spring 1.2.1, in particular if using the Hibernate3 integration.

For complete details on changes and bug fixes, please see the change log.

FYI, a 1.2.2 release is scheduled for late June, introducing various minor new features. See our JIRA for details.

Spring Web Flow PR3 Released

Releases | Colin Sampaleanu | May 23, 2005 | ...

Spring Web Flow PR3 has been released. Here's Keith's mailing list announcement: 

--- 

Dear Spring Community,

I’m pleased to announce the release of Spring Web Flow Preview 3.  This is a major new release with a substantial number of new features: both in terms of power and convenience.  This release is considered stable for development use.

To download, access: http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=148517

Note: there are a few incompatible changes between PR2 and PR3.  For a listing and a porting guide, access the change log here: http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

Contained within this release are a number of new and noteworthy enhancements.  Here are some of them:

View State Enhancements

  • Each view state may now be configured with one or more setup actions.  This action is executed after the state is entered but before control is returned to the client for response rendering.  This reduces (and in many cases eliminates) the need for setup action states, making for more concise flow definitions.
  • Each view state may now select the view to render and all supporting model data in a fully dynamic, pluggable fashion using the new ViewDescriptorCreator strategy.
  • Powerful redirect expressions are now supported, with full-support for resolving redirect parameters in a dynamic fashion from the flow RequestContext.
Here is an example of these new features in action:

Setup actions:

 <view-state id="displayCriteria" view="criteriaView">
            <setup bean="searchFormAction" method="setupForm"/>
            <transition on="submit" to="executeQuery">
                  <action bean="searchFormAction" method="bindAndValidate"/>
            </transition>
</view-state>

Redirect expressions:

<end-state id="end" view="redirect:/myFlow.htm?input=${flowScope.input}"/>

Subflow Attribute Mapping Enhancements

  • Subflow input and output mapping policies are now fully configurable via a XML flow definition.
  • Expressions may also be specified that resolve subflow input attribute values in a dynamic fashion.

For example:

<attribute-mapper>
            <input value="${sourceEvent.parameters.id}" as="id" type="long"/>
</attribute-mapper>

The expression language used is also pluggable – by default web flow will try OGNL, if it’s not found on the classpath it’ll use Spring’s BeanWrapper.

Annotated Definition Objects

  • In addition to action execution parameters, each core definition object in the system--Flow, State, and Transition---can now be annotated with arbitrary property metadata.  Such properties are specifiable in the webflow xml definition using the “property” element, with full support for from-string type conversion with convenient type aliasing.

For example:

<transition on="submit" to="executeQuery">
            <property name="submitPressed" value="true" type="boolean"/>
</transition>

In this case this ‘submitPressed’ boolean property would be made available to this transition’s target state after entering for reasoning.

Enhanced Flow Execution Listener Callbacks

  • Listeners responding to the lifecycle of an executing flow now have more hooks to insert custom logic—notification now happens when a flow is starting, started, paused, resumed, entering a new state, entered a new state, or ended---with veto capability for proposed flow state changes (to facilitate state precondition checks, for example).

---

These are just some of the new features of this release.  For a full list of changes, see http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

As always, we very much value your feedback.  One or two more PR releases to go and we’ll be at 1.0 final!

Cheers,

Keith Donald
Erwin Vervaet

Spring IDE WebFlow Support Preview Release 1

Releases | Colin Sampaleanu | May 21, 2005 | ...

Christian Dupuis has announced a new preview version of the Eclipse-based Spring-IDE which has graphical editor support for Spring Web Flow.

Here's Christian's announcement from the mailing list:

-----

Dear Spring Community,

We have just released the first preview version of the Spring IDE WebFlow support. Please use this release to give us feedback.

Features:

* Full featured graphical editor for String WebFlow Xml  configurations files.
   - Support for latest Spring WebFlow PR 3 features
   - Drag'n'Drop editing
   - Validation during edit
   - Print and Export (jpg and bmp) functionality
   - Automated lay outing of Spring WebFlow config file including connection routing
   - Side-by-side editing of the same configuration file in
     your favorite Xml Editor Plugin and in the WebFlow Editor
* Integration with Spring IDE Beans View and Beans Graph
   - Beans ConfigSet can be associated with a WebFlow ConfigSet for validation

The Preview Release 1 is available from Spring IDE's developer update site at http://springide.org/updatesite_dev. Make sure you have installed Eclipse 3.0 along with Spring IDE 1.2.0 and GEF 3.0.1.

Documentation is available at
http://springide.org/project/wiki/WebFlowEditor and
http://springide.org/project/wiki/WebFlowEditorUsage.

If you find any bugs or you have feature requests please file a ticket at  http://springide.org/project/newticket specifying the version 'webflow.PR1'.

Thanks for your effort

Greetings Christian

Spring IDE 1.2 released

Releases | Torsten Juergeleit | May 17, 2005 | ...

Dear Spring Community,

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

Version 1.2 is a port to Eclipse 3 with a bunch of bugfixes. For a complete list of bugfixes included
visit http://springide.org/project/milestone/Release%201.2

Changes:
  • Ported to Eclipse 3.0
  • Added support for Eclipse 3.1M7
  • Updated to Spring v1.2
  • Refactored generic stuff (e.g. model, project nature + action, incremental project builder, ...) into separate plugins (org.springframework.ide.eclipse.core and org.springframework.ide.eclipse.ui)
  • add change notification and visitor support to generic model
  • beans model now extends generic model defined in new plugin org.springframework.ide.eclipse.beans.core
  • all jars moved from org.springframework.ide.eclipse.beans.core to new plugin org.springframework.ide.eclipse.core

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

This release is available from the project's Eclipse update site:
    http://springide.org/updatesite/

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

Spring Framework 1.2 Released

Releases | Colin Sampaleanu | May 13, 2005 | ...

On this lucky Friday the 13th, we are pleased to announce that Spring 1.2 final has just been released.

(Thanks to Juergen for doing the packaging and his usual coding heroics). 

The major new features since 1.2 RC2 are:

  • TopLink support (for both TopLink 9.0.4 and 10.1.3)
  • JDO 2.0 support (tested against JPOX 1.1 beta 3)
  • Hibernate 3.0.3 support (aggressive release of Connections)

The overall major new features of Spring 1.2 are:

  • finer-grained distribution jar files
  • simplified XML bean definitions
  • JMX support
  • JDK 1.5 transaction annotation
  • support for WebLogic JTA extensions
  • JDBC RowSet support
  • JCA CCI support
  • JDO2 support
  • Hibernate3 support
  • TopLink support

Thanks to Oracle for donating the original TopLink support prototype,  and in particular to Jim Clark from Oracle - for all his help in getting the TopLink support into its final shape!

For details on new features, deprecations and bug fixes, please see the change log.

FYI, we have a 1.2.1 release scheduled for June, featuring minor enhancements that did not make 1.2 final. See our JIRA road map for details.

Spring Modules 0.1 Released

Releases | Colin Sampaleanu | April 21, 2005 | ...

We are pleased to announce that Spring Modules 0.1 has just been released.

Downloads can be found at: http://springmodules.dev.java.net.

This release includes:

  • Integration with HiveMind, allowing for HiveMind services to be exposed as Spring beans
  • Spring-style integration classes for JSR-94 rules engines such as Jess and Drools
  • Spring-style configuration for OSWorkflow
  • Integration classes for Commons Validator (taken from Spring sandbox)
For a detailed list of features, see the changelog.

The HiveMind and Commons Validator support classes are considered to be stable and ready for use in production. Modifications to the JavaScripthandling in Commons Validator will appear in 0.2.

The OSWorkflow configuration support is ready for use in production, but 0.2 will introduce the OSWorkflowTemplate, which will bring full Spring semantics to workflow usage.

We have successfully used the JSR-94 integration classes in a production setting, but are planning to overhaul session handling in 0.2.

We are planning to release 0.2 within the next three weeks, hopefully just after Spring 1.2 goes final. This is in keeping with our plan to release new features as often as possible.

The full roadmap can be found at: http://opensource.atlassian.com/projects/spring/secure/BrowseProject.jspa?id=10030&amp;report=roadmap.

We are still looking to recruit more developers to work on more modules, and any feedback on new or existing features will be much appreciated.

Spring Framework 1.2RC2 Released

Releases | Colin Sampaleanu | April 19, 2005 | ...

We're pleased to announce that Spring 1.2 RC2 has just been released.


This release introduces one major new feature:

  • support for JCA's Common Client Interface (CCI), including support for CCI local transactions

Furthermore, there are various minor enhancements, for example:

  • deprecated ListableBeanFactory's getBeanDefinitionNames(type)", in favor of "getBeanNamesForType"
  • added "value"/"value-ref" shortcut attributes to XML "entry" tag for maps
  • added "alias" root element for XML bean definition files, for aliases for beans in other files

  • JdbcAccessor lazily initializes the SQLExceptionTranslator by default now
  • added further configuration options to LocalSessionFactoryBean for Hibernate3
  • added "defaultDestinationName" property to JmsTemplate, for a dynamic default destination

  • refined Resource support for compatibility with JDK 1.3's classic VM and with JRockit's jar paths
  • refactored static PathMatcher class into PathMatcher interface and AntPathMatcher implementation
  • added ConfigurableMimeFileTypeMap, with extensive MIME type mappings out-of-the-box

  • added "context.i18n" package, with LocaleContext abstraction and global LocaleContextHolder
  • DispatcherServlet exposes the current LocaleResolver through the global LocaleContextHolder
  • added RemoteInvocationTraceInterceptor, logging remote calls and exceptions on the server

  • updated JasperReports support for JR 0.6.6, using JRDefaultCompiler as default report compiler
  • reworked AbstractJasperReportsView to work on JasperPrint instance rather than JasperReport instance
  • added support for reports with embedded SQL statements to AbstractJasperReportsView

For a detailed list of enhancements and bug fixes, see the changelog.

This release candidate is considered stable and recommended for development use. We expect Spring 1.2 final to be released in about two weeks.

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

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