I’m just fresh out of a session at JavaOne where Sun have revealed their road map for the servlet 3.0 specification. My initial reaction is that it contains both some good and bad items as well as quite a few concerns in between.
The 10 words or less version is: Annotations, JSF, Ajax, Comet, REST, scripts, security and Misc.

Java Community Process

My first concern with the road map is that I, as a member of the JCP servlet expert group had to go to a JavaOne session to see it for the first time. I hope that this does not signal a return to the bad old days where the JCP was used only as a post process rubber stamp for Sun’s internal design process. The talk did mention consultation with the expert group, but I would have been less concerned if we have been involved in setting the agenda as well as helping find a solution for it

Annotations

I’m not a huge fan of annotations, but given that they are already in 2.5 the additional annotations shown all looked reasonable. The aim is to make web.xml either redundant or at least only used for deployment overrides of reasonable defaults.

Java Server Faces

There was a lot about improved integration with JSF. This may be good or bad, but I don’t really care either way. I continue to not understand why the servlet specification should be closely tied any one web framework. The servlet spec should be web framework neutral and having a “favored son” will just lead to more special cases – like the need for all webapps to scanned for JSP and JSF descriptors even if they do not use JSP or JSF!

Ajax Comet

The good news is that support for Ajax comet (Ajax Push) is on the agenda. The bad news is that the talk appeared to describe the only use case for asynchronous servets to be Comet Ajax, and then only the forever response flavor of that. As I have described in my blog, Ajax Comet is only one of many use cases for asynchronous servlets. Any servlet that might block for a JDBC connection pool, a remote webservice or any other slow resource could benefit from threadless waiting support. So I hope the agenda revealed was only a subset of the use-cases to be addressed and not the limit of the vision.

REST

The integration of REST support will be welcomed. Well designed REST support will allow developers to focus on content rather than HTTP protocol. The annotations shown looked like a good step in the right direction, with my only concern being the use of streams to define content could restrict servers from efficient non-blocking handling of content. Hopefully other ways to provide content can be included.

Scripts

Exciting development to allow alternate languages other than java to run on the JVM and produce content efficiently through servlets. One size does not fit all and one language does not suit all. Looking forward to this bit.

Security and Misc

Web security has always been lumped in with Misc in the servlet spec and thus is half baked. In the road map it got its own heading as it deserves and hopefully this blog will be the last time you see security as Misc.
Most of the other sore points in the servlet spec (eg welcome files) were listed as needing attention in 3.0

Summary

It is important that we keep servlet spec relevant to the way developers produce content. If servlets do not grow to support most of the issues mentioned above, then developers will continue to find ways to bypass standard servlets. Servlets are a key foundation to the whole JEE stack and if they are bypassed, so much of the work done to achieve interoperability and standards will be lost as different foundations are used by different web innovations.
So while progress on a 3.0 servlet spec is well overdue, I welcome Sun’s statement of intent and look forward to the months ahead and hope that some good solutions may quickly be agreed and specified.


6 Comments

Ignacio Coloma · 10/05/2007 at 09:40

What I really miss in web.xml today is a portable way to read the file contents: which servlets have been deployed, paths, etc. Right now a manual parsing is needed, which is bad for web libraries. This is kinda stupid, because the JSF standard is the first one affected by this; they require to know how is the controller servlet deployed, per the spec, but the servlet container offers no way to know.

Also for web libraries, a way to include jsp files with your jar would be nice.

David J. Kordsmeier · 11/05/2007 at 16:05

It was great meeting you on Thursday at the Jetty-Terracotta booth.  I am sold on Jetty, and will be working it into future architecture designs and current deployments.  Thanks for the cool shirt!

David Waite · 16/05/2007 at 23:23

Any chance this roadmap will be shared? I’m curious to see what is planned so far.

Niall · 21/06/2007 at 00:14

JSR 315 only lists you as a supporter – rather than part of the expert group – does that mean you were excluded?

Seems disappointing to me if someone like yourself is excluded from giving feedback

jcp.org/en/jsr/detail
http://www.theserverside.com/news/thread.tss

Greg Wilkins · 21/06/2007 at 05:02

Niall,

somehow my JCP membership has been lost and my account cancelled? Thus I have fallen off the EG.  

But I am sure it is only a paperwork stuff up and that I will be back on the EG as fast as the wheels of bureaucracy can turn.

Anonymous · 03/09/2007 at 14:04

When servlet 3.0 will be released for public review?

Comments are closed.