Author: dkulp
Date: Wed Aug  1 09:02:16 2007
New Revision: 561849

URL: http://svn.apache.org/viewvc?view=rev&rev=561849
Log:
[CXF-823] Fix for hexBin in RPC/Lit cases

Modified:
    
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
    
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/soap/SOAPRpcLitServerImpl.java

Modified: 
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java?view=diff&rev=561849&r1=561848&r2=561849
==============================================================================
--- 
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
 (original)
+++ 
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
 Wed Aug  1 09:02:16 2007
@@ -36,6 +36,7 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
 import javax.xml.bind.attachment.AttachmentMarshaller;
 import javax.xml.bind.attachment.AttachmentUnmarshaller;
 import javax.xml.namespace.QName;
@@ -154,6 +155,11 @@
                     } else {
                         writeObject(u, source, new JAXBElement(elName, cls, 
mObj));
                     }
+                } else if (byte[].class == cls
+                    && part.getTypeQName() != null
+                    && part.getTypeQName().getLocalPart().equals("hexBinary")) 
{
+                    mObj = new HexBinaryAdapter().marshal((byte[])mObj);
+                    writeObject(u, source, new JAXBElement(elName, 
String.class, mObj));
                 } else {
                     writeObject(u, source, new JAXBElement(elName, cls, mObj));
                 }
@@ -256,6 +262,13 @@
                 return 
ret.toArray((Object[])java.lang.reflect.Array.newInstance(clazz.getComponentType(),
                                                                        
ret.size()));
             }
+        } else if (byte[].class == clazz
+            && part != null 
+            && part.getTypeQName() != null
+            && part.getTypeQName().getLocalPart().equals("hexBinary")) {
+            
+            String obj = (String)unmarshall(context, schema, source, elName, 
String.class, au, unwrap);
+            return new HexBinaryAdapter().unmarshal(obj);
         }
 
         Object o = unmarshall(context, schema, source, elName, clazz, au, 
unwrap);

Modified: 
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/soap/SOAPRpcLitServerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/soap/SOAPRpcLitServerImpl.java?view=diff&rev=561849&r1=561848&r2=561849
==============================================================================
--- 
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/soap/SOAPRpcLitServerImpl.java
 (original)
+++ 
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/soap/SOAPRpcLitServerImpl.java
 Wed Aug  1 09:02:16 2007
@@ -48,7 +48,8 @@
     @WebService(serviceName = "SOAPService",
                 portName = "SOAPPort",
                 endpointInterface = 
"org.apache.type_test.rpc.TypeTestPortType",
-                targetNamespace = "http://apache.org/type_test/rpc";)
+                targetNamespace = "http://apache.org/type_test/rpc";,
+                wsdlLocation = 
"testutils/type_test/type_test_rpclit_soap.wsdl")
     class SOAPTypeTestImpl extends TypeTestImpl implements TypeTestPortType {
     }
 }


Reply via email to