Wednesday Jan 24, 2007

Using JDK6 with GlassFish v2

The outline of a Mustang

Java SE 6 has Web Services support through the JAXB 2.0 and JAX-WS 2.0 specifications. The implementations used are those used in GlassFish v1, but GlassFish v2 implements the latest versions of the specs: JAX-WS 2.1 and JAXB 2.1 and this complicated things.

Earlier Bhakti had explained how to use endorsed standards to run GlassFish v2 on JDK 6, but recent builds (starting with b31) do this automatically and she now has an updated description.

New JAXB Releases... and Using JAXB's simpleBinding mode in JAX-WS

Super Glue

New releases of JAXB RI are now available; JAXB 2.1.1 is a bug fixing release (home page, changes) in preparation for the imminent release of JAX-WS 2.1, while JAXB 2.0.4 (changes) is a support release for 2.0 customers.

The JAXB RI implementations also support a SimpleBinding mode that can be used as an alternative to process some XML Schemas. Since JAX-WS 2.x rely on JAXB 2.x for data-binding, this is also available for Web Services and Kohsuke's latest blog explains how to configure wsimport (in JAX-WS 2.0) or the new wsimport ant task (in JAX-WS 2.1) to do this.

Update: JAXB 2.1.1 had a performance bug affecting Fast Infoset and it has been replaced with JAXB 2.1.2.

Tuesday Dec 19, 2006

JAXB 2.1 is Final

XML Duke

The JAXB 2.1 release is now final (Spec, Download). This is a relatively small maintenance release (see features) but it includes some specially useful one, like separate compilation.

Since JAXB 2.0 is included in Java SE 6, you will need to use the endorsed standards mechanism to use JAXB 2.1with that version of Java SE. Check Kohsuke's blog for more details.

Thursday Nov 16, 2006

New JAXB 2.1 and JAX-WS 2.1 EAs

Java XML duke

The Early Access releases of the next specifications for JAXB and JAX-WS are now available. The latest JAXB is JAXB 2.1 EA2 specification (check here, here and Kohsuke's blog) and download it and check on more implementation details here. The latest JAX-WS is JAX-WS 2.1 check the specification, Vivek's blog and download it and check on more implementation details here.

The JAXB team has also released a stable version of JAXB 2.0, the latest final specification. Download JAXB 2.0.4 here.

Monday Nov 06, 2006

GlassFish and Geronimo

Geronimo Logo

One of the benefits of using an OpenSource license is to simplify adoption by other F/OSS groups, and, slowly we are getting more customers.

In the case of Geronimo their Report Card shows a plan to use JAXB 2.0 (or 2.1?). Other modules are listed as multiple options, including JSF 1.2, TopLink Essentials, and JSP 2.1 (used by Jetty). The table is probably not up-to-date; for example, check this Thread on JSTL 1.2.

Tuesday Oct 31, 2006

JAX-WS 2.1 and JAXB 2.1 Review Started

ALT DESCR

The JAXB 2.1 and JAX-WS 2.1 specifications are going through the Maintenance Release process and are in the 30 day review. The official JCP sites are here and here.

Doug, Arun and Kohsuke have been talking about the features in recent blogs and mailing lists, including JAXB 2.1 Revisited, Stateful WS, and Why WS Addressing.

Kohsuke also wrote about The Woes of Framemaker and, although there are things I like about FM, I agree with Kohsuke - every time I had to do a pass on the specs I had to be careful of RSI.

Friday Oct 13, 2006

JAXB News: 2.0.3 is out, 2.1 at Maven Rep, yet another plugin

ALT DESCR

JDK 6 (nee Mustang) includes a bundled version of JAXB 2.0 and is almost out; to track it best, Kohsuke has released a matching unbundled implementation: JAXB 2.0.3. If there are no last minute show-stopper bugs, the two should be identical. You can download it from here. The maven repository has been updated with the latest bits.

The JAXB 2.1 JARs, still in EA, have also been released to the Maven repository; check Kohsuke's blog. And in a separate blog he explains yet another Plugin; this one a way to handle simple cases of code regeneration.

Friday Oct 06, 2006

JAXB Plugins Galore... Including HyperJAXB3: JAXB + Persistence

Duke - Lets get Going

The JAXB plug-in mechanism is proving very successful andt the community has produced a substantial number of plug-ins. Full directions on how to write plug-ins are here. Many plugins are available at JAXB2-Commons, others reside in their own projects. Plug-ins include: Fluent API, CamelCase Always, Value Constructor, Default Value, Interfaces, Equals, ToString, Jakarta-Commons-Lang, and JAXB Workshop.

Kohsuke regularly provides updates on the JAXB community; he recently reported on New Plug-ins and on the HyperJAXB3 plugin that links JAXB with JavaPersistence.

Thursday Oct 05, 2006

JAX-WS 2.1 EA 1 now Available

Java XML Duke

I missed providing a better announcement for the first Early Access Release of JAX-WS 2.1. Vivek first explains how the implementation is based on the new WS Stack in JAX-WS 2.0.1, and then provides a bit more information on the quality of the release. And then Rama describes the Support for WS-Addressing in that implementation.

The release itself has been available for a couple of weeks here and will be included in Milestone 2 of GlassFish V2.

Wednesday Oct 04, 2006

JAX-WS 2.1, JAXB and Type Substitution

Java XML Duke

JAX-WS 2.1 is a relatively small Maintenance Release for JAX-WS that will be included in GlassFish V2. The release is done in coordination with JAXB 2.1 and one of its goals is to further improve the integration between the two. Doug has been soliciting feedback, and, in his latest blog, he is focusing on the Type Substitution Problem.

Please consider giving feedback to Doug to improve the usefulness of the specification. The latest JAX-WS 2.1 Early Access is available here; enjoy!

Monday Sep 18, 2006

Recent JAXB 2.1 News: Features, Fast Infoset, Eclipse Plugin, EA, and more...

Java XML Duke

A news update on JAXB 2.1 (planned for GlassFish V2). On the spec front, Kohsuke has written several blogs on the proposed changes including Specification Highlights, support for Separate Compilation and Use as a DI Container. He has also released the EA1 Implementation available separatedly and at the Maven Rep. The implementation also supports Better Linkage with FI, Better Customization and enables a better JAXB Eclipse Plugin.

For more information check here and here. BTW, note there is also a New Implementation of the current spec. More information at the JAXB home page and and in the JAXB Annoucements.

Tuesday Aug 15, 2006

JAXB 2.1 Maintenance Review

JCP Logo

The JCP has two processes for defining a new specification; the normal process is intended for major changes while the maintenance review is for smaller changes and it is much shorter (timeline).

The JAXB team is planning a short Maintenance Release to incorporate experience gained from the integration with JAX-WS 2.0 (proposal). The release would be labelled 2.1 and would be included in GlassFish V2. Check Kohsuke's blog for details.

Monday Aug 07, 2006

Performance of JAX-WS 2.0 in SJS AS 9.0 (GlassFish v1)

Bharath has just published a report comparing the Performance of JAX-WS 2.0 and JAX-RPC 1.1 as implemented in GlassFish V1 FCS, widely distributed through the Java EE 5 SDK. The performance measurements were done using the WSTest tests from Java.Net.

JAX-WS 2.0 FCS Performance

Highly efficient JAX-WS 2.0 implementation is challenging, mostly because the specification delegates data binding to JAXB 2.0. The article covers several performance areas: Primitive Binding is relatively unchanged, with some very small advantage for JAX-RPC 1.1; Array performance shows a noticeable improvement for JAX-WS 2.0, quite strong for some cases; Payload shows very substain improvements; and so is Data Binding performance.

All these measurements are for the GF v1 implementation. Although the numbers show good improvements for JAX-WS 2.0, our goals were higher, so GF v2 has a brand-new WS architecture that will provide even better performance.

More JAXB RI Adoption

Java & XML Duke

IBM just released an alpha version of WebSphere Application Server 6.1 Feature Pack for Web Services. The pack includes StAX, JAX-WS 2.0 and JAXB 2.0 and, although it does not include EJB 3 nor JavaPersistence, this is one more indication of the Fast Adoption of Java EE 5.

And, regarding JAXB 2.0, we peeked under the covers and IBM's Feature Pack uses GlassFish's JAXB RI. The list now includes at least ActiveSOAP, XFire, Celtix, Axis and ServiceMix (Toolkits and JAXB RI); JBoss was also planning to use it. Component Reuse is one of the Goals of the GlassFish Community, we would like to know if you are using our components.

Monday Jul 31, 2006

How we Lost and Regained WS Performance -- JAXB Performance Tips

Performance is hard to gain and easy to loose.

Japex Logo

Last year we designed a New Architecture for the Web Services stack in GlassFish. The results are very nice ([Interoperability with MS], [FastInfoset Support], [Multiple Transports]) and the performance numbers just before JavaOne were very promising, but we got distracted and didn't run our performance regression tests and... you guessed, we had a substantial performance regression.

The good news is that this regression was easy to do fix: Kohsuke just posted two Simple JAXB Performance Tips that seem to have restored most of the performance (and Sameer reinforces that). The root lesson is also simple: always run your Regression Tests; this time we were lucky, the next time the problem may be architectural and harder to fix.

The new WS stack should show in GF V2 M1; I believe that the Project Tango functionality will show incrementally shortly after that. And we still Encourage your Participation in this WS stack.