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"));
