You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ul...@apache.org on 2011/03/02 18:06:31 UTC

svn commit: r1076295 - in /cxf/branches/2.3.x-fixes/rt/core/src: main/java/org/apache/cxf/wsdl11/ test/java/org/apache/cxf/wsdl11/ test/resources/org/apache/cxf/wsdl11/wsdl1/ test/resources/org/apache/cxf/wsdl11/wsdl2/

Author: ulhasbhole
Date: Wed Mar  2 17:06:30 2011
New Revision: 1076295

URL: http://svn.apache.org/viewvc?rev=1076295&view=rev
Log:
[CXF-3374] CXF Service Builder fails if the binding is imported from different file and has different target namespace than one imported into.


Added:
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl   (with props)
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl   (with props)
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd   (with props)
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/
    cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl   (with props)
Modified:
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
    cxf/branches/2.3.x-fixes/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java

Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java?rev=1076295&r1=1076294&r2=1076295&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java Wed Mar  2 17:06:30 2011
@@ -394,6 +394,9 @@ public class ServiceWSDLBuilder {
                 }
             }
             binding.setQName(bindingInfo.getName());
+            if (!bindingInfo.getName().getNamespaceURI().equals(definition.getTargetNamespace())) {
+                addNamespace(bindingInfo.getName().getNamespaceURI());
+            }
             buildBindingOperation(definition, binding, bindingInfo.getOperations());
             addExtensibilityElements(binding, getWSDL11Extensors(bindingInfo));
             definition.addBinding(binding);

Modified: cxf/branches/2.3.x-fixes/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java?rev=1076295&r1=1076294&r2=1076295&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java Wed Mar  2 17:06:30 2011
@@ -283,6 +283,13 @@ public class ServiceWSDLBuilderTest exte
         assertNotNull(binding);
         assertEquals(4, binding.getBindingOperations().size());
     }
+
+    @Test
+    public void testBindingWithDifferentNamespaceImport() throws Exception {
+        setupWSDL("wsdl2/person.wsdl");
+        assertEquals(newDef.getBindings().size(), 1);
+        assertTrue(newDef.getNamespace("ns3").equals("http://cxf.apache.org/samples/wsdl-first"));
+    }
     
     @Test
     public void testSchemas() throws Exception {

Added: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl?rev=1076295&view=auto
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl (added)
+++ cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl Wed Mar  2 17:06:30 2011
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    
+    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.
+
+-->
+<wsdl:definitions name="wsdl-first"
+	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:tns="http://cxf.apache.org/samples/wsdl-first/interfaces"
+	xmlns:unused="http://cxf.apache.org/samples/wsdl-first"
+	targetNamespace="http://cxf.apache.org/samples/wsdl-first">
+
+    <wsdl:import namespace="http://cxf.apache.org/samples/wsdl-first/interfaces" location="./person-soap-interfaces.wsdl"/>
+
+    <wsdl:binding name="PersonSOAPBinding" type="tns:Person">
+    	<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+		<wsdl:operation name="GetPerson">
+			<wsdl:input>
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal" />
+			</wsdl:output>
+			<wsdl:fault name="UnknownPerson">
+				<soap:fault use="literal" name="UnknownPerson" />
+			</wsdl:fault>
+       </wsdl:operation>
+   </wsdl:binding>
+
+</wsdl:definitions>

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-binding.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl?rev=1076295&view=auto
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl (added)
+++ cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl Wed Mar  2 17:06:30 2011
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    
+    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.
+
+-->
+<wsdl:definitions name="wsdl-first"
+	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:tns="http://cxf.apache.org/samples/wsdl-first/interfaces"
+	xmlns:typens="http://cxf.apache.org/samples/wsdl-first/types"
+	targetNamespace="http://cxf.apache.org/samples/wsdl-first/interfaces">
+
+    <wsdl:types>
+      <xsd:schema targetNamespace="http://cxf.apache.org/samples/wsdl-first/types" elementFormDefault="qualified">
+         <xsd:include schemaLocation="./person-types.xsd"/>
+      </xsd:schema>
+    </wsdl:types>
+
+	<wsdl:message name="GetPersonRequest">
+		<wsdl:part name="payload" element="typens:GetPerson"/>
+	</wsdl:message>
+	<wsdl:message name="GetPersonResponse">
+		<wsdl:part name="payload" element="typens:GetPersonResponse"/>
+	</wsdl:message>
+	<wsdl:message name="UnknownPersonFault">
+		<wsdl:part name="payload" element="typens:UnknownPersonFault"/>
+	</wsdl:message>
+
+    <wsdl:portType name="Person">
+		<wsdl:operation name="GetPerson">
+			<wsdl:input message="tns:GetPersonRequest"/>
+			<wsdl:output message="tns:GetPersonResponse"/>
+			<wsdl:fault name="UnknownPerson" message="tns:UnknownPersonFault"/>
+		</wsdl:operation>
+	</wsdl:portType>
+</wsdl:definitions>

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-soap-interfaces.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd?rev=1076295&view=auto
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd (added)
+++ cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd Wed Mar  2 17:06:30 2011
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    
+    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.
+
+-->
+		<xsd:schema targetNamespace="http://cxf.apache.org/samples/wsdl-first/types"
+                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		            elementFormDefault="qualified">
+			<xsd:element name="GetPerson">
+			  <xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="personId" type="xsd:string"/>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="GetPersonResponse">
+			  <xsd:complexType>
+					<xsd:sequence>
+					    <xsd:element name="personId" type="xsd:string"/>
+						<xsd:element name="ssn" type="xsd:string"/>
+						<xsd:element name="name" type="xsd:string"/>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="UnknownPersonFault">
+			  <xsd:complexType>
+					<xsd:sequence>
+					    <xsd:element name="personId" type="xsd:string"/>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+		</xsd:schema>

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl1/person-types.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl?rev=1076295&view=auto
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl (added)
+++ cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl Wed Mar  2 17:06:30 2011
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    
+    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.
+
+-->
+<wsdl:definitions name="wsdl-first"
+	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:tns="http://cxf.apache.org/samples/wsdl-first"
+	targetNamespace="urn:cxf:apache:org:samples:wsdl-first">
+
+    <wsdl:import namespace="http://cxf.apache.org/samples/wsdl-first"
+                 location="../wsdl1/person-soap-binding.wsdl"/>
+
+	<wsdl:service name="PersonService">
+    	<wsdl:port binding="tns:PersonSOAPBinding" name="soap">
+           <soap:address location="http://localhost:8092/PersonService/" />
+       </wsdl:port>
+   </wsdl:service>
+
+</wsdl:definitions>

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.3.x-fixes/rt/core/src/test/resources/org/apache/cxf/wsdl11/wsdl2/person.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml