Jersey 1.3 is released

We have recently released version 1.3 of Jersey, the open source, production quality, reference implementation of JAX-RS. The JAX-RS 1.1 specification is available at the JCP web site and also available in non-normative HTML here.

For an overview of JAX-RS features read the Jersey user guide. To get started with Jersey read the getting started section of that guide. To understand more about what Jersey depends on read the dependencies section of that guide. See change log here.

Usually this version would also be placed on the GlassFish Update Center and integrated into the GlassFish M2 release but we hit some last minute glitches with our GlassFish OSGi integration that broke the RESTful admin service. So we are working on fixing that for the next release.

This release only works with Java SE 6 or greater (still eagerly waiting for SE 7!) which greatly simplifies our build and deployment infrastructure. In addition to stopping those annoying compilation issues when developing on SE 6 but compiling on SE 5 (String.isEmpty() i am talking about you)

After seeing too many developers place asserts in JAX-RS/Jersey code to check that injection was working i simply could not stand by any longer. What had been put of for way too long is now implemented in Jersey 1.3 and dependency related errors will occur on deployment. As many errors as possible will be displayed to avoid a compile fix loop.

We added a nice little addition to Guice so that singleton-based provider classes can be injected using the @Inject semantics, see the JerseyServletModule. Unfortunately due to Guice's restriction in binding it is not currently possible to support the @\*Params in the same manner. However, IMHO, such extensions using modules is way better than the extensibility approach defined by CDI (see later). All i need to do is find the time to tweak Guice as after having looked at the code i estimate only minor changes to the API and implementation are required.

For the next release, 1.4, we are going to improve the CDI integration. Roberto is doing some seriously impressive Java magic in the Jersey CDI extension class and has it working in a branch. This will mean all JAX-RS artifacts, such as UriInfo and @QueryParam will work with @Inject. CDI has the virtue of being more extensible than Guice (with the set of shoot yourself in the foot implementations being much larger than the set of workable implementations) but IMHO the approach is not modular nor deterministic if one or more extension is present. Or to put it more succinctly: Guice is better. However, CDI is in Java EE 6 so we must make Jersey work well with CDI.

Jakub continues to improve the OSGi integration, which is proving particularly tricky as we are effectively managing 4 platforms: non-OSGI, pure OSGI (tested on Felix), GlassFish OSGi; and Web/war deployment.

Pavel has been making improvements to the test framework and recently added experimental support for JRebel. A sample will be included in the near future.

A new team member, Jon, has joined us to help work on testing, our Hudson infrastructure, and the test framework. He is already up and running tidying up niggles in our inconsistent documentation.

We continue to ensure that Atmosphere, which recently cranked out a 0.6 release with loads of stuff, works smoothly with Jersey. For 0.7 we may have something interesting to say about high-level integration with WebSocket, stay tuned for more details on that (and for a session at JavaOne).

For feedback send email to: (archived here)

or log bugs/features here.


Is there anything on the roadmap for getting the JAckson pumped up to something more recent? We really need some of Jackson's 1.5 features. Jersey is still running Jackson 1.1.1.

Posted by Gary on July 12, 2010 at 03:09 PM CEST #

@Gary: i plan to simplify JSON configuration and to bump up the Jackson version as part of this effort. Both things should happen till September this year, as i want to get it into GFv3.1.

Posted by Jakub on July 13, 2010 at 03:06 AM CEST #


Is there any plan to support HATEOAS in the future on Jersey?


Posted by Iqbal Yusuf on August 08, 2010 at 01:49 PM CEST #

Hi Iqbal,

While Jersey/JAX-RS does not stop you from doing HATEOAS (and there are some stuff to help) we can improve on this.

On the server side:

On the client side:

Both of these aspects are currently in the experimental area of Jersey but will be moved to the stable area to be a aligned with a milestone of GlassFish in September.

Note that experimental stuff is only available as SNAPSHOTs.


Posted by Paul Sandoz on August 09, 2010 at 02:56 AM CEST #

Are there any planned improvements to the extended wadl generation? I'd like to be able to have a way to easily integrate something like a wadl.xsl into the final output.

Posted by Michael on August 24, 2010 at 02:01 PM CEST #

Hi Michael,

There are currently no plans to improve it. Please log an issue here with details:


Posted by Paul Sandoz on August 31, 2010 at 02:58 AM CEST #

Post a Comment:
  • HTML Syntax: NOT allowed



« July 2016