|
|
|
|
|
Quoting from the Oasis Standard, an XML Catalog... maps external identifiers and URI references to (other) URI references. It also defines a format for catalog entry files in terms of [XML] and [XML Namespaces]. A catalog is particularly useful for mapping well-know URIs for Schemas; a typical case are those for the Java EE Deployment Descriptors. This is very useful for performance reasons and required in disconnected mode. |
Norm was the editor for the Oasis standard and also provided a popular implementation that is included in GlassFish v2. Check out his latest writeup where he provides some background on the XML catalog and shows How to Use it.
|
A tip from
Teera:
JAXB for simple Java-XML serialization |
|
The JAX-WS project in GlassFish is taking advantage of the pluggable encoding layer in their implementation to provide a JSON binding. This Implementation is at an early stage and is part of the JAX-WS-commons extensions which also includes such committed extensions as: Spring Support, HTTP Session Scope Service, Thread Scope Service and the JAX-WS Maven 2 plugin. The JSON binding enables to write code like the following: |
@BindingType(JSONBindingID.JSON_BINDING) public class MyService { public Book get() { return new Book(); } public static final class Book { public int id = 1; public String title = "Java"; } }
|
Oleksiy is reporting on one more product that is implementing Fast Infoset. This time comes from IBM: their SDK for Java 6 Early Release. FI support is not suprising as the Java EE 5 WS implementation seems based on that from GlassFish. Note that IBM's release is an EA - you will need to ask them for their FCS plans. Other implementations that pass interoperability include: Liquid Technologies, OSS Nokalva, Noemax, WebLogic Server 10 TP, the GlassFish AS (and its Sun distribution SJS AS 9.0), and Sun's JDK6 release. |
Check out Oleksiy's blog and the Fast Infoset Interoperability Project at Java.Net. Also check Pauls' activation instructions and a list of Other TA Spotlights on FI.
|
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.
|
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. |
|
JAXP 1.4 is now final. This is a "maintenance release" (JSR 206) but a substantial one. The main new addition is support for StAX (JCP, wikipedia) but there are other changes too (Change Log). This is the same version that goes into Java SE 6; you can also use it with JRE 1.4 and JRE 5.0 using the Endorsed Standard Override mechanism. |
The implementation is delivered as two JARS (API + Impl) for simplicity and uses the StAX and JAXP implementations from GlassFish which build on Xerces 2 Java. Check the blogs from Santiago and Norm for some more details.
All this code is Open Source, and so will be the implementation of the next version of the spec.
|
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. |
|
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.
|
Like earlier versions, the JAXP 1.4 API (Java.Net OSS project, spec, JavaDocs) includes a pluggability layer to switch implementations using a Factory pattern. The whole area is not very well understood by the developers, and Santiago's detailed blog provides a very good summary. |
The intrinsic problem is that this is an area where the spec can be improved, so start preparing your feedback for the next version of the spec... we are going to do it all at Java.Net and a main focus will be improved usability.
|
We continue to add GlassFish components to the Java.Net Maven Repository: Santiago reports that JAXP 1.4 (part of Java SE 6 (Mustang)) is the latest Addition to the Maven Repository. |
Earlier additions to the repository include: Java Persistence and EJB 3.0, JSTL 1.2, Servlet 2.5 and JSP 2.0 and JSP 2.1, XML Stream, Fast Infoset, JSFs, JavaMail and Activation, JAXB, JAX-WS and SAAJ.
|
|
Paul reports that OSS Nokalva has released OSS Nokalva Fast Infoset Tools (overview, technical details). They report a 3x compression size improvement and 5x speedup on average. OSS Nokalva has been involved in the development of the Fast Infoset Specification from the very beginning. |
This makes at least six implementations of Fast Infoset: FI@java.net, Liquid XML, Noemax SDO, OSS Fast Infoset Tools, FIME and FIFI - all but the last two production quality. The Java.Net implementation is part of Project GlassFish and it is included in Sun's Application Server and Java WSDP, in the Java EE and Java SE SDKs, and in some other products that use the GlassFish Web Services stack, like JEUS from TMaxSoft.
|
Noemax's SDO is a fully featured communications and security framework for .NET applications and it now Supports FastInfoset. SDO comes in an LGPL-licensed Open Source version plus 3 commertially licensed versions. Thanks to Paul for the tip. |
Other implementations of the Fast Infoset Standard include Liquid XML and the FI.dev.java.net project which is included in the WS iStack of Project GlassFish which is used in several versions of Sun's AppServer, in some other Application Servers like TMaxSoft and can also be used with Tomcat. Project FIFI has also explored how to plug Fast Infoset into the Windows Communication Framework.
We should arrange for an interop...
|
Paul reports that Liquid Technologies now has support for the Fast Infoset Standard in their Liquid XML product. Liquid XML implementation is separate from that in the FI project which is used in the WS Stack at GlassFish. Additional information on FI in this Introduction and in many TA Entries. |
I'm looking forward to starting to do interop testing of the different FI implementations. Our implementation enables FI on SJS AS and Tomcat (details) and of course FI is part of SJS AS 9.0 (GlassFish). We will keep you posted as more implementations are made public.
|
Last week, Paul described the fundamentals used for a Practical Generation of an External Vocabulary that can be used in faster Web Services based on Fast Infoset. In a follow-up blog, Paul shows the Java API calls needed to generate the vocabulary, and also what is necessary to configure the endpoints to take advantage of that encoding. Ideally the description of the external vocabulary would be found automatically, but this is not yet standarized. |
Details in Paul's Blog. Note - In a separate conversation, Paul indicated that "distribution and source snapshots with FastInfosetUtilities included are available here".