dev@jax-ws.java.net

Introducing BindingID

From: Kohsuke Kawaguchi <Kohsuke.Kawaguchi_at_Sun.COM>
Date: Mon, 27 Mar 2006 17:37:56 -0800

To meet the requirements from JAX-WSA to define a custom binding ID, I
modified the code and introduced the BindingID class.

Previously, we were using String to represent a binding ID, and in
various places just comparing it against a few known values to define
how to process it. This made it impossible to recognize new binding IDs
that are plugged in by higher-level technologies.

The newly introduced BindingID class works kinda like how java.net.URL
works for URL-like strings. BindingID gives you various methods to query
the key characteristic of binding ID that are important for the JAX-WS
RI, such as the version of SOAP, etc.

This allows JAX-WS to work with any binding ID that exposes a few
characteristics, and upper-layer technologies can define and access
additional meaning of those bindingIDs from their pipes, from their
WSDLParserExtensions, etc.

I tried to reduce the amount of changes, but this is a breaking change.
In particular the following two places are major changes:

public abstract class PipelineAssemblerFactory {
     // this used to take a String
     public abstract PipelineAssembler doCreate(BindingID bindingId);
}

public interface WSBinding extends Binding {
     // this used to return a String
     @NotNull BindingID getBindingId();
}



-- 
Kohsuke Kawaguchi
Sun Microsystems                   kohsuke.kawaguchi_at_sun.com