The Spring folk keep pushing out code like the Apocalypse is coming.
Version 1.1 is looking nice, and seems pretty stable to me. I have been doing some work off of CVS HEAD and have been very happy with how stable it has been.
Some people would say it is due to TDD, but I think it is a bit more than that ;)
Hello everybody, I'm pleased to announce that Spring Framework 1.1 RC1 is now available. This release introduces a number of significant new features, among those various bean factory enhancements, JMS support, nested transactions, enhanced JDO support, and support for Apache OJB. * support for convenient JMS access in the new "org.springframework.jms" package * retrieve multiple class path resources with same name via a "classpath*:" resource location * reworked root/child bean definition concept, allowing to override any settings in a child * added support for static factory methods ("factory-method" in XML bean definitions) * added support for abstract lookup methods ("lookup-method" in XML bean definitions) * bean factories can invoke non-public constructors, also autowire them * AOP proxies including Advisors and TargetSources can now be serialized as far as possible * reworked ApplicationEventMulticaster to allow for pluggability ("applicationEventMulticaster" bean) * added "PROPAGATION_NESTED" to TransactionDefinition, for specifying a nested transaction * added SavepointManager interface as superinterface of TransactionStatus, for generic savepoint management * DataSourceTransactionManager supports nested transactions and savepoint management via JDBC 3.0 Savepoints * added TransactionAwareDataSourceProxy, to allow for participating in Spring transactions with plain JDBC API code * added support for retrieving JDBC 3.0 auto-generated keys to JdbcTemplate and SqlUpdate * added support for BLOB/CLOB parameter values to JdbcTemplate, SqlUpdate and StoredProcedure * added BatchSqlUpdate class to jdbc.object package, for convenient execution of batch updates * added deferred close option to OpenSessionInViewFilter/Interceptor, as alternative to a single session per request * reworked JdoDialect SPI (warning: not backwards-compatible!), to support more JDBC connection handling strategies * JdoTransactionManager supports isolation levels and timeouts via JdoDialect's "beginTransaction" method * introduced JdoOperations/JdoTemplate convenience methods for load, save, delete and find * added OpenPersistenceManagerInViewInterceptor and OpenPersistenceManagerInViewFilter * introduced "orm.ojb" package, for Apache OJB support (configuration in Spring, DAO support, transactions) * added "dataSource" property to SchedulerFactoryBean, for using a Spring-managed DataSource as Quartz job store * made BindStatus class more generic, moving it to support package, keeping a deprecated subclass in tags package * added "fieldMarkerPrefix" support to ServletRequestDataBinder, for auto-resetting via "_fieldName" marker parameters * added NestedPathTag for JSP, specifying a nested path (e.g. "customer.address") that BindTag will participate in * added FreeMarkerViewResolver as convenience subclass of AbstractTemplateViewResolver * added initial bind macro library for Velocity ("spring.vm"), automatically registered by VelocityConfigurer * added initial bind macro library for FreeMarker ("spring.ftl"), automatically registered by FreeMarkerConfigurer * reworked ContextLoaderPlugIn for Struts to support a context per Struts module For details on bug fixes and further new features in this release, see the changelog. For a showcase of Spring's new support for Apache OJB, have a look at Petclinic - which features OJB as third data access option now, alongside Hibernate and Spring JDBC. Spring 1.1 final is scheduled for mid August. The final release is mainly about completing the documentation, but of course there is also the chance of minor new features :-) Regards, Juergen