Yesterday morning I presented a 2-part session at The Spring Experience entitled “Enterprise Integration Patterns with Spring”. The first presentation included an overview of core Spring support for enterprise integration - including JMS, remoting, JMX, scheduling, and email. That presentation also included a high-level discussion of several of the Enterprise Integration Patterns introduced in the book of the same name by Gregor Hohpe and Bobby Woolf. In the second presentation, I officially unveiled “Spring Integration” - a new addition to the Spring portfolio. Spring Integration builds upon Spring’s core support while providing a higher level of abstraction largely inspired by those patterns. Here I would like to provide a brief overview of the topics I discussed in that session. You can also read two articles about Spring Integration that appeared yesterday on eWeek and InfoWorld.
The Spring Blog
Dear Spring Community,
A summary of the more important changes:
- Added pooling library which features flexible connection validation and better configuration than the built-in pooling. Many thanks to Eric Dalquist for this contribution. (LDAP-85)
- Fixed a problem in AbstractContextSource which led to an unnecessary reference to the LDAP Booster Pack (ldapbp). (LDAP-88, LDAP-89)
- Fixed bug in SimpleLdapTemplate where the wrong target method was being called. (LDAP-93)
- Made createContext in AbstractContextSource protected rather than package private. (LDAP-94)
Dear Spring community,
I'm pleased to announce that Spring Web Services 1.5.0 M1 has been released.
This milestone release introduces:
- JMS transport support, for both client- and server-side
- Email transport support, also for both client and server
- Two new Spring namespaces, which drastically decrease the amount of XML to configure marshallers and typical Spring-WS constructs
- SOAP 1.2 Compatible WSDL descriptor generation
- Spring-WS jars are now OSGi bundles
I was cruising the blogosphere today and encountered one of the shortest blogs I’ve ever read. To quote nearly the entire entry, “Every time you use Acegi, a fairy dies. The sad thing is there really isn’t anything better around…”.
Between our community forums, developer lists, JIRA, user conference BOFs, training, support, consulting and team blog, we receive a great deal of community feedback. There is little doubt that many people have sought improvements to the Spring Security (formerly Acegi) configuration format, and we’ve invested a lot of time in making that possible.
Spring Batch 1.0.0.m3 is now available via the Spring Portfolio Milestone Repository (browse). See the Spring Batch downloads page for more information.
We have had a lot of good feedback from the community, and from a large number of Accenture projects that are using or evaluating Spring Batch. So the 1.0.0-m3 release has quite a range of bug fixes and new features. The main impact to existing users will be class name changes in the input and output abstractions. New (non-Maven) users will find it much easier to get started with the new .zip assembly including all dependencies. There is also a new section on the website describing in detail how to migrate from 1.0-m2 to 1.0.0.m3.
I would also like to welcome Ben Hale on board as the new SpringSource technical lead on Spring Batch. Ben will be working full time on Spring Batch, and moving to the UK in January 2008 to concentrate on this work. With Ben’s help we have put together a plan for the last milestone 1.0.0.m4 which delivers at the end of January or early February. After that we anticipate, barring unforeseen problems, a fast turn over into rc1 and 1.0.0 final. As usual you can track the roadmap via JIRA.
Since the introduction of Spring dynamic laguage support in Spring 2.0 it has been an attractive integration point for Groovy, and Groovy provides a rich environment for defining Domain Specific Languages (DSL). But the examples of Groovy integration in the Spring reference manual are limited in scope and do not show the features in Spring that are targeted at DSL integration. In this article I show how to use those features and as an example we add bean definitions to an existing ApplicationContext with a Groovy DSL from the Grails distribution.
By popular demand, the Spring Framework Maven artifacts are now being uploaded to the Spring Snapshot Maven Repository. You can find details about all of the Spring Portfolio Maven repositories in my previous post but I’ll reprint the details for the Spring snapshot repository here.
The Spring Snapshot Maven Repository is located at http://s3.amazonaws.com/maven.springframework.org/snapshot. Using this repository requires you to add an entry to the <repositories/> element in your POM. It should look like this:
Dear Spring Community,
We are pleased to announce that the Spring Framework 2.5 final release is now available.
Spring 2.5 enhances Spring 2.0 with many exciting new features, including:
- Full Java 6 and Java EE 5 support (JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0)
- Full-featured annotation-driven dependency injection, including support for ‘qualifiers’
- Support for auto-detecting application components in the classpath and auto-configuring them as Spring managed objects
- A new bean name pointcut element in AspectJ pointcut expressions
- Built-in support for AspectJ load-time weaving based on the LoadTimeWeaver abstraction
- New XML configuration namespaces "context" and "jms", for maximum convenience
- A completely revised integration test framework, with first-class support for JUnit 4 and TestNG
- A new annotation-based controller model for Spring MVC supporting Servlet and Portlet environments
- Extended SimpleJdbcTemplate functionality, including support for named SQL parameters
- Officially certified WebSphere support
- The packaging of Spring Framework jars as OSGi-compliant bundles out of the box
- The ability to deploy a Spring ApplicationContext as a JCA RAR file, for headless application modules
- JCA 1.5 message endpoint management, for Spring-managed JMS and CCI message listeners
We’re changing our name. This week, Interface21 will become SpringSource.
As we have built the company, Interface21 has earned a reputation for exceptional products, thought leadership, outstanding people, professionalism and top quality support and services. As we continue to deliver all of those things, we believe that changing our name will help our company bring them to a wider audience.
When I founded Interface21 in 2004, I had to pick a name. I believed Spring to be the future of enterprise Java, and “Interface21” reflected those feelings—the framework for the 21st Century. Now we’re well into the 21 Century. Spring has proven to be more successful than I could have dreamed, and has become a de facto standard for enterprise Java. It’s also growing in popularity on the .NET platform. Millions worldwide have downloaded Spring Portfolio products. All the major Spring committers work here.
Spring Web Flow 2.0 M2 has just released. I am particularly excited about this release because it sets the foundation we need to realize the bold vision we have for our community for the future. In this entry, I’ll explain what that vision is, and exactly what this foundation will enable. I’ll also go into detail about the architecture of Web Flow 2.0, and compare it to the 1.0 version.
The Spring Web Flow 2.0 Vision
* UPDATE: The vision above was updated on 1/11/08 after considering large amounts of feedback from the Spring community since The Spring Experience 2007. Based on that feedback, Spring Web Flow 2.0, scheduled to release in March 2008, will remain focused on the orchestration of controlled navigation and application transactions in a web application, usable as a complement to Spring MVC in an action-based MVC environment and JavaServerFaces in a component-based environment. When used with JSF, Spring Web Flow 2.0 can power an entire JSF-based web application as a “black box” or can be mixed with standard JSF navigation handlers that implement free-navigation requirements. 2.0, therefore, will be an evolutionary release adding first-class support for JSF and Ajax, supporting Java 1.4+, and providing full backwards compatibility with the SWF 1.0 flow definition language.