[jbossws-dev] [Design of JBoss Web Services] - Re: Setting the properties on the JAXBContext

heiko.braun@jboss.com do-not-reply at jboss.com
Thu Jun 28 10:48:02 EDT 2007


OK Tom, both Thomas and I did agree that the API quickshot was a mess. I did a revamp the API, but the concepts we talked about did remain the same.

The SPI now contains 


  | Endpoint.addBindingCustomization (BindingCustomization)
  | 

BindingCustomization offers Map like access and will become a generic extension point for binding implementations and is not specific to any stack or binding framework. 

The native stack implements JAXB binding customization:

  | /**
  |  * Supported JAXB 2.1 customizations.
  |  */
  | public class JAXBBindingCustomization extends BindingCustomization {
  | 
  |    // Use an alternative RuntimeAnnotationReader implementation
  |    public final static String ANNOTATION_READER = JAXBRIContext.ANNOTATION_READER;
  | 
  |    // Reassign the default namespace URI to something else at the runtime
  |    public final static String DEFAULT_NAMESPACE_REMAP = JAXBRIContext.DEFAULT_NAMESPACE_REMAP;
  | 
  |    // Enable the c14n marshalling support in the JAXBContext.
  |    public final static String CANONICALIZATION_SUPPORT = JAXBRIContext.CANONICALIZATION_SUPPORT;
  | 
  | }
  | 

It is recognized by the JAXBContextFactory, when set on the SPI Endpoint.

This allows you to supply JAXB customizations at deploy time through an ESB specific deployment aspect (in JBossWS terms spi.deployment.Deployer). 
This particular deployment aspect should recognize ESB deployments and customize the JAXB marshalling for those endpoints only.

I think this SPI change will stand the test of time and allows us to model future ESB requirements (i.e. programmatic deployment) as well.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058783#4058783

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058783



More information about the jbossws-dev mailing list