Spring 4 and Servlet 3.0

Ian Young ian at iay.org.uk
Sat Dec 14 14:40:47 EST 2013


On the developers call this week, we discussed moving to Spring Framework 4.x, the GA of which has just been released. The decision was to try to go ahead with this, on the basis that it will be the right thing to be running by the time we ship IdP V3 in late 2014. I opened a JIRA case for the migration:

	https://issues.shibboleth.net/jira/browse/JPAR-41

I had thought I had tested this enough that I had hit all the snags before proposing this, but that turned out not to be the case. Like an idiot, I got caught by the M2Eclipse vs. Maven thing again.

The main thing I missed, which we now need to discuss, is that Spring Framework 4.x is dependent (at least for Mock classes used in tests, but probably elsewhere too) on Servlet 3.0, while our current dependency is on Servlet 2.5. So we need to have a discussion, and hopefully make a decision on the next dev call, as to whether we can target IdP V3 at a minimum of Servlet 3.0 in the same way as we've targeted it at a minimum of Java 7 already. Obviously the downside of doing so is that it won't be possible to deploy IdP V3 in containers  that only support older versions of the Servlet specification.

Here is some background information.

Servlet 2.5: dates from 2005, JavaEE and JavaSE 5. Supported by Tomcat 6, Jetty 6 and Jetty 7. RHEL 6 ships with Tomcat 6, but of course you can install your own.

Servlet 3.0: dates from 2009, JavaEE and JavaSE 6. Supported by Tomcat 7, Jetty 8 and Jetty 9. We're planning on using Jetty 9 as our standard supported container. RHEL 7 will ship with Tomcat 7.

Servlet 3.1: dates from May 2013, JavaEE 7. Supported by Tomcat 8 and Jetty 9.1. This seems too new to be viable, so I'm not suggesting it's a real option, this is just for completeness.

As well as the Servlet version issue and some minor tweaks to the codebase some of which I have already checked in, it turns out that Spring Web Flow is not yet compatible with Spring Framework 4.x despite previous announcements that it was. The incompatibilities are described in this Spring JIRA case:

	https://jira.springsource.org/browse/SWF-1600

That seems to imply that a Spring Web Flow compatible with Spring Framework 4.x is expected very early in 2014, which would be a prerequisite to dropping the latter in. We can drop in Servlet 3.0 and the associated code changes earlier if we do decide to go ahead though. The changes are mainly additions to a couple of wrapper classes and a change of the artifact ID for the Servlet API.

	-- Ian



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5943 bytes
Desc: not available
Url : http://shibboleth.net/pipermail/dev/attachments/20131214/1302a56f/attachment.bin 


More information about the dev mailing list