Thursday Jan 27, 2011

Jersey 1.5 is released

We have recently released version 1.5 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.

In the interval between releasing Jersey 1.4 and Jersey 1.5 both the JSR 311 project and the Jersey project transitioned to the new java.net infrastructure. There are probably a few links here and there that still need updating. One noticeable improvement is the visibility of the project to search engines now that HTTPS is not the default. That means it is much easier to search for stuff in the User guide and JavaDoc. The project name is starting to compete in search ranking with the island and comes out favorably when searching for JAX-RS.

This release contains mostly bug fixes rather than features. This version, failing any showstoppers, will be shipped with GlassFish 3.1.

For feedback send email to:

users@jersey.java.net (archived here)

or log bugs/features here.

Friday Oct 15, 2010

Jersey 1.4 was released on September 11th

[This is a rather tardy announcement of the Jersey 1.4 release which occurred just before the week of JavaOne a week of vacation to decompress.]

We have recently released version 1.4 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.

Pavel integrated JRebel support with Jersey, see here.  So now it is possible to modify code, compile and JRebel will inform Jersey to reload information. Jersey needs to reload because it caches information about classes, using reflection, at runtime.

Martin and Jon improved the look and feel of the JavaDoc and user guide, added a search bar on the main page, and improved the way Google indexes the Jersey site, user guide and JavaDoc. For example if one searches for Viewable information about Jersey's Model View Controller support is displayed (note that documentation still needs to be added for this).

A client side HTTP digest authentication filter was contributed Raphael Jolivet.

Jackson was upgraded to version 1.5.5 (this project releases fast!). And Jakub added simplified configuration support for Jackson so it is not necessary to explicitly register the Jackson JAX-RS providers. See here.

The jersey-core module now bundles the classes from the jsr-311.jar so it is no longer necessary to include the latter jar in your class path. This was required so we can correctly isolate OSGi bundles using different versions of Jersey.

Roberto added support for improved CDI integration such that parameters of constructors of CDI constructed or managed beans may be injected with JAX-RS artifacts. This requires some fairly funky adaption of the CDI bean module in a CDI extension and pushes CDI and Weld to the limits. Unfortunately because of this it has introduced a regression with with GlassFish 3.1 and the current version of Weld. We tried to work around the issue but alas it sometimes fails with an NPE. However, the good news is i managed to create an alternative work around, which looks promising (thanks John Lister for verifying and providing addition feedback/patches!). The new workaround should be available in an early access release of 1.5 next week.

Martin is my manager but Martin codes :-) he added an API and SPI to make it easy to build OAuth 1.0 service providers. The default in-memory implementation of the SPI can be used for samples and tests and to guide people on how they can develop a more advanced implementation that persists credential information. See more here.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log bugs/features here.

Friday Jul 02, 2010

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:

users@jersey.dev.java.net (archived here)

or log bugs/features here.

Monday May 10, 2010

Jersey 1.2 is released

We have just released version 1.2 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.

The main driver for this release is basic OSGi support. This has been hard work as Jakub will testify. Most of Jakub's time was spent on testing.

Currently only the jersey-core, jersey-server, jersey-client and jersey-json modules have been made OSGi aware (the other modules will be completed in the next release). The following deployment scenarios work. Deploying using Grizzly or Jetty with the OSGi HTTP service (see osgi-http-service sample) and deploying OSGi war-bundles to Jetty (see helloworld-osgi-webapp sample). Deployment requires that root resource and provider classes are explicitly declared (the next release will hopefully support package scanning).

For the next release, 1.3, Jersey will only work on Java SE 6 or greater.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log bugs/features here.

Thursday Mar 11, 2010

Jersey 1.1.5.1 is released

We have just released version 1.1.5.1 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.

This release is targeted at users of the WebLogic application server and contains patches for regressions to class and package scanning algorithms that scan for root resource and provider classes.

As soon as the OSGi work is finalized (and considered suitably battle tested) we will release 1.2. Nearly there :-)

Wednesday Feb 03, 2010

GlassFish @ Oracle

Two very interesting comments on the server-side from Mike Lehman and Eduardo about GlassFish @ Oracle.

This clarifies some mis-interpretations and counters some prematurely shot FUD.

Mike states at the end of his comment:

We are very excited to have GlassFish on board at Oracle. Areas like GlassFish proper and key constituent pieces like Metro, Grizzly, Jersey etc are state of the art; there is huge incentive to shepherd them correctly. You will have to judge us on how we execute over the next few months while we realign roadmaps and delivery schedules but I hope we can surprise folks with some good turns we can do as a combined company.

Eduardo states at the end of his comment:

So, my suggestion to GlassFish fans is to please give us some time to put together that roadmap, and then use it to make your own decisions.


Wednesday Jan 20, 2010

Jersey 1.1.5 is released

We have just released version 1.1.5 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.

It will be available soon from the GlassFish v2 and v3 update centers.

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.

This release will align with the soon to be released of Atmosphere 0.5. 

Deployment to Google App Engine now works and we have a tracing mechanism (inspired from Hudson) to aid debugging.

In between releasing 1.1.4.1 and 1.1.5 Bill Burke's JAX-RS book has been published. I have not had a chance to look at the book in detail, but it appears generally well received from the tweets i have seen. The examples in the book require RESTEasy so Pavel, with Bill's permission, converted those samples to work with Jersey and, with much help of Alexis Moussine-Pouchkine, embedded GlassFish. The examples required minimal modifications to the web.xml (Java EE 6 solves that problem!) and some minor tweaks to reach parity with some RESTEasy specific features (specifically around configuration of URI content negotiation and human readable formatting of XML responses). Overall the portability of the examples was very good. You can find the samples here.

Jakub has made some good progress on OSGi, many thanks to the developers who have helped test and provide feedback. It is in the trunk, but we decided not to connect it up to the build and deployment process until we have more thoroughly tested the implementation and investigated some areas for further improvement. (It certainly has not been trivial to develop good and robust OSGi support!)

So when OSGi support is ready we will release the next version of Jersey, 1.2.

Meanwhile Santiago has been very busy investigating better hypermedia support for both the Jersey client and server. There is a prototype sample in a branch that reflects Santiago's current thinking.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Thursday Nov 26, 2009

Jersey 1.1.4.1 is released

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

This is a bug fix release for bugs that were found by community members who quickly tested the 1.1.4 release. Many thanks to Ari, Chris, Herak and Ian for reporting issues.

It will be available soon from the GlassFish v2 and v3 update centers, is included in the latest GlassFish v3 builds and, assuming there are no show stoppers, this version will be included in the final GlassFish v3 release scheduled for December 10th.

Looks like we are getting more demands to work on Google App Engine (based on comments on my previous blog and on the Jersey users list). This is going to require some re-factoring of certain functionality that utilizes javax.naming. But first i need to get a GAE account!

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Thursday Nov 12, 2009

Jersey 1.1.4 is released

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

It will be available soon from the GlassFish v2 and v3 update centers, is included in the latest GlassFish v3 builds and, assuming there are no show stoppers, this version will be included in the final GlassFish v3 release scheduled for December 10th.

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.

This release integrates with other Java EE 6 technologies such as Servlet 3.0, EJB 3.1, managed beans and JCDI 1.0 and contains many bug fixes. See change log here.

The next release, 1.1.5, is tentatively scheduled for December or January. Hopefully this time we can fully resolve the OSGi'ification of Jersey that we have been promising for a while. In addition, now that the Java EE 6 features are done, we hope to resume some experimentation and new features and ensure we have good integration with Atmosphere.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Wednesday Aug 26, 2009

Jersey 1.0.3.1 and 1.1.2-ea are released

We have just released versions 1.0.3.1 and 1.1.2-ea of Jersey, the open source, production quality, reference implementation of JAX-RS.

Version 1.0.3.1

Version 1.0.3.1 implements the JAX-RS 1.0 API. The JAX-RS 1.0 specification is available here.

It will be available soon from the GlassFish v2 and v3 update centers, and will ship with GlassFish v2.1.1.

To get started read the getting started document. For an overview of JAX-RS features read the Jersey user guide. To understand more about what Jersey depends on read the dependencies document.

This release contains a few important fixes (most notably a security fix for XML processing). See change log here.

Version 1.1.2-ea

Version 1.1.2-ea of Jersey, implements the draft JAX-RS 1.1 API. The draft JAX-RS 1.1 specification is available here.

It will be available soon from the GlassFish v2 and v3 update centers, and will ship with Glassfish v3 Milestone 6 (see schedule) in addition to the nightly and promoted builds.

To get started with Jersey read the getting started document. For an overview of JAX-RS features read the Jersey user guide. To understand more about what Jersey depends on read the dependencies document.

This is mostly a minor enhancement and bug fixing release.  See change log here.

Naresh and I worked on improving the Jersey Test Framework. This breaks compatibility with the previous version in 1.1.1-ea but hopefully developers will see the improvements (note that many but not all Jersey samples use the test framework and eventually all samples will use it). See the API here.

Pavel worked on integrating some very basic GlassFish probes into the hierarchical matching algorithm and has wired them up to the GlassFish monitoring framework so it is possible to report simple statistics on which resource classes get matched to request URIs.

Two interesting developments of note:

  • The Glassfish v3 RESTful interface for management and monitoring is progressing nicely. It needs to use a Jersey container request filter to massage the Accept header such that if HTML and XML-based media types are present the former always has the higher quality. Then the HTML representations will be returned when Safari is used.
  • Akka is an Actor-based framework with Software Transactional Memory that is written in Scala. It can expose it's components RESTfully using Jersey and Cometfully ( ;-) ) using Atmosphere.

Next release

The next release, 1.1.3, is tentatively scheduled for the final release of Glassfish v3 in November and is dependent on alignment with other EE 6 technologies such as Servlet 3.0 and JSR 299/330. In addition we plan to implement full OSGi support thanks to the help and guidance of Richard Wallace (unfortunately we had no time to implement that for 1.1.2).

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Wednesday Jul 15, 2009

Jersey 1.1.1-ea is released

We have just released version 1.1.1-ea of Jersey, the open source, production quality, reference implementation of the draft JAX-RS 1.1 API. The JAX-RS 1.0 specification and the 1.1 change log is available at the JCP web site and also available in non-normative HTML here.

It will be available soon from the GlassFish v2 and v3 update centers, and will be shipped with the latest GlassFish v3 builds.

To get started with Jersey read the getting started document. For an overview of JAX-RS features read the Jersey user guide. To understand more about what Jersey depends on read the dependencies document.

Between releases there has been some very interesting developments with a "sister" projected called Atmosphere. If you are interested in portable Comet support and how to avail of high-level ease of use support with Jersey check out JFA's latest blog entries.

This release took a little longer than expected with holidays post JavaOne, alignment with a version of JAXB for JSON namespace related features, a last minute XML-related security fix, and being hindered by the java.net infrastructure:

  • Jakub has implemented the eagerly anticipated JSON namespace support for "mapped" (the default) and the "natural" conventions. In addition we have re-factored the JSONJAXBContext such that developers can use it to marshal and unmarshal JSON with JSONMarshaller and JSONUnmarshaller respectively.
  • Paul Bryan and Hubert Le Van Gong have added OAuth which comprises Jersey client and server support that leverages an OAuth signature library. The modules are currently located here, but for 1.1.2-ea-SNAPSHOT and future releases they are located here.
  • James Strachen has integrated support for lift templates with Jersey's MVC framework. The module is located here. To see Jersey, Scala and lift in action check out the RestMQ project.

See change log here.

The next release, 1.1.2-ea or 1.1.2, is tentatively scheduled for late August 2009 and is dependent on alignment with other EE 6 technologies such as Servlet 3.0 and JSR 299/330. In addition we plan to implement full OSGi support thanks to the help and guidance of Richard Wallace.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Monday May 04, 2009

Jersey 1.1.0-ea is released

We have just released version 1.1.0-ea of Jersey, the open source, production quality, reference implementation of the draft JAX-RS 1.1 API. The JAX-RS 1.0 specification and the 1.1 change log is available at the JCP web site and also available in non-normative HTML here.

This is an early access (ea) release until Marc and I complete the maintenance process with the JCP (the review period completed on the 3rd March) and we have implemented all EE 6 related integration features. You can expect the same level of quality as for the previous releases, and JAX-RS 1.1 is binary backwards compatible with JAX-RS 1.0 so existing JAX-RS 1.0 applications should work without recompilation.

It will be available soon from the GlassFish v2 and v3 update centers.

To get started with Jersey read the getting started document. For an overview of JAX-RS features read the Jersey user guide. To understand more about what Jersey depends on read the dependencies document.

The following JavaDoc is available:

  • Client, Server, Grizzly, WADL, JSON APIs.
  • Spring integration API.
  • Guice integration API.
  • MIME Multipart API.
  • Client using Apache HTTP client API.
  • Atom with Apache Abdera API.
  • Simple HTTP server integration API.

Given the short time-frame between 1.0.3 and 1.1.0-ea there are not too many bug fixes and features (see change log here):

  • I implemented some fixes and improvements to the EJB integration. Resource classes can be singleton beans and Provider-based classes can be singleton or no-interface view stateless session beans.
  • Pavel has added a sample showing how to use Jersey with HTTPS and GlassFish.
  • James contributed the jersey-scala module. This module will contain classes and components that make it easier to build JAX-RS/Jersey-based applications in Scala. Currently it contains a message body writer to serialize XML nodes, so one can do this:

      @Path("markup")
      class MarkupResource {
        val name = "James"

        @Produces(Array("text/html"))
        @GET
        def get() = <html>
          <body>
          <h1>Hello {name}</h1>
          <p>Markup generated by Scala code at {new Date()}</p>
          </body>
        </html>
      }

The next release, 1.1.1-ea, is tentatively scheduled for the end of May 2009. However, it depends on how much progress we make with our JavaOne preparations.

For feedback send email to:

users@jersey.dev.java.net (archived here)

or log a bugs/features here.

Thursday Apr 16, 2009

Jersey 1.0.3 is released

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

It will be available soon from the Glassfish v2 and v3 update centers.

To get started with Jersey read the getting started document. For an overview of JAX-RS features read the Jersey user guide. To understand more about what Jersey depends on read the dependencies document.

The following JavaDoc is available:

  • Client, Server, Grizzly, WADL, JSON APIs.
  • Spring integration API.
  • Guice integration API.
  • MIME Multipart API.
  • Client using Apache HTTP client API.
  • Atom with Apache Abdera API.
  • Simple HTTP server integration API.

This release has many bug fixes, you can see the change log here, as well as the following improvements and features:

    • Guice 2.0 integration, leveraging the contribution by Gili Tzabari. Guice integration is on a par with Spring integration.
      The support depends on Guice 2.0 distributed in the GuiceyFruit maven repository. GuiceyFruit, developed by James Strachan, is a set of extensions to Guice 2.0, such as support for Java EE artifacts like @PostConstruct/@PreDestroy, @Resource and @PersistenceContext. Jersey combined with GuiceyFruit makes for a very interesting fruity combination.
    • Developer defined WADL-based resource classes, inspired by James Strachan's use of WADL and Jersey MVC.
      Injecting WadlApplicationContext enables access to the WADL JAXB representation for the application.
    • Multipart MIME improvements to the jersey-multipart module.
      The parsing of Multipart MIME now uses the MIMEPull API which provides efficient stream-based processing and the caching of large MIME body parts to disk. Thus very large Multipart MIME may be consumed without running out of memory (as was previously the case).
      The overloaded use of @FormParam with "multipart/form-data" body parts has now been deprecated as this caused much confusion and created an artificial and limited abstraction when processing form data. This has been replaced with @FormDataParam.
      Finally Imran M Yousuf provided a number of useful fixes, tests and improvements, such as client-side uploading files with FileDataBodyPart.
    • Niall Gallagher contributed container support for the Simple HTTP server. This was an excellent contribution, code, tests and documentation, very easy to integrate.
    • Enterprise session beans as resource classes.
      Ken and I worked on integration with the latest builds of Glassfish as described here.
    • Client API listeners when producing/consuming representations.
      Pavel added support via a filter to listen to the client sending and receiving representations, which is useful to present feedback when uploading or downloading files. See ConnectionListenerFilter.
    • Plug-in Java type support for @\*Param annotations.
      JAX-RS defines a set of rules (for example, see @QueryParam) but it is useful to support additional rules.
      The JAX-RS rules are implemented using StringReaderProvider and developers may implement the same provider interface to add their own rules. Jersey provides support for java.util.Date (using the standard HTTP supported date formats) and JAXB for XML-encoded documents.
    • Pavel has added a sample showing how to use Jersey with HTTPs, client certificates and Grizzly.
    • Jakub has created the maven infrastructure for a Jersey user guide (also available in PDF). Currently the user guide contains the JAX-RS overview (the same as presented on the Jersey wiki) and documentation on JSON support.
      Documentation is important (and as one person said to me, no documentation, no feature) but it takes time for us developers to write English prose, so the user guide will be developed iteratively. Contributions to this area are most welcome.
    • Naresh's Jersey test framework has been included and some samples are already using it. We plan to transition over the other samples and may make breaking changes to the test API as we improve support.

    The next release, 1.1.0-ea, is scheduled for the end of April 2009. This will be an early access implementation of the JAX-RS 1.1 maintenance release. We will be calling it "early access" because not all EE features will be ready until the full EE 6 implementation is available in the final release GlassFish v3. However, developers can still expect the same degree of quality as that for previous releases of Jersey.

    For feedback send email to:

    users@jersey.dev.java.net (archived here)

    or log a bugs/features here.

    Thursday Feb 26, 2009

    Developing SGMP Connectors using JAX-RS (Screencast)

    See Santaigo's blog entry for more details.

    Thursday Feb 12, 2009

    Jersey 1.0.2 is released

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

    This release will be available tomorrow (12th Feb, if all goes well) from the Glassfish v2 update center, which aligns with the release of the Glassfish Portfolio that includes the GlassFish v2.1 Enterprise Server.

    It will be available from the Glassfish v3 update center once we resolve some dependency issues.

    To get started with Jersey read the getting started document. For an overview of JAX-RS features visit the Jersey wiki and read the overview document. To understand more about what Jersey depends on read the dependencies document. The following JavaDoc is available:

    • Client, Server, WADL, JSON APIs.
    • Spring integration API.
    • MIME Multipart API.
    • Client using Apache HTTP client API.
    • Atom with Apache Abdera API.

    This release has many bug fixes, you can see the change log here, as well as the following improvements and features:

    • The JSON with JAXB "natural" convention.
      Jakub has worked closely with the JAXB team so that the producing/consuming of JAXB to/from JSON uses information from the JAXB model. This makes for JSON from JAXB that is more "natural", easier to consume, and requires less configuration on the part of the developer. As part of this work we replaced our own JSON parsing and writing functionality with Tatu's JSON library Jackson.
      For backwards compatibility we have retained the previous "mapped" convention as the default convention, but this is easy to change using the new JSON configuration, but i will leave such explanations for Jakub to blog about. In the next release we will probably deprecate the "mapped" convention.
    • JSON with padding provider.
      Jakub has included a JSON with Padding (JSONP) provider for those wishing to embed JSON within a JavaScript "callback" function. This provider will also work with JSON and XML media types. See the JSONP sample for more details.
    • Resource method specific filters.
      I finally got around to implementing resource specific filters. Request and response filters can now be associated with sub-resource locator and resource methods. For more details see the JavaDoc here. This functionality is used to implement support for @RolesAllowed using the RolesAllowedResourceFilterFactory.
    • Atom Abdera support.
      Craig McClanahan has added support for producing and consuming of Atom Entry and Feed Java types of the Apache Abdera project. An injectable helper class, ContentHelper, is supplied to support the getting and setting of the content part of an Atom entry reusing the registered message body readers and writers. Craig has also provided some really nice examples showing a simple client and server. The server reuses the @RolesAllowed support for some authorization logic based on the user principal and the URI. For more details refer to the AtomPub Contacts Client and Server samples.
    • Implicit produces.
      With James Strachan's prompting and great help (discussions, issues and patches) i have implemented support for @ImplicitProduces on resource classes. This allows one to use the implicit model view controller approach for JSPs producing HTML as presented in the bookstore sample while allowing explicit methods for other media types say XML or JSON. Unfortunately we could not resolve some issues in time for this release, associated with the maven unit test plugin and embedded Glassfish, to update the bookstore sample.
    • Servlet as a filter.
      As part of James's "JAX-RS as the one Java web framework to rule them all?" i have modified the Servlet support such that one can register the Servlet artifact as a Servlet or a Filter, see here and here for more details. The advantage of the latter is that it is much easier to support filters declared before the Jersey filter that redirect to say static content or redirect to other Web frameworks. James has already provided a patch to the Jersey filter to support the returning of static content, which will be integrated into the 1.0.3-SNAPSHOT next week.
    • Client using Apache HTTP client.
      Jorge Williams contributed support for using the Jersey Client API with the Apache HTTP client (as opposed to using HttpURLConnection). See here for more details.
    • Pavel Bucek has added support for SSL configuration of the Client API when using HttpURLConnection. See here for more details.

    For the next release, 1.0.3, scheduled for March/April 2009, we plan to include the following contributions (these were previously considered for 1.0.2 but were not stable enough):

    • Guice 2.0 integration.
      Gili Tzabar has contributed Guice support as a patch and we continue to refine this. The patch will go into the 1.0.3-SNAPSHOT next week. It is understood that the Guice 2.0 APIs are stable and i have found a maven repository where Guice 2.0 snapshot jars are available. This should give us enough time between now and the 1.0.3 release to refine the support.
    • Test framework.
      Naresh has been working hard on the jersey test framework in another branch. Unfortunately it was not quite ready for the 1.0.2 release and we need to depend on a stable API for embedded Glassfish, which is currently being designed. Once the framework is in place it will allow us to write tests that are capable of being deployed on different containers.

    For feedback send email to:

    users@jersey.dev.java.net (archived here)

    or log a bugs/features here.

    About

    sandoz

    Search

    Archives
    « April 2014
    SunMonTueWedThuFriSat
      
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
       
           
    Today