Spring Framework 2.5 RC1 released

Releases | Adrian Colyer | October 23, 2007 | ...

Dear Spring community,

I'm pleased to announce that the first Spring Framework 2.5 release candidate is available! Spring 2.5 is the culmination of the effort that started as Spring 2.1 milestones, enhancing Spring 2.0 with many new features, such as:

  • full Java 6 and Java EE 5 support (JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0, etc)  
  • full-featured annotation-driven dependency injection (including support for 'qualifiers') 
  • support for component scanning in the classpath (autodetecting annotated classes) 
  • bean name pointcut element in AspectJ pointcut expressions 
  • built-in support for for AspectJ load-time weaving (based on the LoadTimeWeaver abstraction) 
  • further XML configuration namespaces ("context", "jms") for maximum convenience 
  • completely revised framework for integration tests (with support for JUnit 4 and TestNG)
  • new annotation-based controller style for Servlet MVC and Portlet MVC
  • extended SimpleJdbcTemplate functionality (support for named parameters etc) 
  • officially certified WebSphere support (support for the WebSphere 6 UOWManager facility) 
  • Spring framework jars are shipped as OSGi-compliant bundles out of the box
  • Spring ApplicationContext can be deployed as JCA RAR file (for headless application modules) 
  • JCA 1.5 message endpoint management (for Spring-managed JMS and CCI message listeners)

Spring 2.5 RC1 Released

Download | Documentation | Changelog 

Particularly worth mentioning are the annotation-based MVC controller style, the JAX-WS support and the TestNG support, all of which are introduced in this release. Furthermore, this release comes in three different distributions, introducing a minimal standard zip and an intermediate with-docs zip.

We recommend upgrading to Spring 2.5 from all previous 2.0.x versions, in order to benefit from the new features as well as from the significant performance enhancements that Spring 2.5 has to offer. Spring 2.5 is designed as a drop-in replacement for Spring 2.0, except for the slightly restructured jar file contents (see the readme file in the distribution).

Note that Spring 2.5 is still compatible with JDK 1.4.2+ and J2EE 1.3+. Java 1.4 users, for example on WebLogic 8.1 or WebSphere 5.1/6.0, are very welcome to upgrade to Spring 2.5 as well! We recommend putting the backport-util-concurrent jar on the classpath when running on Java 1.4, which allows Spring (and hence your applications) to benefit from significant concurrency enhancements.

Juergen Hoeller
Interface21
http://www.interface21.com

The Spring Tool Suite

Engineering | Adrian Colyer | October 16, 2007 | ...

You may have seen some of the recent press surrounding the announcement that Interface21 is partnering with Tasktop to create a "Spring Tool Suite". This suite will bring together Spring IDE, the AspectJ Development Tools (AJDT), AspectJ, and Mylyn to create a task-focused approach to the development of Spring-powered enterprise applications. We hope to have a preview of the integrated suite available to share with you at the forthcoming The Spring Experience conference, but in the meantime you'll see many of the improvements flowing into the existing Spring IDE, AJDT, AspectJ, and Mylyn open…

Gartner Nails It on Innovation and Disruption

Engineering | Neelan Choksi | October 11, 2007 | ...

At last month's Gartner Open Source conference, analysts declared that open source had permeated a significant amount of the global software market. The details were highlighted in a recent Matt Asay blog that quotes the eWeek article. eWeek writes: “open-source products accounted for a 13 percent share of the $92.7 billion software market in 2006, but should account for 27 percent of the market in 2011 when revenue is expected to be $169.2 billion.”

At the same time, Gartner analysts Massimo Pezzini and Yefim Natis have published a report highlighting an important vein of disruption currently underway in the middleware and transaction processing markets. The September 24, 2007 report, titled “Trends in Platform Middleware: Disruption is in Sight,” highlights more than a dozen trends that “will disrupt the apparently static application server and transaction processing markets” and warns that…

Spring Web Flow 1.0.5 Released

Releases | Keith Donald | October 04, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.5 has been released.  This is a bugfix and minor improvement release addressing all issues reported against 1.0.4.  We recommend users upgrade to 1.0.5 from previous 1.0.x versions.

 

Spring Web Flow is a next generation Java web application controller framework.  The framework provides a powerful system for implementing navigation logic and managing application state consistently across a variety of environments.

Related Web Flow News 

Work on Spring Web Flow 2.0 continues, with the next 2.0 release milestone (M2) due out October 30th. 

Interface21 has an full-time position open in Melbourne, Florida on their Web Application Development Products Team, the team responsible for sustaining the development of Spring MVC, Spring Web Flow, and emerging Spring Web technologies.  Experienced web application developers able to work in Melbourne, FL are encouraged to apply.

Working with Spring Web Flow, the definitive guide to Spring Web Flow 1.0, has been published by Erwin Vervaet, founder and co-lead of the project. 

 

Spring Framework 2.0.7 Released

Releases | Juergen Hoeller | October 01, 2007 | ...

Dear Spring community,

I'm pleased to announce that Spring 2.0.7 has been released.

Spring 2.0.7 is a bug fix and minor enhancement release in the Spring 2.0 series, addressing all issues reported since 2.0.6 and backporting various refinements from 2.1 M4.

Spring 2.0 Released

 

Please see the changelog and JIRA roadmap for all the details of the issues addressed in this release.

Juergen Hoeller
Lead, Spring Framework Development
Interface21 - http://www.interface21.com

 

Our approach to the JCP

Engineering | Rod Johnson | September 30, 2007 | ...

As I've posted before, Interface21 is getting involved with the Java EE 6 effort, and various of our folk including myself, Juergen Hoeller, Keith Donald and Rob Harrop will be involved in a number of expert groups.

This means that we're getting more involved with the JCP in general. We respect the confidentiality and other provisions of the JCP, so we won't talk about anything that isn't public. However, I would like to talk about our goals for JCP involvement and the fundamental approach we will bring. Of course we are just one company among many companies and individuals, so we will just be…

Spring Batch 1.0 M2 Released

Releases | Dave Syer | September 27, 2007 | ...

We are pleased to announce that Spring Batch 1.0 M2 has been released! This milestone release introduces:

  • A set of Core APIs that can be used for configuring and building batch applications.
  • An execution environment and utilities for managing and monitoring multi-step jobs in a single virtual machine.
  • Packaging the framework into three pieces: infrastructure, core and execution.
More details on the features of this release and plans for the future can be found on the website (http://static.springframework.org/spring-batch, http://static.springframework.org/spring-batch/features.html).

We expect at…

The new bean() pointcut

Engineering | Ramnivas Laddad | September 24, 2007 | ...

Spring 2.5 features a new pointcut designator -- bean() that allows selecting join points in beans with a matching name pattern. Now it is possible to use the auto-proxy mechanism along with Spring-AspectJ integration to select a specific bean even when there are more than one beans of a type. Earlier, you could use BeanNameAutoProxyCreator to achieve a similar result; however, that mechanism didn't work with Schema-style or @AspectJ aspects.

Besides selecting a specific bean, this pointcut designator offers two interesting ways to select beans if you follow an appropriate naming convention:

  1. Selecting a vertical slice of beans: If you follow a convention where bean names include a string indicating their role from the business perspective, a bean() pointcut can select beans based on their business role. For example, you may use the bean(account*) pointcut to select all accounting-related beans such as accountRepository, accountService, and accountController if bean names start with a string representing their business functionality.
  2. Selecting a horizontal slice of beans: If you follow a convention where bean names include a string indicating their role from the architectural perspective, a bean() pointcut can select beans based on their architectural role. For example, you can use bean(*Repository) to select all repository beans if bean names end with a string representing their architectural role. Without the bean() pointcut, you had to rely on the package structure or type-based pointcuts, which can be sometimes a bit too restrictive.
The bean() Pointcut Designator

Figure 1: Selecting horizontal and vertical slices of beans based on their names using bean() pointcuts

This pointcut represents a Spring-specific extension to the AspectJ pointcut expression language and as such is useful only in a Spring-based application. The name-pattern follows the AspectJ matching rules for a name pattern with '*' being the only allowed wildcard. Here is a table showing a few example pointcuts and beans selected by them.
Pointcut Join points selected in
bean(accountRepository) The bean named "accountRepository"
!bean(accountRepository) Any bean except the "accountRepository" bean
bean(*) Any bean
bean(account*) Any bean with name starting in "account"
bean(*Repository) Any bean with name ending in "Repository"
bean(accounting/showaccount) The bean named accounting/showaccount (designating, say, a controller handling that URL)
bean(accounting/*) Any bean whose name starts with "accounting/" (designating, say, any controller handling accounting-related URLs)
bean(accounting/*/edit) Any bean whose name starts with "accounting/" and ends with "/edit" (designating, say, any controller handling the edit operation functionality related to accounting)
bean(*dataSource) || bean(*DataSource) Any bean whose name ends with either "dataSource" or "DataSource"
bean(service:name=monitoring) The bean named "service:name=monitoring"

More nonsense about open source

Engineering | Rod Johnson | September 22, 2007 | ...

In the aptly titled Nonsense about Interface21, a SourceLabs employee disagrees with my contention that commit rights are necessary to provide credible open source support.

Before I reply: I want to make again something completely clear that I already stated in my last blog, but seems to have been misinterpreted by some: Interface21 has no desire to prevent others making money from Spring. Our track record proves that. We welcome others writing about Spring and providing Spring services. Or basing products on Spring, like Matt Raible's AppFuse. We wish them success. Spring has partly gotten…

Replies to Nonsense about Open Source

Engineering | Rod Johnson | September 20, 2007 | ...

My blog a couple of months ago about models of open source businesses seems to have struck a chord. I've had many positive responses, and it prompted an interview request from a site called "How Software is Built". My interview is here.

Finally someone from OpenLogic has posted an interesting reply. Bryan Noll left some comments in a reply to my blog that merit a proper response.

First and foremost, I think your assertion that it is not healthy for a project or open source in general when people who have no real investment in a particular project offer support for it is an interesting one… one I've not heard before. I think there's enough validity to it to make a company like ours consider it and genuinely examine our responsibility to the open source projects we support. The result of this examination, in my mind, would be a demonstrable policy OpenLogic would have in order to mitigate the potential concerns you're raising. I'm sure I don't know what exactly that would be, so allow me to be vague at this point. This dovetails nicely though into some of the issues I have with what you're saying.
I think it would be pretty simple to find such a "demonstrable policy". OpenLogic needs to understand that the opening comment in Stormy's post that "Developers that work on open source software typically have day jobs that pay pretty well...so they work on open source software for free and write code during the day for big bucks" is largely wrong, understand where the open source software they hope to profit from comes from, partner appropriately, and set a price point that allows for genuine support. An alternative would be to stop claiming to provide enterprise support, and be clear that what is being offered is a kind of on-call development assistance, with no guarantee of being able to resolve critical issues. Which takes me back to why I felt strongly enough about Stormy's post to deconstruct it.

I see the aggregation model as a supermarket style business. When I shop at at supermarket, I expect that they will take a (small) cut from everything I buy, in return to dealing with many suppliers, bringing all the…

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