You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by tl...@apache.org on 2006/12/20 06:47:30 UTC

svn commit: r488924 - in /incubator/cxf/trunk: rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/ systests/src/test/java/org/apache/cxf/systest/jaxws/ testutils/ testutils/src/main/resources/wsdl/

Author: tli
Date: Tue Dec 19 21:47:29 2006
New Revision: 488924

URL: http://svn.apache.org/viewvc?view=rev&rev=488924
Log:
CXF-293 fixed with systest, and refactor the XML Binding systests

Added:
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java   (with props)
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java   (with props)
    incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl   (with props)
Removed:
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLBareTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java
Modified:
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
    incubator/cxf/trunk/testutils/pom.xml

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java?view=diff&rev=488924&r1=488923&r2=488924
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java Tue Dec 19 21:47:29 2006
@@ -26,9 +26,11 @@
 import java.util.logging.Logger;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.cxf.binding.xml.XMLFault;
+import org.apache.cxf.bindings.xformat.XMLBindingMessageFormat;
 import org.apache.cxf.common.i18n.BundleUtils;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.interceptor.AbstractInDatabindingInterceptor;
@@ -39,6 +41,7 @@
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.Phase;
 import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingMessageInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.MessageInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
@@ -90,10 +93,12 @@
         BindingOperationInfo bop = ex.get(BindingOperationInfo.class);
         MessagePartInfo part = null;
         if (bop == null) {
-            List<OperationInfo> operations = new ArrayList<OperationInfo>();
-            operations.addAll(service.getInterface().getOperations());
-            
-            part = findMessagePart(ex, operations, startQName, false , 0);
+            part = getPartByRootNode(message, startQName, service, xsr);
+            if (part == null) {
+                List<OperationInfo> operations = new ArrayList<OperationInfo>();
+                operations.addAll(service.getInterface().getOperations());            
+                part = findMessagePart(ex, operations, startQName, false , 0);
+            }
         } else {
             MessageInfo msgInfo = getMessageInfo(message, bop, ex);
             if (msgInfo.getMessageParts().size() > 0) {
@@ -101,7 +106,7 @@
             }
         }
 
-        if (part != null && part.getMessageInfo().getMessageParts().size() == 1) {
+        if (part != null) {
             OperationInfo o = part.getMessageInfo().getOperation();
             // TODO: We already know the op, so we can optimize BareInInterceptor a bit yet
             if (!o.isUnwrappedCapable()) {
@@ -134,4 +139,34 @@
         throw new Fault(new org.apache.cxf.common.i18n.Message("REQ_NOT_UNDERSTOOD", BUNDLE, startQName));
     }
 
+    private MessagePartInfo getPartByRootNode(Message message, QName startQName, 
+            BindingInfo bi, XMLStreamReader xsr) {        
+        for (BindingOperationInfo boi : bi.getOperations()) {
+            MessageInfo mi;
+            BindingMessageInfo bmi;
+            if (!isRequestor(message)) {
+                mi = boi.getOperationInfo().getInput();
+                bmi = boi.getInput();
+            } else {
+                mi = boi.getOperationInfo().getOutput();
+                bmi = boi.getOutput();
+            }
+            XMLBindingMessageFormat xmf = bmi.getExtensor(XMLBindingMessageFormat.class);
+            if (xmf != null) {
+                if (xmf.getRootNode().getLocalPart().equals(startQName.getLocalPart())) {
+                    message.getExchange().put(BindingOperationInfo.class, boi);
+                    try {
+                        xsr.nextTag();
+                    } catch (XMLStreamException xse) {
+                        throw new Fault(new org.apache.cxf.common.i18n.Message("STAX_READ_EXC", BUNDLE));
+                    }
+                    if (mi.getMessageParts().size() > 0) {
+                        return mi.getMessageParts().get(0);
+                    }
+                    break;
+                }
+            }
+        }
+        return null;
+    }
 }

Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java Tue Dec 19 21:47:29 2006
@@ -0,0 +1,251 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.jaxws;
+
+import java.io.InputStream;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.net.HttpURLConnection;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.xpath.XPathConstants;
+
+import org.w3c.dom.Document;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.cxf.helpers.XMLUtils;
+import org.apache.cxf.helpers.XPathUtils;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.systest.common.ClientServerSetupBase;
+import org.apache.cxf.systest.common.ClientServerTestBase;
+import org.apache.headers.HeaderTester;
+import org.apache.headers.XMLHeaderService;
+import org.apache.headers.types.InHeader;
+import org.apache.headers.types.InHeaderResponse;
+import org.apache.headers.types.SOAPHeaderData;
+import org.apache.hello_world_xml_http.bare.Greeter;
+import org.apache.hello_world_xml_http.bare.XMLService;
+import org.apache.hello_world_xml_http.bare.types.MyComplexStructType;
+import org.apache.hello_world_xml_http.wrapped.GreeterFaultImpl;
+import org.apache.hello_world_xml_http.wrapped.PingMeFault;
+
+public class ClientServerXMLTest extends ClientServerTestBase {
+
+    private final QName barePortName = new QName("http://apache.org/hello_world_xml_http/bare", "XMLPort");
+
+    private final QName wrapServiceName = new QName("http://apache.org/hello_world_xml_http/wrapped",
+            "XMLService");
+
+    private final QName wrapPortName = new QName("http://apache.org/hello_world_xml_http/wrapped", "XMLPort");
+
+    private final QName wrapFakePortName = new QName("http://apache.org/hello_world_xml_http/wrapped",
+            "FakePort");
+
+    public static Test suite() throws Exception {
+        TestSuite suite = new TestSuite(ClientServerXMLTest.class);
+        return new ClientServerSetupBase(suite) {
+            public void startServers() throws Exception {
+                assertTrue("server did not launch correctly", launchServer(ServerXMLBinding.class));
+            }
+        };
+    }
+
+    public void testBareBasicConnection() throws Exception {
+
+        XMLService service = new XMLService();
+        assertNotNull(service);
+
+        String response1 = "Hello ";
+        String response2 = "Bonjour";
+        try {
+            Greeter greeter = service.getPort(barePortName, Greeter.class);
+            String username = System.getProperty("user.name");
+            String reply = greeter.greetMe(username);
+
+            assertNotNull("no response received from service", reply);
+            assertEquals(response1 + username, reply);
+
+            reply = greeter.sayHi();
+            assertNotNull("no response received from service", reply);
+            assertEquals(response2, reply);
+
+            MyComplexStructType argument = new MyComplexStructType();
+            MyComplexStructType retVal = null;
+
+            String str1 = "this is element 1";
+            String str2 = "this is element 2";
+            int int1 = 42;
+            argument.setElem1(str1);
+            argument.setElem2(str2);
+            argument.setElem3(int1);
+            retVal = greeter.sendReceiveData(argument);
+
+            assertEquals(str1, retVal.getElem1());
+            assertEquals(str2, retVal.getElem2());
+            assertEquals(int1, retVal.getElem3());
+
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception) ex.getCause();
+        }
+    }
+
+    public void testBareGetGreetMe() throws Exception {
+        HttpURLConnection httpConnection = 
+            getHttpConnection("http://localhost:9031/XMLService/XMLPort/greetMe/requestType/cxf");
+        httpConnection.connect();
+
+        assertEquals(200, httpConnection.getResponseCode());
+
+        assertEquals("text/xml", httpConnection.getContentType());
+        assertEquals("OK", httpConnection.getResponseMessage());
+
+        InputStream in = httpConnection.getInputStream();
+        assertNotNull(in);
+
+        Document doc = XMLUtils.parse(in);
+        assertNotNull(doc);
+
+        Map<String, String> ns = new HashMap<String, String>();
+        ns.put("ns2", "http://apache.org/hello_world_xml_http/bare/types");
+        XPathUtils xu = new XPathUtils(ns);
+        String response = (String) xu.getValue("//ns2:responseType/text()", doc, XPathConstants.STRING);
+        assertEquals("Hello cxf", response);
+    }
+
+    public void testWrapBasicConnection() throws Exception {
+
+        org.apache.hello_world_xml_http.wrapped.XMLService service = 
+            new org.apache.hello_world_xml_http.wrapped.XMLService(
+                this.getClass().getResource("/wsdl/hello_world_xml_wrapped.wsdl"), wrapServiceName);
+        assertNotNull(service);
+
+        String response1 = new String("Hello ");
+        String response2 = new String("Bonjour");
+        try {
+            org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+                    org.apache.hello_world_xml_http.wrapped.Greeter.class);
+            String username = System.getProperty("user.name");
+            String reply = greeter.greetMe(username);
+
+            assertNotNull("no response received from service", reply);
+            assertEquals(response1 + username, reply);
+
+            reply = greeter.sayHi();
+            assertNotNull("no response received from service", reply);
+            assertEquals(response2, reply);
+
+            greeter.greetMeOneWay(System.getProperty("user.name"));
+
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception) ex.getCause();
+        }
+    }
+
+    public void testAddPort() throws Exception {
+
+        Service service = Service.create(wrapServiceName);
+        service.addPort(wrapFakePortName, "http://cxf.apache.org/bindings/xformat",
+                "http://localhost:9032/XMLService/XMLPort");
+        assertNotNull(service);
+
+        String response1 = new String("Hello ");
+        String response2 = new String("Bonjour");
+
+        org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+                org.apache.hello_world_xml_http.wrapped.Greeter.class);
+
+        try {
+            String username = System.getProperty("user.name");
+            String reply = greeter.greetMe(username);
+
+            assertNotNull("no response received from service", reply);
+            assertEquals(response1 + username, reply);
+
+            reply = greeter.sayHi();
+            assertNotNull("no response received from service", reply);
+            assertEquals(response2, reply);
+
+            greeter.greetMeOneWay(System.getProperty("user.name"));
+
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception) ex.getCause();
+        }
+        BindingProvider bp = (BindingProvider) greeter;
+        Map<String, Object> responseContext = bp.getResponseContext();
+        Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+        assertEquals(200, responseCode.intValue());
+    }
+
+    public void testXMLFault() throws Exception {
+        org.apache.hello_world_xml_http.wrapped.XMLService service = 
+            new org.apache.hello_world_xml_http.wrapped.XMLService(
+                this.getClass().getResource("/wsdl/hello_world_xml_wrapped.wsdl"), wrapServiceName);
+        assertNotNull(service);
+        org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+                org.apache.hello_world_xml_http.wrapped.Greeter.class);
+        try {
+            greeter.pingMe();
+            fail("did not catch expected PingMeFault exception");
+        } catch (PingMeFault ex) {
+            assertEquals("minor value", 1, ex.getFaultInfo().getMinor());
+            assertEquals("major value", 2, ex.getFaultInfo().getMajor());
+
+            BindingProvider bp = (BindingProvider) greeter;
+            Map<String, Object> responseContext = bp.getResponseContext();
+            String contentType = (String) responseContext.get(Message.CONTENT_TYPE);
+            assertEquals("text/xml", contentType);
+            Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+            assertEquals(500, responseCode.intValue());
+        }
+
+        org.apache.hello_world_xml_http.wrapped.Greeter greeterFault = service.getXMLFaultPort();
+        try {
+            greeterFault.pingMe();
+            fail("did not catch expected runtime exception");
+        } catch (Exception ex) {
+            assertTrue("check expected message of exception", ex.getMessage().indexOf(
+                    GreeterFaultImpl.RUNTIME_EXCEPTION_MESSAGE) >= 0);
+        }
+    }
+
+    public void testXMLBindingOfSoapHeaderWSDL() throws Exception {
+        XMLHeaderService service = new XMLHeaderService();
+        HeaderTester port = service.getXMLPort9000();
+        try {
+            InHeader me = new InHeader();
+            me.setRequestType("InHeaderRequest");
+            SOAPHeaderData headerInfo = new SOAPHeaderData();
+            headerInfo.setMessage("message");
+            headerInfo.setOriginator("originator");
+            InHeaderResponse resp = port.inHeader(me, headerInfo);
+            assertNotNull(resp);
+            assertEquals("check returned response type", "requestType=InHeaderRequest" 
+                    + "\nheaderData.message=message" + "\nheaderData.getOriginator=originator", 
+                    resp.getResponseType());
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception) ex.getCause();
+        }
+    }
+}

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java Tue Dec 19 21:47:29 2006
@@ -0,0 +1,61 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.jaxws;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.systest.common.TestServerBase;
+import org.apache.headers.HeaderTesterImpl;
+import org.apache.hello_world_xml_http.bare.GreeterImpl;
+import org.apache.hello_world_xml_http.wrapped.GreeterFaultImpl;
+
+
+public class ServerXMLBinding extends TestServerBase {
+
+    protected void run() {
+        Object implementor = new GreeterImpl();
+        String address = "http://localhost:9031/XMLService/XMLPort";
+        Endpoint.publish(address, implementor);
+
+        Object implementor1 = new org.apache.hello_world_xml_http.wrapped.GreeterImpl();
+        address = "http://localhost:9032/XMLService/XMLPort";
+        Endpoint.publish(address, implementor1);
+
+        Object faultImplementor = new GreeterFaultImpl();
+        String faultAddress = "http://localhost:9033/XMLService/XMLFaultPort";
+        Endpoint.publish(faultAddress, faultImplementor);
+
+        Object implementor2 = new HeaderTesterImpl();
+        address = "http://localhost:9034/XMLContext/XMLPort";
+        Endpoint.publish(address, implementor2);
+    }
+
+    public static void main(String[] args) {
+        try {
+            ServerXMLBinding s = new ServerXMLBinding();
+            s.start();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.exit(-1);
+        } finally {
+            System.out.println("done!");
+        }
+    }
+}

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/testutils/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/pom.xml?view=diff&rev=488924&r1=488923&r2=488924
==============================================================================
--- incubator/cxf/trunk/testutils/pom.xml (original)
+++ incubator/cxf/trunk/testutils/pom.xml Tue Dec 19 21:47:29 2006
@@ -201,6 +201,9 @@
                                     <wsdl>${basedir}/src/main/resources/wsdl/soapheader.wsdl</wsdl>
                                 </wsdlOption>
                                 <wsdlOption>
+                                    <wsdl>${basedir}/src/main/resources/wsdl/soapheader2.wsdl</wsdl>
+                                </wsdlOption>
+                                <wsdlOption>
                                     <wsdl>${basedir}/src/main/resources/wsdl/locator.wsdl</wsdl>
                                     <extraargs>
                                         <extraarg>-p</extraarg>

Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl Tue Dec 19 21:47:29 2006
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="soap_header" targetNamespace="http://apache.org/headers"
+    xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jms="http://cxf.apache.org/transports/jms"
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:xformat="http://cxf.apache.org/bindings/xformat" xmlns:tns="http://apache.org/headers"
+    xmlns:x1="http://apache.org/headers/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <types>
+        <schema targetNamespace="http://apache.org/headers/types" xmlns="http://www.w3.org/2001/XMLSchema"
+            xmlns:tns="http://apache.org/headers/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+            elementFormDefault="qualified">
+
+            <complexType name="SOAPHeaderData">
+                <sequence>
+                    <element name="originator" type="xsd:string" />
+                    <element name="message" type="xsd:string" />
+                </sequence>
+            </complexType>
+            <element name="SOAPHeaderInfo" type="tns:SOAPHeaderData" />
+
+            <element name="inHeader">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="inHeaderResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="outHeader">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="outHeaderResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="inoutHeader">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="inoutHeaderResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+        </schema>
+    </types>
+
+    <message name="inHeaderRequest">
+        <part element="x1:inHeader" name="me" />
+        <part element="x1:SOAPHeaderInfo" name="header_info" />
+    </message>
+    <message name="inHeaderResponse">
+        <part element="x1:inHeaderResponse" name="the_response" />
+    </message>
+    <message name="outHeaderRequest">
+        <part element="x1:outHeader" name="me" />
+    </message>
+    <message name="outHeaderResponse">
+        <part element="x1:outHeaderResponse" name="the_response" />
+        <part element="x1:SOAPHeaderInfo" name="header_info" />
+    </message>
+    <message name="inoutHeaderRequest">
+        <part element="x1:inoutHeader" name="me" />
+        <part element="x1:SOAPHeaderInfo" name="header_info" />
+    </message>
+    <message name="inoutHeaderResponse">
+        <part element="x1:inoutHeaderResponse" name="the_response" />
+        <part element="x1:SOAPHeaderInfo" name="header_info" />
+    </message>
+
+    <portType name="headerTester">
+        <operation name="inHeader">
+            <input message="tns:inHeaderRequest" name="inHeaderRequest" />
+            <output message="tns:inHeaderResponse" name="inHeaderResponse" />
+        </operation>
+        <operation name="outHeader">
+            <input message="tns:outHeaderRequest" name="outHeaderRequest" />
+            <output message="tns:outHeaderResponse" name="outHeaderResponse" />
+        </operation>
+        <operation name="inoutHeader">
+            <input message="tns:inoutHeaderRequest" name="inoutHeaderRequest" />
+            <output message="tns:inoutHeaderResponse" name="inoutHeaderResponse" />
+        </operation>
+    </portType>
+
+    <binding name="headerTesterSOAPBinding" type="tns:headerTester">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <operation name="inHeader">
+            <soap:operation soapAction="" style="document" />
+            <input name="inHeaderRequest">
+                <soap:body parts="me" use="literal" />
+                <soap:header message="tns:inHeaderRequest" part="header_info" use="literal" />
+            </input>
+            <output name="inHeaderResponse">
+                <soap:body use="literal" />
+            </output>
+        </operation>
+        <operation name="outHeader">
+            <soap:operation soapAction="" style="document" />
+            <input name="outHeaderRequest">
+                <soap:body use="literal" />
+            </input>
+            <output name="outHeaderResponse">
+                <soap:body parts="the_response" use="literal" />
+                <soap:header message="tns:outHeaderResponse" part="header_info" use="literal" />
+            </output>
+        </operation>
+        <operation name="inoutHeader">
+            <soap:operation soapAction="" style="document" />
+            <input name="inoutHeaderRequest">
+                <soap:body parts="me" use="literal" />
+                <soap:header message="tns:inoutHeaderRequest" part="header_info" use="literal" />
+            </input>
+            <output name="inoutHeaderResponse">
+                <soap:body parts="the_response" use="literal" />
+                <soap:header message="tns:inoutHeaderResponse" part="header_info" use="literal" />
+            </output>
+        </operation>
+    </binding>
+
+    <wsdl:binding name="headerTesterXMLBinding" type="tns:headerTester">
+        <xformat:binding />
+        <wsdl:operation name="inHeader">
+            <wsdl:input>
+                <xformat:body rootNode="tns:inHeaderReqNode" />
+            </wsdl:input>
+            <wsdl:output />
+        </wsdl:operation>
+
+        <wsdl:operation name="outHeader">
+            <wsdl:input />
+            <wsdl:output>
+                <xformat:body rootNode="tns:outHeaderRespNode" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="inoutHeader">
+            <wsdl:input>
+                <xformat:body rootNode="tns:inoutHeaderNode" />
+            </wsdl:input>
+            <wsdl:output>
+                <xformat:body rootNode="tns:inoutHeaderNode" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+    <service name="XMLHeaderService">
+        <port binding="tns:headerTesterXMLBinding" name="XMLPort9000">
+            <http:address location="http://localhost:9034/XMLContext/XMLPort" />
+        </port>
+    </service>
+
+</definitions>

Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml