|
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.
|
If you are at all interested in JAX-WS you should track the changes that are happening now in the GlassFish implementation. Vivek has an Overview where he covers all the major changes while Arun Focuses on WS-Addressing and shows the substantial simplications through examples. |
Check the Users Guide, and look at the list of Annotations, Async Support on the Server and Client (see blog), Stateful Web Services (also see blog). The spec changes in WS-Addressing are particularly clean; check Arun's blog.
You can download the implementation now here and install it on GlassFish or Tomcat, or wait for GF V2 b23.
|
Annotations are a first-class language feature in Java (tutorial, jsr-175). A standard specification like JAX-WS introduces standard annotations but custom annotations can be equally useful. Kohsuke uses a custom annotation to take advantage of a SPI (InstanceResolver) in the JAX-WS RI in GlassFish. The result is that adding a simple annotation (@HttpSessionScope, in the com.sun.xml.ws.developer.servlet package) on a class tells the JAX-WS RI to create one instance of the class per each HTTP session. |
Like any other non-standard mechanism, adding the annotation creates a dependency on a specific platform, but the dependency is explicitly declared (usually via an import statement), and the result is really clean an compact. Check Kohsuke's blog for details.
WebServices, Annotation, Java, Http, State, GlassFish
|
The Apache Wiki has a Web Services stack comparison table and Arun has updated it with information on the GlassFish implementation (thanks to Dims for the invitation). I have a biased perspective, but I believe our implementation is industry-leading and is just getting better. And this is without considering performance, where I expect us to excel: New WS in GF V2, Async Support. |
Interoperability (Project Tango) is another strong feature in GlassFish and, coincidentally, The Server Side has an interview with Microsoft’s Jorgen Thelin talking about the Interop Plugfests. Arun just wrote about the interview in his blog, and so did Jorgen - and check this nice closeup of the interop scorecard.
For more information on our WS stack, check Arun's blog and look in earlier More TA entries.
|
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. |
|
Liquid Technologies sells a flexible XML Data Binding tool (for C++, C# and VB) and earlier this year they added Support for the Fast Infoset Standard. Paul has been encouraging interoperability testing among the different Fast Infoset implementations. He recently reported 3-way interoperability and now expands that to All 4 Production Implementations with the addition of Liquid Technologies. |
|
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. |
|
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. |
|
A report from Arun on the 3rd WSIT (Project Tango) and WCF (Indigo) PlugFest. This time they tested WS-Atomic Transactions, WS-Reliable Messaging, WS-Secure Conversation, WSS 1.0 and 1.1, WS-Trust, as well as two-way composite scenarios like Secure Reliable Messaging and Secure MTOM. Like the first and the second plugfests, this one was in Seattle. WSIT is part of Project GlassFish. It can be downloaded directly from WSIT.dev.java.net and it will be included in the Milestone 2 of GlassFish V2, due out any day now. |
|
URI Templates (spec, Joe Gregorio's blog, James Snell's blog) are string templates with embedded variables that become an URI when the variables are instantiated. The spec is simple, short (9 pages altogether) and it is an IETF "internet draft". An URI template seems a very good match for simple REST-based applications and, indeed, Marc's latest revision of WADL incorporates URI Template Support. |
I am sure we are going to see much more use of URI templates. To play with URI templates and WADL, check the OpenSource implementation at WADL.dev.java.net.
|
|
Several updates on the Fast Infoset front. First, Paul reports on successful Interoperability across 3 FI implementations: Noemax, OSS Nokalva and FI@GlassFish. This is very good; we had previously reported 6 implementations, but two of them are pretty experimental, so there is only 1 to go. Plus products like JEUS get a free pass as they use FI directly from GlassFish. |
Other recent news include two tools: one is a utility for converting XML to Typed FI, and the other is an update to WSMonitor to support FI. A slightly older news is that FI was integrated into the latest JAX-WS, and is also in GlassFish V2. As a testament to the New JAX-WS Architecture, the integration task was much easier than before.
And, on a different direction; if you are interested in the details of the Fast Infoset encoding, check Paul's Recent Presentation to the EXI W3C Working Group (blog, presentation).
|
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! |
|
Typed XML over HTTP has many benefits: it combines the properties of HTTP with the simplicity, flexibility and reusability of XML, and the type information (be it a XML Schema, Relax NG, the older DTD or just informal), provides isolation across customers and producers. Simplicity is key: it is possible to quickly write a consumer or producer for this class of services in almost any language, including AJAX clients. And what has been missing is a simple, standard way to describe (WSDL is too complex) the services that can be used to advertise them and that can be used by different tools. WADL fills in this gap, and Marc just announced an Open Source project around this effort. |
There are many opportunities for contributions; I personally would like to see tools for languages different than Java, and using annotations to further simplify the Map to Java. You could also help start cataloging more servicers available in the web; you do not even need to use XSD, WADL supports also Relax NG. And, if your site is a Web Services producer, I would encourage you to include a WADL description of your service.
Some people use the term REST to mean any typed XML over HTTP; the two are related but REST also implies some other architectural contraints, although WADL be very useful in implementing RESTful services. For more info, check older WADL articles, as well as Marc's blog.
WSIT (Project Tango) is celebrating their second milestone. You can download it now from here and it will be part of GF V2 M2 later this month. This is a major stabilizing release, providing much better integration with Microsoft's implementations. The team has written a number of blogs covering the technologies:
|
• Harold, the technical lead, provides an
Introduction and Overview.
|
|
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.