You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/09/12 03:24:46 UTC

svn commit: r694575 - in /cxf/branches/2.0.x-fixes: ./ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java

Author: dkulp
Date: Thu Sep 11 18:24:46 2008
New Revision: 694575

URL: http://svn.apache.org/viewvc?rev=694575&view=rev
Log:
Merged revisions 694468 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes

................
  r694468 | dkulp | 2008-09-11 16:45:45 -0400 (Thu, 11 Sep 2008) | 9 lines
  
  Merged revisions 694179 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r694179 | seanoc | 2008-09-11 04:49:23 -0400 (Thu, 11 Sep 2008) | 1 line
    
    Replaced NodeList
  ........
................

Modified:
    cxf/branches/2.0.x-fixes/   (props changed)
    cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
    cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 11 18:24:46 2008
@@ -1,3 +1,3 @@
-/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694467
-/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819
+/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694468
+/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179
 /incubator/cxf/trunk:434594-651668

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Sep 11 18:24:46 2008
@@ -1 +1 @@
-/cxf/branches/2.1.x-fixes:1-686313,686315-686332,686334-686346,686348-686828,687097,687464-687465,689109,689112,689122,690841,691316,691357,691491,691711,691715,691745,692162-692163,692344,692468,692500,694466-694467
+/cxf/branches/2.1.x-fixes:1-686313,686315-686332,686334-686346,686348-686828,687097,687464-687465,689109,689112,689122,690841,691316,691357,691491,691711,691715,691745,692162-692163,692344,692468,692500,694466-694468

Modified: cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java?rev=694575&r1=694574&r2=694575&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java (original)
+++ cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java Thu Sep 11 18:24:46 2008
@@ -38,7 +38,6 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.binding.soap.Soap11;
@@ -51,6 +50,7 @@
 import org.apache.cxf.headers.Header;
 import org.apache.cxf.headers.HeaderManager;
 import org.apache.cxf.headers.HeaderProcessor;
+import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Attachment;
 import org.apache.cxf.phase.Phase;
@@ -129,47 +129,44 @@
         if (header == null) {
             return;
         }
-        NodeList headerEls = header.getChildNodes();
-        int len = headerEls.getLength();
-        for (int i = 0; i < len; i++) {
-            Node nd = headerEls.item(i);
-            if (Node.ELEMENT_NODE == nd.getNodeType()) {
-                Element hel = (Element)nd;
-                Bus b = message.getExchange().get(Bus.class);
-                HeaderProcessor p =  null;
-                if (b != null && b.getExtension(HeaderManager.class) != null) {
-                    p = b.getExtension(HeaderManager.class).getHeaderProcessor(hel.getNamespaceURI());
-                }
+        Element elem = DOMUtils.getFirstElement(header);
+        while (elem != null) {
+            Bus b = message.getExchange().get(Bus.class);
+            HeaderProcessor p =  null;
+            if (b != null && b.getExtension(HeaderManager.class) != null) {
+                p = b.getExtension(HeaderManager.class).getHeaderProcessor(elem.getNamespaceURI());
+            }
                 
-                Object obj;
-                DataBinding dataBinding = null;
-                if (p == null || p.getDataBinding() == null) {
-                    obj = nd;
-                } else {
-                    obj = p.getDataBinding().createReader(Node.class).read(nd);
-                }
-                //TODO - add the interceptors
+            Object obj;
+            DataBinding dataBinding = null;
+            if (p == null || p.getDataBinding() == null) {
+                obj = elem;
+            } else {
+                obj = p.getDataBinding().createReader(Node.class).read(elem);
+            }
+            //TODO - add the interceptors
                 
-                SoapHeader shead = new SoapHeader(new QName(nd.getNamespaceURI(),
-                        nd.getLocalName()),
-                                                   obj,
-                                                   dataBinding);
-                shead.setDirection(SoapHeader.Direction.DIRECTION_IN);
+            SoapHeader shead = new SoapHeader(new QName(elem.getNamespaceURI(),
+                                                        elem.getLocalName()),
+                                               obj,
+                                               dataBinding);
+            shead.setDirection(SoapHeader.Direction.DIRECTION_IN);
                 
-                String mu = hel.getAttributeNS(message.getVersion().getNamespace(),
-                        message.getVersion().getAttrNameMustUnderstand());
-                String act = hel.getAttributeNS(message.getVersion().getNamespace(),
-                        message.getVersion().getAttrNameRole());
+            String mu = elem.getAttributeNS(message.getVersion().getNamespace(),
+                    message.getVersion().getAttrNameMustUnderstand());
+            String act = elem.getAttributeNS(message.getVersion().getNamespace(),
+                    message.getVersion().getAttrNameRole());
                 
-                shead.setActor(act);
-                shead.setMustUnderstand(Boolean.valueOf(mu) || "1".equals(mu));
-                Header oldHdr = message.getHeader(
-                        new QName(nd.getNamespaceURI(), nd.getLocalName()));
-                if (oldHdr != null) {
-                    message.getHeaders().remove(oldHdr);
-                } 
-                message.getHeaders().add(shead);                        
-            }
+            shead.setActor(act);
+            shead.setMustUnderstand(Boolean.valueOf(mu) || "1".equals(mu));
+            Header oldHdr = message.getHeader(
+                    new QName(elem.getNamespaceURI(), elem.getLocalName()));
+            if (oldHdr != null) {
+                message.getHeaders().remove(oldHdr);
+            } 
+            message.getHeaders().add(shead);                        
+            
+            elem = DOMUtils.getNextElement(elem);
         }
     }
 

Modified: cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java?rev=694575&r1=694574&r2=694575&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java (original)
+++ cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java Thu Sep 11 18:24:46 2008
@@ -58,6 +58,7 @@
 import org.apache.cxf.binding.soap.SoapVersion;
 import org.apache.cxf.binding.soap.SoapVersionFactory;
 import org.apache.cxf.headers.Header;
+import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.interceptor.InterceptorChain;
 import org.apache.cxf.io.CachedOutputStream;
@@ -247,10 +248,9 @@
         control.verify();
 
         // Verify SOAPMessage header
-        SOAPMessage soapMessageNew = message.getContent(SOAPMessage.class);
-        NodeList headerEls = soapMessageNew.getSOAPHeader().getChildNodes();
+        SOAPMessage soapMessageNew = message.getContent(SOAPMessage.class);       
 
-        Element headerElementNew = (Element)headerEls.item(0);
+        Element headerElementNew = DOMUtils.getFirstElement(soapMessageNew.getSOAPHeader());
         
         SoapVersion soapVersion = Soap11.getInstance();
         assertEquals("false", headerElementNew.getAttributeNS(soapVersion.getNamespace(), "mustUnderstand"));