VMware offers training and certification to turbo-charge your progress.Learn more
SpringOne is humming along nicely. This year it's a 3 day show, up from 2 days last year, and once again it's great to see hundreds of attendees at a Spring conference. For once I'm quite relaxed at a show, as after the opening keynote I have no further sessions, and don't need to work on slides.
Right now, Adrian is preparing to make a major announcement about Spring tooling. Well actually he's giving a uniquely personal take on duck typing, as I'm sure you'll hear...
More about that later, but first I need to share some news from yesterday. I was happy to be able to announce that we have worked with IBM to certify Spring on IBM's flagship WebSphere Application Server. As much of Interface21's customer base is in large enterprises, we see a lot of WebSphere and have wanted to ensure the ideal integration for years. It's good to see that IBM share this goal. Their commitment to the integration was also largely driven by customers, many of whom have adopted Spring and experienced great results with it. As Spring adoption has moved from project-by-project to strategic, such customers want to know that this combination is supportable and that both vendors are behind it.
You could read the press release. But as press releases are for managers and tend to get reviewed and bounced around between the companies and PR agencies involved to a point of meaningless, so it's probably easier for me to explain what this really means in English rather than marketing speak.
If you're familiar with the Java EE and JTA specs, you'll know that they leave gaps--notably, how you do the significant things, like transaction suspension, that you can't do with a UserTransaction. These are corner cases, but when you encounter one of them it may be hard to work around it. While it's far preferable to delegate transaction management to Spring than to use JTA directly (for reasons of testability, exception handling and semantic completeness), the gaps in the standard JTA functionality can be problematic if that's all that's available underneath.
Fortunately, a solution is at hand to allow Spring to maximize the potential of the underlying platform. Spring provides a transaction abstraction--PlatformTransactionManager--that is semantically more complete than JTA but makes no assumptions about its environment. It's a key example of what we call portable service abstractions. Normally you don't use the PlatformTransactionManager directly, because Spring's declarative transaction management gives you a uniquely powerful option for applying programmatic transactions to any POJO, but it is the foundation of both programmatic and declarative transaction management in Spring. Because we don't make any assumptions about the environment, and environmental details don't leak into your code and decrease portability, we can safely tie into platform specifics. We've done this for WebLogic, Oracle have done it for OC4J, and we have now worked with IBM to produce a first-class integration for WebSphere.
Following Spring's core value proposition, we take care of the plumbing so you don't have to. As you would expect, the new WebSphere transaction manager is very easy to use. If you're using WebSphere with Spring, you should use the new PlatformTransactionManager abstraction that we have developed with IBM. This is a trivial configuration setting. Instead of using JtaTransactionManager, you use the new WebSphereUowTransactionManager, like this:
More technical details are in an IBM DeveloperWorks article Using Spring and Hibernate with WebSphere Application Server. Note that if you've read this article before (or your manager has read the previous version and gotten scared) it has been updated significantly. Also on DeveloperWorks is an interview with myself and Paul Buck of IBM (Director, WebSphere Open Source) discussing the integration effort.
One of the authors of this article, Sara Mitchell of IBM's Hursley lab in the UK, is here at SpringOne and will be presenting tomorrow on Spring on WebSphere. Sara has done much of the technical work on the integration and it's been great to see here engaging in the Spring community through our forums and through presentations. Savio Rodrigues of IBM is also here, and appears to be enjoying the show.