Spring Web Flow 1.0 RC1 Released

Releases | Keith Donald | May 03, 2006 | ...

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.

To the Spring Web Flow early adopters and champions who have supported our product, thank you.  Spring Web Flow delivers one of the most innovative and powerful controller engines available today thanks to your feedback and support.

The Spring Web Flow team expects one more release candidate before 1.0 final.  The new and noteworthy in 1.0 RC1 include...

NEW AND NOTEWORTHY

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.

 To demonstrate, the business interface of the Game component could be defined as:

Game interface

The flow definition to carry out execution of a Game with a user could look like: 

 Game flow

Lastly, the binding between the logical game action identifier and a Game implementation is made by Spring within game-beans.xml.

 Game beans

The HigherLowerGame implementation is also completely decoupled from Spring and 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 a  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.  For example:

Transition executing state exception handling 

... transitions the flow to the editAccount state if an AccountException is thrown by the placeOrder method.

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.

ADDITIONAL RESOURCES and WHERE TO START

Spring Web Flow 1.0 RC1 further refines the reference manual, providing 50 focused pages on SWF usage.  The manual is available on-line in HTML and PDF forms.

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.  Nine (9) sample applications ship with the 1.0 RC1 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, conversational redirects to a refreshable conversation URL, and inline flows.
5. Shippingrate - demonstrates Spring Web Flow together with Ajax technology (thanks to Steven Devijver)
5. NumberGuess - demonstrates stateful beans
6. Birthdate - demonstrates Struts integration.
7. Fileupload - demonstrates multipart file upload.
8. Phonebook-Portlet - the phonebook sample in a Portlet environment (notice how the flow definitions do not change)
9. Sellitem-JSF - the sellitem sample in a JSF environment (notice how the flow definition does not change)

To build the sample applications for deployment in one step simply extract the release archive, access the projects/build-spring-webflow directory and execute the ant dist target.  See the release readme.txt and projects/spring-webflow-samples/readme.txt for more information on the release archive contents and samples, respectively.  All sample projects are now Spring IDE projects, directly importable into Eclipse.  Watch for the Spring IDE Graphical Web Flow editor coming soon from the Spring IDE team.

Thanks to everyone out there who has made Spring Web Flow what it is today—those using it, providing the feedback that makes it stronger.  Enjoy!

Sincerely,

The Spring Web Flow Team

Keith Donald
Erwin Vervaet
Colin Sampaleanu
Juergen Hoeller
Rob Harrop

Message Flow Tracing with AspectJ and JMX

Engineering | Ben Hale | April 25, 2006 | ...

In a project that I used to work on we had a system that would receive messages from a device and make decisions on whether that information would be passed to the user. There were multiple decision levels and one of the problems we always found ourselves asking was if a message was being lost on it's way through the system.

Before we moved to Spring, it was nearly impossible to tell the answer to that question. Attempts were made to use logging, but the sheer volume of messages that decisions were made on made it tedious at best. Other attempts were made using debuggers but a combination…

Spring IDE 1.3 Released

Releases | Torsten Juergeleit | April 25, 2006 | ...

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:

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

Use Eclipse's update manager to install this 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

Spring Framework 2.0 M4 Released

Releases | Juergen Hoeller | April 24, 2006 | ...

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

Another Reason to Love Spring 2.0: Interceptor Combining

Engineering | Ben Hale | April 09, 2006 | ...

Recently I was working on a project that had a Swing client communicating via RMI to a service layer. The service layer was marked with transactions and everything seemed to work fine. However everytime we'd get an exception at the Hibernate DAO layer, Spring would turn the exception into a runtime exception and it would get propagated all the way up the stack and across the RMI connection as a RemoteException. Whenever the exception was deserialized there would be an exception on the client (separate from the RemoteException.The decision was taken to simply introduce an aspect. Any exception…

Spring 2.0's JMS Improvements

Engineering | Ben Hale | April 09, 2006 | ...

With the release of Spring 1.1 the Spring community was given it’s first taste of JMS support. This support included exception translation, message conversion, and a template class much like JdbcTemplate. This support also took care of domain unification between the JMS 1.0.2 and 1.1 specs. The centerpieces of this support are the JmsTemplate class and it’s JMS 1.0.2 counterpart JmsTemplate102.

This support was a great improvement over using the raw JMS APIs to do enterprise messaging. However it did have a shortcoming; the JmsTemplate only supported synchronous reception of messages using the JmsTemplate.receive() methods. This behavior worked well for many people but the vast majority of users of ended up rolling their own implementations of an asynchronous consumer. In short, they wanted what EJB 2 called Message Driven Beans

POJO Aspects in Spring 2.0: A Simple Example

Engineering | Mark Fisher | March 22, 2006 | ...

While the material in this post is quite simple, it will actually offer a glimpse of some rather significant new features in Spring 2.0. I hope that with a little imagination, you will be able to apply what you see here to far less trivial use cases of your own.

I am going to show 2 examples actually. The first will use a rather simple logger:


package example;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SimpleLogger {

  private static Log log = LogFactory.getLog(SimpleLogger.class);

  public void logOneString(String s) {
    log.info…

Inaugural Sydney Spring User Group Meeting

Engineering | Ben Alex | February 24, 2006 | ...

Over 200 people registered to attend the inaugural Sydney Spring User Group meeting, which was held on 22 February 2006. As shown by the photos (below), there was standing room only, and several attendees flew in from interstate for the evening.

With one-third of those attending indicating they do not presently use Spring, Rod Johnson's “Introduction to Spring” presentation was well-received and motivated many questions. The planned “Spring 2.0 and Beyond” talk – which undoubtedly will be of keen interest to those who are currently using Spring – was rescheduled until the next meeting.

Two…

Acegi Security System for Spring 1.0.0-RC2 Released

Releases | Colin Sampaleanu | February 10, 2006 | ...

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

Spring Framework 2.0 M2 released

Releases | Juergen Hoeller | February 02, 2006 | ...

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

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