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.
The Spring Blog
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:
- 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).
- Real-world insight from renown industry experts. This includes Eric Evans, author of the timeless book Domain-Driven Design, Luke Hohmann, business of software expert and author of Beyond Software Architecture; Ramnivas Laddad, Interface21 Principal and author of AspectJ in Action; Venkat Subramanium, author of Practices of an Agile Developer, Floyd Marinescu, creator of InfoQ.com, solution architects Mark Richards (IBM) and Jim Clark (Oracle), and Mike Stenhouse, usability expert and author at Content With Style.
- 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.
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 support instead.
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.
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 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.
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…
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).
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:
- 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.
- 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.
- 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.
- Asynchronous JMS Messaging - Message-Driven POJOs bring you lightweight asynchronous components for JSE environments with the choice of JMS provider.
- 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.
Dear Spring community,
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.
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
- Define all controller logic for an application task, such as a search process, in one place, instead of scattering that logic across many places.
- Compose flows together to create rich controller modules from simple parts.
- Enforce strict user navigation rules with a natural, object-oriented linear programming model and without coding verbose if/else blocks.
- Have memory you allocate during flow execution automatically clean itself up when execution ends or expires.
- Deploy a flow for execution in a Servlet environment using your base web framework of choice. Spring Web Flow ships convenient integration with leading web frameworks Struts, Spring MVC, and Java Server Faces.
- Change Web frameworks, going from Struts to Spring MVC for example, without changing your flow definitions.
- Change environments all together, going from JUnit test to Portlet for example, without changing your flow definitions.
- Evolve your application’s navigation rules on-the-fly at development time without a container restart.
- Receive automatic browser button support (back, forward, refresh) with no custom coding.
- Store task data in any of four managed scopes: request, flash, flow, and conversation; each with their own distinct semantics.
- Test flows in isolation without the container. Ensure your application control logic works before you deploy.
- Visualize and edit your flow navigation logic graphically with Spring IDE 2.0.
- Phonebook - the original sample demonstrating most features (including subflows)
- Sellitem - demonstrates a wizard with conditional transitions, flow execution redirects, custom text field formatting, and continuations
- Flowlauncher - demonstrates all the possible ways to launch and resume flows
- Itemlist - demonstrates REST-style URLs and inline flows
- Shippingrate - demonstrates Spring Web Flow together with Ajax technology
- NumberGuess - demonstrates stateful beans, evaluate actions, and "single key" flow execution redirects.
- Birthdate - demonstrates Struts integration
- Fileupload - demonstrates multipart file upload, set actions, and flash scope
- Phonebook-Portlet - the phonebook sample in a Portlet environment (notice how the flow definitions do not change)
- Sellitem-JSF - the sellitem sample in a JSF environment
- Booking-Faces - a more comprehensive Spring Web Flow + JSF application.
Current Release Notes
- Spring Web Flow 1.0.x is proven software fit for production use.
- Spring Web Flow runs on Java SE 1.3 or greater, and Java EE 1.3 (Servlet 2.3, Portlet 1.0) or greater. Spring Web Flow runs on all major application server platforms.
- Spring 1.2.7 or greater is required for the Spring 1.x series, Spring 2.0 or > is required for the Spring 2.x series.
- Struts Classic (1.2.9), Spring MVC, and JSF integration is shipped out-of-the-box.
- The 1.0 release signifies that public API and XSD backwards compatability will be preserved throughout the 1.x series.
Upcoming Release Notes
- Spring Web Flow 2.0 is the next major release of the framework, focusing on enhanced integration and ease-of-use.
- Spring Web Flow 2.0 final is due out in April of 2008.
- Join our forums for lively discussions about Spring Web Flow usage and architecture. This is the best way to get involved in the Web Flow community.
- Submit bug reports, enhancement requests, and patches using our JIRA issue tracking system.
- Access our SVN source code repository to follow along with Spring Web Flow development.
- Try out the latest features by downloading a nightly build.