Dear Spring community,

I'm pleased to announce that the Spring Framework 2.5 final release is available! Spring 2.5 enhances 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)

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.

Cheers,

Juergen

[url]http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=173644&release_id=555312[/url]
 
Changes in version 2.5 final (2007-11-19)
-----------------------------------------

General
* updated javadoc and reference documentation
* revised PetPortal sample application into a full-fledged Java 5 showcase (annotation-based configuration etc)

Package org.springframework.aop
* fixed garbage collection problem with CGLIB proxies, using a strong reference map for the fixed interceptors

Package org.springframework.context
* "context:load-time-weaver" autodetects the GlassFish ClassLoader even within a GlassFish web app now
* "context:load-time-weaver" correctly detects the use of the Spring VM agent on WebLogic 9

Package org.springframework.core
* URL-to-File conversion for ClassPathResource/UrlResource performs URI-based decoding rather than using URLDecoder
* optimized UrlResource's handling of URI access and File access if constructed with a URI directly
* fixed AbstractLabeledEnum to correctly determine the default enum type for a top-level enum class (again)

Package org.springframework.jdbc
* added "registerDatabase" method to SQLErrorCodesFactory, for eager association of database names with DataSources

Package org.springframework.jms
* DefaultMessageListenerContainer avoids deadlock between Connection and Session through the use of a shared monitor

Package org.springframework.jndi
* fixed "jee:jndi-lookup" tag to correctly handle "default-value" and "default-ref" attributes

Package org.springframework.orm
* Hibernate SpringSessionSynchronization explicitly disconnects on suspend/completion (to make "on_close" work on JBoss)

Package org.springframework.scheduling
* fixed CommonJ TimerManagerFactoryBean to not require the "scheduledTimerListeners" property

Package org.springframework.test
* TestContextManager logs TestExecutionListener exceptions at error/warn level instead of info/debug

Package org.springframework.transaction
* JtaTransactionManager swallows IllegalStateException when synchronizing with existing transaction (for JBoss 4.2)

Package org.springframework.web
* CommonsMultipartResolver detects multiple files for the same field name and throws a corresponding exception
* RequestToViewNameTranslator kicks in before the "HandlerInterceptor.postHandle" phase
* RequestToViewNameTranslator's "getViewName" is allowed to return null if no default found
* fixed AnnotationMethodHandlerAdapter to expose the implicit model even when using request-to-view-name translation
* fixed AnnotationMethodHandlerAdapter to correctly match parameters even in case of request method specified as well
* DispatcherPortlet/AnnotationMethodHandlerAdapter swallows IllegalStateException when setting implicit render parameter
* Portlet AnnotationMethodHandlerAdapter preserves implicit model from action phase to render phase
* Portlet AnnotationMethodHandlerAdapter applies cache settings (prevents caching when session attributes are involved)
* Portlet AnnotationMethodHandlerAdapter allows default @RequestMapping annotations for action as well as render methods
* Portlet AnnotationMethodHandlerAdapter resolves PortletPreferences, PortletMode, WindowState, PortalContext arguments
* factored out AbstractWizardFormController's "getTargetPage" logic into WebUtils/PortletUtils, for reuse in custom code
* InternalResourceView explicitly sets content type on response in include case (for correct charset handling on Tomcat)
* exposed applicable standard HTML attributes on JSP "form:option" and "form:options" tags
* JSP form tags always autogenerate valid HTML ids (not including "[" or "]" characters from array element properties)