4 Replies Latest reply: Dec 12, 2009 5:52 AM by Alexey Loubyansky RSS

    JBXB-100

    Richard Opalka Master

      Hi Alexey,

      below is the code we're talking about in JBXB-100. JBossWS code is reusing org.jboss.xb.binding.SimpleTypeBindings for un/marshalling.
      The methods we're using requires String for payload to be de/serialized. Our request is for supporting javax.xml.transform.Source instead of String.
      Our sourceToString() method takes too much processing time. (~20 % of invocation time). If you would provide this improvement in JBXB, you'd help us improve our invocation performance very significantly.

      package org.jboss.ws.core.jaxrpc.binding;
      
      import javax.xml.namespace.QName;
      import javax.xml.transform.Source;
      import org.jboss.logging.Logger;
      import org.jboss.ws.core.binding.BindingException;
      import org.jboss.ws.core.binding.DeserializerSupport;
      import org.jboss.ws.core.binding.SerializationContext;
      import org.jboss.xb.binding.SimpleTypeBindings;
      
      public class SimpleDeserializer extends DeserializerSupport
      {
       public Object deserialize(QName xmlName, QName xmlType,
       Source xmlFragment, SerializationContext serContext) throws BindingException {
      
       String jbxb100Workaround = sourceToString(xmlFragment); // [JBXB-100]
       return deserialize(xmlName, xmlType, jbxb100Workaround, serContext);
      
       }
      
       private Object deserialize(QName xmlName, QName xmlType, String xmlFragment, SerializationContext serContext) throws BindingException
       {
       String valueStr = unwrapValueStr(xmlFragment);
      
       if (valueStr != null)
       {
       return SimpleTypeBindings.unmarshal(
       xmlType.getLocalPart(), valueStr, serContext.getNamespaceRegistry()); // [JBXB-100]
       }
      
       return null;
       }
      }