You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2008/06/17 06:05:03 UTC

svn commit: r668387 - in /servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src: main/java/org/apache/servicemix/cxfbc/interceptors/ test/resources/

Author: ffang
Date: Mon Jun 16 21:05:02 2008
New Revision: 668387

URL: http://svn.apache.org/viewvc?rev=668387&view=rev
Log:
[SM-1401]cxf bc should handle soap header in rpc mode correctly

Modified:
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiInWsdl1Interceptor.java
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC-Input.xml
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC.wsdl

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiInWsdl1Interceptor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiInWsdl1Interceptor.java?rev=668387&r1=668386&r2=668387&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiInWsdl1Interceptor.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiInWsdl1Interceptor.java Mon Jun 16 21:05:02 2008
@@ -201,7 +201,9 @@
                 MessagePartInfo part = header.getPart();
                 Header param = findHeader(headerElement, part);
                 int idx = part.getIndex();
-                QName element = part.getElementQName();
+                QName element = part.isElement() ? part.getElementQName() : part.getTypeQName();
+                
+                
                 Header hdr = getHeaderElement(message, element);
                 if (hdr == null) {
                     throw new Fault(new Exception(
@@ -314,7 +316,9 @@
         }
         List<Header> headerElement = message.getHeaders();
         for (SoapHeaderInfo header : headers) {
-            if (header.getPart().getElementQName().equals(name)) {
+            QName qname = header.getPart().isElement() 
+                ? header.getPart().getElementQName() : header.getPart().getTypeQName();
+            if (qname.equals(name)) {
                 MessagePartInfo mpi = header.getPart();
                 return findHeader(headerElement, mpi);
             }
@@ -351,13 +355,21 @@
         if (headerElement != null) {
             QName name = mpi.getConcreteName();
             for (Header header : headerElement) {
-                if (header.getName().getNamespaceURI() != null
+                if (mpi.isElement()) {
+                    if (header.getName().getNamespaceURI() != null
                         && header.getName().getNamespaceURI().equals(
                                 name.getNamespaceURI())
                         && header.getName().getLocalPart() != null
                         && header.getName().getLocalPart().equals(
                                 name.getLocalPart())) {
-                    param = header;
+                        param = header;
+                    }
+                } else {
+                    if (header.getName().getLocalPart() != null
+                            && header.getName().getLocalPart().equals(
+                                name.getLocalPart())) {
+                        param = header;
+                    }
                 }
             }
         }

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC-Input.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC-Input.xml?rev=668387&r1=668386&r2=668387&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC-Input.xml (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC-Input.xml Mon Jun 16 21:05:02 2008
@@ -20,13 +20,13 @@
 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
 
   <SOAP-ENV:Header>
-    <HelloHeader1 xmlns="uri:HelloWorld">
-      <id1>abcdefghij</id1>
-    </HelloHeader1>
+    <header1 xmlns="uri:HelloWorld">
+      abcdefghij
+    </header1>
     
-    <HelloHeader2 xmlns="uri:HelloWorld">
-      <id2>1234567890</id2>
-    </HelloHeader2>
+    <header2 xmlns="uri:HelloWorld">
+      1234567890
+    </header2>
   </SOAP-ENV:Header>
   
   <SOAP-ENV:Body>

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC.wsdl
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC.wsdl?rev=668387&r1=668386&r2=668387&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC.wsdl (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/HelloWorld-RPC.wsdl Mon Jun 16 21:05:02 2008
@@ -25,28 +25,11 @@
         xmlns="http://schemas.xmlsoap.org/wsdl/">
 
     <types>
-        <schema targetNamespace="uri:HelloWorld"
-                xmlns="http://www.w3.org/2000/10/XMLSchema">
-            <element name="HelloHeader1">
-                <complexType>
-                    <all>
-                        <element name="id1" type="string"/>
-                    </all>
-                </complexType>
-            </element>
-            <element name="HelloHeader2">
-                <complexType>
-                    <all>
-                        <element name="id2" type="string"/>
-                    </all>
-                </complexType>
-            </element>
-        </schema>
     </types>
 
     <message name="HelloRequest">
-        <part name="header1" element="tns:HelloHeader1"/>
-        <part name="header2" element="tns:HelloHeader2"/>
+        <part name="header1" type="xsd:string"/>
+        <part name="header2" type="xsd:string"/>
         <part name="param1" type="xsd:string"/>
         <part name="param2" type="xsd:int"/>
     </message>