Jersey 0.3 is released
By sandoz on Sep 21, 2007
See here for an overview of the changes.
The main themes for this release are:
- Doing the right thing with URIs, that is for both Jersey processing URIs correctly and for developers to be able to safely and easily build URIs (using the UriBuilder class).
The mixing of the encoded character space of a URI and decoded character space of the URI components is often an area where subtle bugs are introduced. Indeed, the first email to the Jersey dev list was from Julian Reschke kindly pointing out an issue with percent-encoded URIs. Investigating the bug was a bit like pulling on a little piece of string to find a great big gnarly tangled knot of an issue at the end of it. In any case, i think we have now untangled everything so that Jersey does the right thing and developers can work safely in either decoded or encoded space as they wish.
- Controlling the life-cycle of and injection onto resource classes.
Marc describes the Resource Provider SPI and presents an example using this SPI to integrate with Spring (the source code of which can be found here).
- Smoother integration with containers.
Dan Diephouse has experimented with integrating Jersey and Mule (an open source ESB). While things worked quite well it was apparent that there was too much dependency on implementation details of Jersey and the contract was underspecified. Now there are documented abstract request and response classes in the container SPI that can be extended (the container implementations in Jersey also use this SPI).
Another improvement (motivated by requirements from Frank Martinez) is resource classes can now write directly to the output stream obtained from the container response. Thus enabling efficient streamed output of entities. In the next release it is planned to improve the integration with Servlet containers.
Finally, as well as Jersey 0.2.1 being available from the Glassfish update centre (0.3 will be there soon) and the NetBeans update centre as part of the RESTful Web services plugin, Jersey 0.2.1 and 0.3 (here) and JSR 311 0.2 and 0.3 (here) are now pushed to the java.net maven repository thanks to the work by Aaron Anderson.