Spring Framework Training Summary (August)

Releases | Colin Sampaleanu | August 16, 2005 | ...

(updated 2005-8-19 with missing date for Washington training). 

Interface21 is pleased to offer a number of Spring Framework training events in the upcoming period, taught by the same people who built Spring.

For full details, please visit the main training information page.

Here is a summary of the upcoming courses and venues:

  • Core Spring: Sep. 6th-9th, London, UK
  • Core Spring: Sep. 13th-16th, New York City, USA (early bird date is Aug. 19th!)
  • Core Spring: Sep. 27th-30th, San Jose, CA, USA (early bird date is Sep. 9th!)
  • Core Spring: Oct. 11th-14th, Washington, DC (early bird date is Sep. 16th!)
  • Spring JDBC Development with Oracle: Oct. 11th-12th, New York City, USA
  • Introduction to Spring: Nov. 7th-9th, Amsterdam, NL (early bird date is Oct. 7th!)
  • Core Spring: Nov. 22nd-25th, Amsterdam, NL (early bird date is Oct. 28th!)
  • Introduction to Spring: Nov. 30th - Dec. 2nd, Amsterdam, NL (early bird date is Oct. 28th!)
Not interested in formal Spring Framework training? How about a bit of Spring during Winter? The Spring Experience 2005 conference is taking place in sunny Bal Harbor, Florida, from Dec. 7th-10th.

Spring Web Flow PR5 Released

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

We're pleased to announce the release of Spring Web Flow Preview 5 (PR5).

Download the release from Sourceforge.

All users of previous previews are encouraged to upgrade to this release.  Special thanks to the SWF forum community for being so helpful in readying the quality of this release.

This release addresses several issues introduced in PR4, notably restoring JDK 1.3 and Struts 1.1 compatibility.  It also adds the API JavaDocs to the release archive along with a considerable amount of general release documentation.  Last but not least, this release improves upon the one-step build process to building and deploying the sample applications.

Access the change log to review the full set of changes.

Enjoy,

Keith Donald
Erwin Vervaet

Spring Framework 1.2.3 Released

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

We're pleased to announce that Spring 1.2.3 has just been released. This is a bugfix and minor enhancement release, fixing a number of issues related to the application context startup sequence and introducing various minor new features.

All Spring 1.2.2 users are encouraged to upgrade to Spring 1.2.3, in particular if using factory methods and/or auto-proxy creation (as used by the transaction annotation support). Full backwards compatibility with Spring 1.2.1 should be restored in that area.

As always, for a full list of enhancements and fixes, please see the changelog.

Spring IDE 1.2.2 Released

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

Dear Spring Community,

We are pleased to announce that Spring IDE 1.2.2 has been released.
Version 1.2.2 is a bugfix release with one enhancement. For a complete list of bugfixes and enhancements included visit http://springide.org/project/milestone/Release%201.2.2

Changes:

  • BeansView now preserves it's state while the BeansCoreModel is re-created (due to modified beans config file) 

 

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/

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

Spring IDE WebFlow Editor Preview 2 Released

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

Dear Spring Community,

We are pleased to announce that Spring IDE WebFlow Support Preview Release 2 has been released. 

PR2 is a bugfix release with a few enhancements. For a complete list of bugfixes and enhancements included visit http://springide.org/project/report/9.

Changes:

  • Full support for Spring WebFlow PR3 features
  • WebFlowValidator as extension to Spring IDE core's builder extension point
  • Polished the graphical editor interface
  • Added support for Xml comments
  • Several bugfixes and enhancements

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

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

For bug reports tickets can be opened via http://springide.org/project/newticket. Please refer to PR2 using the version 'webflow.PR2'. The upcoming PR3 release will support the recently announced Spring WebFlow PR4 features.

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

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