Marek Potociar's Blog

15Oct/120

Jersey 2.0-m09 has been released

With JavaOne 2012 over we are trying to resume the usual Jersey 2.0 release cycle and I am happy to announce that Jersey 2.0-m09 has been released. The last sprint was relatively short especially with all the additional distracting tasks we had to focus on prior to and during the JavaOne week. The number of significant updates in this release is thus moderate, yet there are couple of updates which I'd like to point out:

  • Migration to the JAX-RS 2.0 Public Review Draft API version. This was an important move so that people who want to play with JAX-RS 2.0 PR API during the currently running review period are able to grab an implementation compatible with the latest published version of the API. Note however that there are still some aspects of the latest JAX-RS API that are under development at the moment.
  • Again, lot of bug fixes. We continued to keep our focus on resolving bugs. We do this not only to improve stability of Jersey code as such but also to make sure we're properly covering all aspects of the new JAX-RS 2.0 API features which in turn helps us verify the API works as intended. So as with previous milestone, many of the bugs that we have fixed recently were in the category of strict compliance to the JAX-RS 2.0 API and specification and often involved corner-case situations.

If you are interested in more details, check out the Jersey Jira for the list of all the resolved feature requests, tasks and issues in the milestone 09.

For a complete overview of the updates in the Jersey API, please have a look at the Jersey 2.0-m09 API documentation. Note that we are still in the middle of a development cycle and Jersey 2.0-m09 is an early development preview release so you can still expect significant changes in the API since the parts of the API are moving every now and then. You may want to also bookmark the Jersey 2.0 snapshot API documentation link to if you want to see the latest development version of the API. Also feel free to browse Jersey 2 source code on GitHub and check out the Jersey examples.

You may also want to check Jersey User guide that also contains an initial draft of a migration guide for your Jersey 1.x code.

Jersey 2.0 provides support for Java SE HTTP Server, Grizzly 2 HTTP server, Servlet 2.5 or higher containers as well as OSGi containers on the server side and HTTPURLConnection-based or Grizzly asynchronous client transport connectors. To leverage JAX-RS/Jersey server-side async features in a Servlet container, you need a container that supports Servlet 3.0 at least. Jersey supports asynchronous resource invocations on Grizzly 2 HTTP server too.

All the 2.0-m09 milestone binaries, including the source & apidocs jars, are available for download under the Jersey 2.0 maven root group identifier org.glassfish.jersey from the central maven repository as well as from the java.net maven repository.

To run Jersey 2 you'll need the core artifacts:

org.glassfish.jersey.core:jersey-common
org.glassfish.jersey.core:jersey-server
org.glassfish.jersey.core:jersey-client

Additionally, you'll need a Jersey container implementation, e.g. Jersey Grizzly2 HTTP container:

org.glassfish.jersey.containers:jersey-container-grizzly2-http

Chances are you are using maven on your project. If you do, there is a very easy and convenient way to start playing with Jersey 2.0 by generating the skeleton application from one of the Jersey 2.0 maven archetypes that we provide. For instance, to create a Jersey 2.0 application using the Grizzly 2 HTTP server container, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeVersion=2.0-m09

If you want to create a Servlet container deployable Jersey 2.0 web application instead, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeVersion=2.0-m09

Have fun looking around, running examples, testing new additions to the set of features and playing with Jersey 2. To provide feedback send us an email to our users mailing list

use...@jersey.java.net (archived here)

or log discovered bugs & new feature requests in Jersey Jira issue tracker.

Tagged as: GlassFish, Java, JavaEE, JAX-RS, Jersey, REST, Web Services No Comments
27Sep/123

Jersey 2.0-m08 is out (and so is 2.0-m07…)

I've been pretty busy lately preparing JAX-RS 2.0 specification for a Public Review release as well as updating Jersey to accomodate recent JAX-RS 2.0 API changes in areas of server-side asynchronous API, client and URI builder API as well as some other minor changes. Preparing for my JavaOne presentations that's just round the corner also took a significant chunk of my spare time. FYI, JavaOne 2012 is happening next week so if you wanted to go and you still don't have your pass, you should get one now.

Anyway, so much for the excuses of why I've been quiet lately. Today I'd like to announce that we've recently released Jersey 2.0-m08. For those of you who watch my blog and wonder what happened to Jersey 2.0-m07, well, the good news is that we've released that one too about a month ago, the bad news is that I shamefully didn't find enough time to blog about it. In any case, things move quickly, and Jersey 2.0-m07 is the past now so today I'll be focusing on the latest milestone 08 release, however I'll be cover all important changes between milestone 06 to milestone 08, including the features delivered in milestone 07 of Jersey 2.0.

Let's look at the main changes now:

  • ResourceContext API (a similar one to the Jersey 1.x ResourceContext) has been introduced in JAX-RS 2.0 and support for it has been implemented in Jersey. Based on the feedback we received form JAX-RS 2.0 Expert Group, we decided to remove the resource and URI matching methods from the standard API and just keep the API focused on providing resource injection support independent of the underlying injection manager. You can now use the API with Jersey 2.0 to provision and/or inject your sub-resource instances in a standard way.
  • Support for application WADL generation. As it is possible in Jersey 1.x, Jersey 2.0 runtime now also supports automatically generate WADL descriptors for your JAX-RS applications.
  • Support for the new JAX-RS @BeanParam annotation. This injection annotation is a nice addition to the JAX-RS API that should help to make your resource method signatures more readable. See the linked annotation API documentation for more details.
  • Support for the revised JAX-RS asynchronous server-side API. The revamped JAX-RS async API looks much better, is more consistent and even simpler to use that the previous version. We managed to identify and drop some redundant pieces from the old API as well as add new interesting features such as callbacks and timeout handler in the new version of the API. Of course, this change meant that a significant effort had to be invested in refactoring the existing Jersey implementation. Now we're proud to say that we made it. Jersey 2.0-m08 supports the new JAX-RS async API.
  • Performance and internal design improvements. In the last 2 milestones we started to focus more also on the performance side of Jersey 2.0. We have also identified a few design issues in the client as well as server-side runtime code that we addressed in order to improve the maintainability of Jersey code in the future. In other words, while as a user you may never notice it, the main difference between Jersey 2.0 milestone 06 and 08 is that the latest Jersey 2.0 milestone had undergone a major runtime engine overhauling and now runs better than ever. For instance, we ditched the idea of a common client & server, sync & async processing engine that suffered from high increase in code complexity over time. Instead, we introduced specific client and server side processing engines tailored for the specific needs of the client and server. Also, we now make sure that requests that do not involve any async processing use code paths optimized for synchronous executions that do not involve any thread context switching or other tasks specific for the asynchronous request processing.
  • Lot of bug fixes. And I mean really LOT of fixed bugs. In fact, the main theme of the milestone 08 was bug fixing to make sure the Jersey 2.0 is in the best possible shape to be used in JavaOne demos. Now I do not want you to think that Jersey 2.0 was not stable before. Many of the bugs that we have fixed recently were mostly in the category of strict compliance to the JAX-RS 2.0 API and specification and involved mostly corner-case situations. Still, it's a good feeling to know that Jersey now much more precisely adheres to the spec much even in these rare use case scenarios.

If you are interested in more details, check out the Jersey Jira for the list of all the resolved feature requests, tasks and issues in the milestone 07 and milestone 08.

For a complete overview of the updates in the Jersey API, please have a look at the Jersey 2.0-m08 API documentation. Note that we are still in the middle of a development cycle and Jersey 2.0-m08 is an early development preview release so you can still expect significant changes in the API since the parts of the API are moving every now and then. You may want to also bookmark the Jersey 2.0 snapshot API documentation link to if you want to see the latest development version of the API. Also feel free to browse Jersey 2 source code on GitHub and check out the Jersey examples.

In the last sprint we also continued work on an updated user guide that also contains an initial draft of a migration guide for your Jersey 1.x code.

Jersey 2.0 provides support for Java SE HTTP Server, Grizzly 2 HTTP server, Servlet 2.5 or higher containers as well as OSGi containers on the server side and HTTPURLConnection-based or Grizzly asynchronous client transport connectors. To leverage JAX-RS/Jersey server-side async features in a Servlet container, you need a container that supports Servlet 3.0 at least. Jersey supports asynchronous resource invocations on Grizzly 2 HTTP server too.

All the 2.0-m08 milestone binaries, including the source & apidocs jars, are available for download under the Jersey 2.0 maven root group identifier org.glassfish.jersey from the central maven repository as well as from the java.net maven repository.

To run Jersey 2 you'll need the core artifacts:

org.glassfish.jersey.core:jersey-common
org.glassfish.jersey.core:jersey-server
org.glassfish.jersey.core:jersey-client

Additionally, you'll need a Jersey container implementation, e.g. Jersey Grizzly2 HTTP container:

org.glassfish.jersey.containers:jersey-container-grizzly2-http

Chances are you are using maven on your project. If you do, there is a very easy and convenient way to start playing with Jersey 2.0 by generating the skeleton application from one of the Jersey 2.0 maven archetypes that we provide. For instance, to create a Jersey 2.0 application using the Grizzly 2 HTTP server container, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeVersion=2.0-m08

If you want to create a Servlet container deployable Jersey 2.0 web application instead, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeVersion=2.0-m08

Have fun looking around, running examples, testing new additions to the set of features and playing with Jersey 2. To provide feedback send us an email to our users mailing list

use...@jersey.java.net (archived here)

or log discovered bugs & new feature requests in Jersey Jira issue tracker.

Tagged as: GlassFish, Java, JavaEE, JAX-RS, Jersey, REST, Web Services 3 Comments
10Aug/120

Jersey 2.0-m06 has been released

Here in Prague, July and August are the main "vacation" months of the year. With that in mind we decided to plan for a longer Jersey sprint run. So after a time little bit longer than usual I am happy to announce that another Jersey 2.0-m06 milestone has been just released.

As part of the release, several important changes are part of Jersey 2.0-m06 release. Let's briefly look at them in more detail.

  • Switch to HK2 v2.1.x from v2.0.x. While this minor version update does not look significant at the first glance, it's actually one of the most significant changes in Jersey 2.0 yet. The new HK2 2.1.x API brings a complete redesign and rewrite of the injection runtime and comes with a full support for JSR 330 Dependency Injection that replaces the old proprietary HK2 injection API. As such, Jersey now naturally supports injection using standard DI API from javax.inject package. Not bad for a minor version update, right?
  • Improved support for JAX-RS 2.0 filters and interceptors. In this release we added support for post-matching name-bound filters and interceptors. With that change we were able to move on and convert more of the existing Jersey 1.x features to the new JAX-RS 2.0 API (message encoders/decoders, authorization filters, etc.).
  • Suport for singleton resources. This is another feature that was available in Jersey 1.x already. This time we are however ditching the proprietary Jersey @Singleton annotation in favor of a standard @javax.inject.Singleton (thanks to the new HK2 implementation).
  • Added modules for MOXy support. This is another major improvement that gives Jersey users ability to use advanced MOXy data binding constructs in beans that can be marshalled using both XML and JSON media types.
  • Other improvements and bug fixes. Among other things we've revised and simplified API around Jersey Client instance creation, redesigned modules for JSON support, made improvements to our SSE support API.

If you are interested in more details, the list of all the resolved feature requests, tasks and issues in the Jersey 2.0-m06 sprint can be browsed in our Jersey Jira.

For a complete overview of the updates in the Jersey API, please have a look at the Jersey 2.0-m06 API documentation. Note that we are still in the middle of a development cycle and Jersey 2.0-m06 is an early development preview release so you can still expect significant changes in the API since the parts of the API are moving every now and then. You may want to also bookmark the Jersey 2.0 snapshot API documentation link to if you want to see the latest development version of the API. Also feel free to browse Jersey 2 source code and check out the examples that leverage JAX-RS 2.0 Client API as well as Jersey 2 server-side programmatic API.

In this sprint we also continued work on an updated user guide that also contains an initial draft of a migration guide for your Jersey 1.x code. Again, as with API documentation, you may want to bookmark the Jersey 2.0 snapshot user guide to see the very latest updates to the guide.

The third early draft of JAX-RS 2.0 specification that is implemented by this Jersey milestone release is available at the JCP web site. The latest version of JAX-RS 2.0 API documentation is also available for browsing here. This link and more information about the JAX-RS project can be found on the JAX-RS project web site.

For some time already, Jersey is available on github as a first-class citizen. So if you prefer accessing the code over github to accessing it over java.net, check it out.

Jersey 2.0 provides support for Java SE HTTP Server, Grizzly 2 HTTP server, Servlet 2.5 or higher containers as well as OSGi containers on the server side and HTTPURLConnection-based or Grizzly asynchronous client transport connectors. To leverage JAX-RS/Jersey server-side async features in the servlet container, you need a container that supports Servlet 3.0 at least. Jersey supports asynchronous resource invocations on Grizzly 2 HTTP server too.

All the 2.0-m06 milestone binaries, including the source & apidocs jars, are available for download under the Jersey 2.0 maven root group identifier org.glassfish.jersey from the central maven repository as well as from the java.net maven repository.

To run Jersey 2 you'll need the core artifacts:

org.glassfish.jersey.core:jersey-common
org.glassfish.jersey.core:jersey-server
org.glassfish.jersey.core:jersey-client

Additionally, you'll need a Jersey container implementation, e.g. Jersey Grizzly2 HTTP container:

org.glassfish.jersey.containers:jersey-container-grizzly2-http

Chances are you are using maven on your project. If you do, there is a very easy and convenient way to start playing with Jersey 2.0 by generating the skeleton application from one of the Jersey 2.0 maven archetypes that we provide. For instance, to create a Jersey 2.0 application using the Grizzly 2 HTTP server container, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeVersion=2.0-m06

If you want to create a Servlet container deployable Jersey 2.0 web application instead, use

mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeVersion=2.0-m06

Have fun looking around, running examples, testing new additions to the set of features and playing with Jersey 2. To provide feedback send us an email to our users mailing list

use...@jersey.java.net (archived here)

or log discovered bugs & new feature requests in Jersey Jira issue tracker.

 

Tagged as: GlassFish, Java, JavaEE, JAX-RS, Jersey, REST, Web Services No Comments
   Older Entries »

Recent Posts

  • Jersey 2.0-m09 has been released
  • Jersey 2.0-m08 is out (and so is 2.0-m07…)
  • Jersey 2.0-m06 has been released
  • Jersey 2.0-m05 has been released
  • Jersey 2.0-m04 has been released

My tweets

  • Lež vítězí. ReplyRetweetFavorite
  • RT @_dagi: Nejvtipnejsi vec na emigraci Vaclava Klause? Posledni, ceho se tu dotkne, bude letiste Vaclava Havla :-D #volby2013 ReplyRetweetFavorite
  • My recent interview on JAX-RS 2.0: t.co/ENAaDo51 ReplyRetweetFavorite
  • RT @gf_jersey: Jersey team in Prague is hiring: t.co/KQ79wVds Looking for a passionate developer who likes to work with latest te ... ReplyRetweetFavorite
  • “@alexismp: To my silly American friends waking up, you got it wrong - it's 12/12/12, not 12/12/12” ReplyRetweetFavorite
@marek_potociar
Powered byWordPress Twitter Widget Pro

Topics

  • Java (32)
  • Jersey (13)
  • Metro (14)
  • Personal (1)
  • REST (14)
  • SOAP (17)
  • Uncategorized (2)
  • Web Services (32)
  • XML (15)

Tags

blog Brno Devoxx GlassFish Interceptor Interoperability Java JavaEE JAX-RS
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.