Tuesday Jan 28, 2014

Using updated release of Jersey, Tyrus, Weld, ... in GlassFish 4

The Java EE specification is an umbrella specification that refers to different components specifications, aka components JSRs (e.g. Servlet, JMS, JAX-RS, ...). And as the Java EE 7 Reference Implementation, GlassFish 4 is made of those different components JSRs Reference Implementations. 

In addition to the specification, most of those implementations (eg. Jersey) also offers additional features (and fixes). And clearly, the different implementations that make GlassFish are evolving each at a different pace. Jersey (JAX-RS RI), Tyrus (WebSocket RI), Weld (CDI RI), Mojarra (JSF RI) are examples of implementations that evolves rapidly. GlassFish 4.0 embeds Tyrus 1.0, Jersey 2.0, Mojarra 2.2.0 and Weld 2.0.0.SP1 but since that time, those implementations have evolved quite a lot. As of today, the current release of Tyrus is 1.4, the current release of Jersey is 2.5.1, the current release of Weld is 2.0.5 and the current release of release of Mojarra is 2.2.5.

So what to do if you want to use one of the new features provided by one of those implementations in GlassFish 4? One way is to wait that the specific version of that implementation, say Jersey for example, is integrated in a nightly build of the GF 4.0.1 branch. Another solution is to upgrade the specific implementation (e.g. Jersey) in an existing GlassFish 4 setup. The following posts explains how to update Tyrus, how to update Jersey, how to update Weld and how to update Mojarra in a GF4 setup. 

It should be mentioned that no extra testing has been done, so clearly do not do this in any critical environments. And if the updated setup is not stable, it is always easy to come back to the initial configuration. Most of the time, it's just a matter of putting back the original implementation Jar and restarting GlassFish. For Jersey, the provided update script is able to restore the initial configuration if needed. 
Also, since Jersey has dependencies on HK2 and since HK2 has been updated between GF 4.0 and the 4.0.1 branch, it is only possible to update Jersey in a GlassFish 4.0.1 build.

In any cases, if you are using GF 4 with an updated version of Tyrus, Jersey, Mojarra or Weld, we would like to hear your feedback!

Tuesday Sep 06, 2011

GlassFish.next: more PaaS, more community focus

It's been more than 18 months since Oracle acquired Sun and almost as much since we put out the original GlassFish Roadmap sharing how strategic the GlassFish community and product are to Oracle. We've since executed on everything promised back then :


• GlassFish 3.0.1, the first Oracle release
• GlassFish 3.1 with full and enhanced clustering and more
• GlassFish 3.1.1, a bug-fix release with component and platform updates (including Java SE 7)
• Started JCP expert groups : JMS 2.0, JSF 2.2, JAX-RS 2.0, EL 3.0, Servlet 3.1 and of course Java EE 7 itself, all transparently

Granted we didn't stick to the initial date for 3.1.1 and had to delay the release to address a number of customer and community concerns, which we think was the right thing to do (tm). As a consequence, with Java EE 7 on a tight schedule and GlassFish 4 set to be the associated reference implementation, we've decided to integrate the Cloud-enabling and PaaS features directly into this upcoming Java EE 7 release.

In the interim, we're looking at delivering a 3.1.2 release in the same spirit as 3.1.1, insisting on quality and stability while integrating updated versions of its various components (Jersey, Grizzly, Metro, Weld, Mojarra, etc.). Note also that more sharing of components between GlassFish and WebLogic is still very much a key goal as well as improved integration with the rest of the Fusion Middleware offering (Oracle Coherence, Oracle Access Manager, and more).