Spring 3.0 arrives, tries to have it both ways with Java EE

Spring 3.0 is here, which should be of interest to the people who use it. Of whom there are many! For good reasons! This is how The H puts it:

The Spring Framework was founded in 2002 with the aim of simplifying the programming of enterprise Java applications.

Now, most of the simplifying was aimed at the enterprise end. Java EE programming was, and is, complicated, and a lot of people wanted to get some of the power of enterprise Java, but without the programming overhead. Spring aimed to fill that role! In other words, the whole point of Spring is that it wasn't Java EE. That's why it's interesting to note that Spring is selling its latest iteration as compatible with Java EE -- or, to be more specific, "compatible with Java EE 6 final in terms of runtime environments." This is getting taken up in other coverage of the release.

But what exactly does it mean, really? I turned to the most important source of information in the Java community: grumpy blog comments. Alexis MP on a DZone article on the subject says, in responding to the original post author mentioning Java EE 6 compatibility in passing:

Sorry but saying that Spring 3.0 is "compatible with the final Java EE 6 specification" is very misleading. In fact it "supports" (read "can make us of") a small selected subset of the Java EE 6 APIs and even the REST implementation is not JAX-RS compliant. The only way to offer Java EE 6 compatibility is to pass the TCK by implementing either the web or the full profile. Note you're probably not the one to blame here since SpringSource has unfortunately been using similar phrasing for a while now.

In a comment on an InfoQ article, Gavin King notes:

While I would certainly like to see Spring get on board with the Java EE web profile, it's worth pointing out that for now, Spring's idea of "Java EE 6 support" is that Spring provides patchwork integration with *some* Java EE 6 technologies. The ones mentioned here are JPA2 and JSF2. But Spring already had integration with JPA and JSF, so it sounds as if they have not done much actual work here. I guess this line item got added by the marketing team, to capitalize on all the EE6 buzz.

With Java development taking place in a world of mix-and-match environments, and "products" really being collections of components, it's natural that mushy terms like "compatible" and "support" can be misused. But it does seem to me that Spring is trying to have it both ways here -- selling itself as the alternative to Java EE, and yet still sort of compatible with it.

This story, "Spring 3.0 arrives, tries to have it both ways with Java EE" was originally published by JavaWorld.


Copyright © 2009 IDG Communications, Inc.