AOP Configuration Choices in Spring 2.0

Engineering | Ben Hale | August 03, 2006 | ...

There are a lot of reasons to love working at Interface21, but by far the best has to be working with the leaders of the industry. For example, one of Spring 2.0's major focus points has been on improving AOP support. We've added a new configuration namespace, the AspectJ pointcut language and support for @AspectJ aspects. But this leaves a big question; what is the preferred way of writing Aspects in Spring 2.0? Since I'm an I21 employee, I have the luck of getting the answer straight from the horse's mouth.

I posited the question to Adrian Colyer, the Chief Scientist at Interface21 and…

Experience Spring in December in Hollywood, Florida

Engineering | Keith Donald | August 03, 2006 | ...

Over the last month Jay Zimmerman and I have been working hard planning The Spring Experience 2006 (TSE). Creating a first-class technical conference is no easy task--it takes hour upon hours to arrive at the perfect mix of speakers and content.

I am proud to say we are now ready to roll with an unprecedented event. Check it out:

The Spring Experience 2006

I hope to see you there. Here is what I believe sets this show apart:
  • 55 ninety-minute sessions across 5 tracks over 3-full days, all at a five-star beach resort.
  • Exclusive premium technical content on Spring 2.0. Half of the sessions are led by core Spring developers who apply the latest Spring capabilities inside and out. This includes Rod Johnson, Juergen Hoeller, Adrian Colyer, Rob Harrop, Colin Sampaleanu, Ben Alex, Arjen Poutsma, Erwin Vervaet, and yours truly.
  • Cutting edge sessions from leading Java software innovators. This includes Jeff McCaffer, lead of the Eclipse RCP and Equinox projects; Guilluame LaForge, Groovy project lead; Eamonn McManus, JMX Lead; Patrick Linskey, BEA Kodo JPA lead, and Mike Keith, lead of the Java Persistence Architecture (JPA).
  • Privileged access to synced-audio slideshows for all sessions following the show, so you don't miss a beat.
  • Full-course breakfast, lunch, and dinner included with registration.
  • "Meet the Gurus" user BOFs. A great opportunity for Spring users to interact with Spring project leads.
  • Two kick ass parties, one Friday night, and a Saturday afternoon party on the beach complete with a Spring users vs. developers volleyball game.
  • Cool conference schwag. And lots of it. Registered experiencers' receive an all access conference pass, a custom (and very cool) TSE laptop bag, a custom-designed notebook binder, a limited-edition TSE 2006 shirt, and even an official TSE 2006 beach towel. You'll have chances to win an iPod and XBox 360.
  • Diversity. Whether you are a hard core enterprise developer, a web application developer, or a leading software architect, this conference has something for you. Last year's show brought 250 people from 20 countries. This year we expect 500 attendees from over 25. It's going to be a lot of fun, and a great learning and networking opportunity.
There is no better place to be than Hollywood, Florida in December. See you and your team at The Spring Experience 2006!

What are you looking forward to in Spring 2.0?

Engineering | Ben Hale | August 02, 2006 | ...

Spring 2.0 is coming and I for one am excited. I can still remember the first time that I heard about all of the new features that would be in the release at last year's The Spring Experience. The asynchronous JMS message reception and the AOP integration with AspectJ excited me the most (a bit of drooling involved actually), but even then there were many other improvements and the list has only grown since.

Alas, I know that most of you aren't middle-tier nerds like me, so what are you excited about? The new XML dialects and XSD support? The improved JSP taglib? How about that <tx:annotation-driven />? Maybe you love that Groovy…

Sydney Spring User Group Meeting #2 Planned

Engineering | Ben Alex | July 29, 2006 | ...
In my last blog entry I promised to advise details of our next user group meeting. After hunting around for a suitable venue, it’s now organised for Monday 7 August 2006 at Cliftons, 200 George Street, Sydney. We have two presentations planned. First up I will be talking about Spring 2.0 namespaces, and then Ramon Buckland from Infocomp will be presenting SOA and JBI with Spring.Visit Springframework.org for full details.

Hope to see you there.

Welcome to the Interface21 Team Blog

Engineering | Keith Donald | July 07, 2006 | ...

As Interface21 grows as a global company one thing has become more and more clear to me everyday:

we really have some damn talented, highly motivated leaders who have a lot to say on both business and technology.
Having said that, one of the things we want to do is give our people a convenient, easily accessible channel to share their insights, experiences, ideas, and innovations. And after a little hard work behind the scenes, I think we are there. Welcome to the Interface21 Team Blog.

Here you will gain insight into what's going on at i21, from what we're working on, to what problems we're solving, to where we're going, to what we've learned along the way. You'll see a lot of diversity, as our company is doing a lot of things, from leading the development of the Spring Framework and the Spring family of products to expanding operations in five major international markets.

This entire blog is subscribable via RSS. In addition, you can follow your favorites by subscribing to…

Spring 2.0 RC2 Released

Releases | Juergen Hoeller | July 06, 2006 | ...

Dear Spring community,

We are pleased to announce that Spring 2.0 RC2 has been released.  Download | Documentation | Changelog

This is the second release candidate on the way to Spring 2.0 final. It introduces a number of bug fixes and minor refinements, in particular in the AOP framework and in the JPA support. Please see the changelog for details. A number of further known issues will be addressed in the upcoming 2.0 RC3 release; see our JIRA road map for details.

Please give this release a try with your applications and let us know about any problems that you might encounter! It is important to emphasize that Spring 2.0 provides backwards compatability with the Spring 1.x series.  Spring 2.0 also continues to support JDK 1.3+ and J2EE 1.3+ (even J2EE 1.2+ except for the JSP tags and the EJB support). Compatability is critically important to our user base and we are committed to providing it. Hence, we're also interested in learning about potential compatibility issues on any such platform.

Thank you for all of the feedback leading up to this release.  We look forward to more of the same towards the big 2.0 GA launch date!

Enjoy,

Juergen Hoeller
Lead, Spring 2.0 Product Development

Spring Web Flow 1.0 RC3 Released

Releases | Keith Donald | June 26, 2006 | ...
 

Dear Spring Community,

We are pleased to announce that Spring Web Flow (SWF) 1.0 RC3 (Release Candidate 3) has been released.  Download | Documentation | Changelog

This stable release contains bug fixes and minor improvements.   At this time we expect this to be the last release candidate before Spring Web Flow 1.0 final, which is just around the corner.  The noteworthy include...

NOTEWORTHY IMPROVEMENTS

Improved flow exception hierarchy.  Overall the exception hierarchy now more clearly organizes the categories of failure from flow definition access (FlowLocatorException) to runtime flow execution (FlowExecutionException) and execution persistence (FlowExecutionRepositoryException).

 

Improved support for BACK button use within a Portlet environment.  Combined with a continuation-based repository SWF supports full use of browser navigational buttons (back, refresh) within a Portlet environment while the flow remains active.  When a flow execution terminates a browser refresh will trigger a new execution to be launched automatically.

Simpler default JSF view mapping.  Now by default SWF view names are expected to correspond to JSF view ids exactly. You'll see this default in play within the sellitem-jsf sample--note how views are referenced like "/priceAndItemCountForm.jsp" like a standard JSF navigation handler.  This allows natural support for other JSF view technologies such as Facelets and is a more natural default for JSF developers.  If you require a custom mapping SWF to JSF view mapping, plug a custom ViewIdMapper into your FlowPhaseListener.

Sample application simplifications.  We've simplified the fileupload, flowlauncher, birthdate, and sellitem samples to take advantage of the latest features and best practices of Spring Web Flow.

POTENTIAL USER AFFECTING CHANGES

With 1.0 RC3 there are a few potential user-affecting changes on the road to 1.0 final.  The following section notes them:

The FormAction property "validateUsingValidatorMethod" was removed for simplicity.  Experience has shown this property to be a source of confusion for new users.  As a better alternative, to execute a data binding operation without validation simply invoke the "bind" action method from your flow definition.  When you require piecemeal Validator validation, simply invoke "bindAndValidate" or "validate" with the "validatorMethod" attribute set to the specific validator method.  See sellitem for an example.

StateExceptionHandler was renamed "FlowExecutionExceptionHandler". This affects custom handler implementations.  To upgrade, simply implement the new interface; the signature is logically the same.

FlowExecutorImpl's "redirectOnPause" attribute now accepts a boolean value instead of a RedirectType enum.  There is only one redirect type in SWF as of 1.0 RC2--the flow execution redirect.  Setting this flag to 'true' triggers it each time a flow execution pauses by entering a view state.  See Numberguess or sellitem for an example.
--------

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. Ten sample applications ship with the 1.0 RC3 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 and inline flows
5. Shippingrate - demonstrates Spring Web Flow together with Ajax technology (thanks to Steven Devijver)
6. NumberGuess - demonstrates stateful beans and "single key" flow execution redirects.
7. Birthdate - demonstrates Struts integration
8. Fileupload - demonstrates multipart file upload
9. Phonebook-Portlet - the phonebook sample in a Portlet environment
(notice how the flow definitions do not change)
10. Sellitem-JSF - the sellitem sample in a JSF environment

Enjoy!

The Spring Web Flow Team

Keith Donald
Erwin Vervaet
Juergen Hoeller
Colin Sampaleanu
Rob Harrop

Spring 2.0 RC1 Released

Releases | Juergen Hoeller | June 20, 2006 | ...

Dear Spring community,

We are pleased to announce that Spring 2.0 RC1 has been released.  Download | Documentation | Changelog

This is the first release candidate for Spring 2.0 after five milestone releases over the last six months. This stable release is waiting for broad user feedback on the way towards 2.0 final, targeted for early July.

The major new themes of Spring 2.0 are:

  1. Simplified Configuration - you will find you write much less code overall to configuration your applications.  The code you do write is high-level and domain-specific, benefiting from smart defaults as well as rich validation and tool support.

  2. Powerful AOP Unification - you may apply aspects that weave custom behavior before, after, and around your objects concisely with AspectJ while still benefiting from the simplicity of the Spring AOP runtime.

  3. JSR 220 Java Persistence Archtecture (JPA) - to provide you choice in persistence provider implementation.  Spring is the first to support JPA in both JEE and JSE environments with full portability between the two.

  4. Asynchronous JMS Messaging - Message-Driven POJOs bring you lightweight asynchronous components for JSE environments with the choice of JMS provider.

  5. JSR-168 Portlets - Spring Portlet MVC delivers a framework for developing JSR 168 portlets which includes integration with Spring Web Flow for orchestrating user interactions.

It is important to emphasize that Spring 2.0 provides backwards compatability with the Spring 1.x series.  Compatability is critically important to our user base and we are committed to providing it.

Further major new features for each of these areas include...

Configuration Simplification
  • Bean definitions based on XML schema, with out-of-the-box XML namespaces for simplifying common configuration tasks
  • Support for extended bean scopes in application contexts, with web request and session scopes as main targets
  • Bean definition enhancements: lazy loading of bean classes, collection merging, and intelligent error messages
AOP
  • Simplified AOP configuration based on XML schema namespaces
  • Support for AspectJ pointcut expression language and @AspectJ-style aspects
  • Support for dependency injection on any object, including fine grained domain objects (based on AspectJ)
Persistence and JPA
  • Enhanced JDBC support: named SQL parameters, generics-based SimpleJdbcTemplate
  • Explicit support for Hibernate 3.1 and 3.2 (while remaining compatible with Hibernate 3.0)
  • Support for the Java Persistence API (JPA), including the full container contract with class instrumentation
Scheduling and Messaging
  • TaskExecutor abstraction for submitting asynchronous work
  • Support for various thread pools, such as a Java 5 ThreadPoolExecutor and a CommonJ WorkManager
  • Support for asynchronous JMS ("Message-Driven POJOs") based on message listener containers
Web Application Development
  • Conventions-based web MVC: controller mappings, model attribute names
  • JSP form tag library for use with Spring Web MVC and Spring Web Flow
  • Full support for Portlet environments, including Portlet-style MVC based on a DispatcherPortlet

... and many, many other refinements in the details.

To see many of these features in action, review the JPetstore reference application included in the release distribution within the samples/jpetstore directory.  See the What's New in 2.0? section of the reference documentation for additional detail.

We will be working with the Maven2 community to have 2.0 RC1 uploaded to the Maven repository in the coming days.

Thank you Spring community for all of the feedback leading up to this release.  We look forward to your feedback towards the big 2.0 GA launch date!

Enjoy, 

Juergen Hoeller
Lead, Spring 2.0 Product Development

Spring Web Services 1.0 M1 Released

Releases | Arjen Poutsma | June 12, 2006 | ...

Dear Spring community,

I'm pleased to announce that Spring Web Services 1.0 M1 has been released. Download | Documentation | Changelog

This release is the first milestone of Spring-WS: a product of the Spring community focused on creating document-driven Web services.

Spring-WS 1.0 M1 includes:

  • A streaming SOAP message model based on Apache Axiom,
  • WS-Security support that integrates with Acegi,
  • JAXB 2.0 marshaller support,
  • Many further improvements and fixes for issues discovered since 0.9.1.

See the changelog for details.

For more information about Spring-WS and its goals, refer to the Spring-WS homepage.

Spring Web Flow 1.0

Releases | Keith Donald | June 10, 2006 | ...

 

Product Leads
Keith Donald, SpringSource
Erwin Vervaet, Ervacon
 
Spring Web Flow is a next generation Java web application controller framework that allows developers to model user actions as high-level modules called flows that are runnable in any environment.  The framework delivers improved productivity and testability while providing a strong solution to enforcing navigation rules and managing application state.  

The Big Picture

Spring Web Flow allows developers to build reusable, self-contained…

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring Runtime 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