You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2007/11/12 11:30:25 UTC

svn commit: r594076 - in /incubator/cxf/trunk/tools: validator/src/main/java/org/apache/cxf/tools/validator/internal/ wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/ wsdlto/test/src/test/resources/wsdl2java_wsdl/

Author: mmao
Date: Mon Nov 12 02:30:25 2007
New Revision: 594076

URL: http://svn.apache.org/viewvc?rev=594076&view=rev
Log:
CXF-1200
  wsdltojava accepts targetnamespace with ':' in the name but generate code that does not compile


Added:
    incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/wrong_tns.wsdl
Modified:
    incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java
    incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java

Modified: incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java?rev=594076&r1=594075&r2=594076&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java (original)
+++ incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java Mon Nov 12 02:30:25 2007
@@ -19,7 +19,9 @@
 
 package org.apache.cxf.tools.validator.internal;
 
+import java.net.MalformedURLException;
 import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -120,13 +122,25 @@
 
         try {
             schemas.add(ValidatorUtil.getSchema(this.definition));
+            checkTargetNamespace(this.definition.getTargetNamespace());
             if (importedDefinitions != null) {
                 for (Definition d : importedDefinitions) {
+                    checkTargetNamespace(d.getTargetNamespace());
                     schemas.add(ValidatorUtil.getSchema(d));
                 }
             }
         } catch (Exception ex) {
             throw new ToolException(ex);
+        }
+    }
+
+    private void checkTargetNamespace(String path) {
+        try {
+            if (new URL(path).getPath().indexOf(":") != -1) {
+                throw new ToolException(": is not a valid char in the targetNamespace");
+            }
+        } catch (MalformedURLException e) {
+            // do nothing
         }
     }
 

Modified: incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java?rev=594076&r1=594075&r2=594076&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java Mon Nov 12 02:30:25 2007
@@ -1151,4 +1151,16 @@
         assertTrue(contents.indexOf("import javax.xml.ws.FaultAction;") != -1);
         assertTrue(contents.indexOf(expected) != -1);
     }
+
+    @Test
+    public void testWrongTNS() {
+        try {
+            env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/wrong_tns.wsdl"));
+            processor.setContext(env);
+            processor.execute();
+            fail("The targetNamespce is not valid");
+        } catch (Exception e) {
+            assertTrue(e.getMessage().indexOf(": is not a valid char in the targetNamespace") != -1);
+        }
+    }
 }

Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/wrong_tns.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/wrong_tns.wsdl?rev=594076&view=auto
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/wrong_tns.wsdl (added)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/wrong_tns.wsdl Mon Nov 12 02:30:25 2007
@@ -0,0 +1,273 @@
+<?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 xmlns="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+		  xmlns:tns="http://apache.org/hello_world_soap_http/tns:soap"
+		  xmlns:x1="http://apache.org/hello_world_soap_http/tns:types"
+		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		  targetNamespace="http://apache.org/hello_world_soap_http/tns:soap" name="HelloWorld">
+    <wsdl:types>
+	<schema targetNamespace="http://apache.org/hello_world_soap_http/tns:types" 
+		xmlns="http://www.w3.org/2001/XMLSchema" xmlns:x1="http://apache.org/hello_world_soap_http/tns:types" 
+		elementFormDefault="qualified">
+	    <element name="sayHi">
+		<complexType/>
+	    </element>
+	    <element name="sayHiResponse">
+		<complexType>
+		    <sequence>
+			<element name="responseType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="greetMe">
+		<complexType>
+		    <sequence>
+			<element name="requestType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="greetMeResponse">
+		<complexType>
+		    <sequence>
+			<element name="responseType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="greetMeSometime">
+		<complexType>
+		    <sequence>
+			<element name="requestType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="greetMeSometimeResponse">
+		<complexType>
+		    <sequence>
+			<element name="responseType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="greetMeOneWay">
+		<complexType>
+		    <sequence>
+			<element name="requestType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="testDocLitFault">
+		<complexType>
+		    <sequence>
+			<element name="faultType" type="string"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="testDocLitFaultResponse">
+		<complexType>
+		    <sequence/>
+		</complexType>
+	    </element>
+	    <complexType name="ErrorCode">
+		<sequence>
+		    <element name="minor" type="short"/>
+		    <element name="major" type="short"/>
+		</sequence>
+	    </complexType>
+	    <element name="NoSuchCodeLit">
+		<complexType>
+		    <sequence>
+			<element name="code" type="x1:ErrorCode"/>
+		    </sequence>
+		</complexType>
+	    </element>
+	    <element name="BadRecordLit" type="string"/>
+	    <complexType name="BadRecord">
+		<sequence>
+		    <element name="reason" type="string"/>
+		    <element name="code" type="short"/>
+		</sequence>
+	    </complexType>
+	    <complexType name="addNumbers">
+		<sequence>
+		    <element name="arg0" type="int"/>
+		    <element name="arg1" type="int"/>
+		</sequence>
+	    </complexType>
+	    <element name="addNumbers" type="x1:addNumbers"/>
+	    <complexType name="addNumbersResponse">
+		<sequence>
+		    <element name="return" type="int"/>
+		</sequence>
+	    </complexType>
+	    <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+	    <element name="BareDocument" type="string"/>
+	    <element name="BareDocumentResponse">
+		<complexType>
+		    <sequence>
+			<element name="company" type="string"/>
+		    </sequence>
+		    <attribute name="id" type="int"/>
+		</complexType>
+	    </element>      
+	</schema>
+    </wsdl:types>
+    <wsdl:message name="sayHiRequest">
+	<wsdl:part name="in" element="x1:sayHi"/>
+    </wsdl:message>
+    <wsdl:message name="sayHiResponse">
+	<wsdl:part name="out" element="x1:sayHiResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeRequest">
+	<wsdl:part name="in" element="x1:greetMe"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeResponse">
+	<wsdl:part name="out" element="x1:greetMeResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeSometimeRequest">
+	<wsdl:part name="in" element="x1:greetMeSometime"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeSometimeResponse">
+	<wsdl:part name="out" element="x1:greetMeSometimeResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeOneWayRequest">
+	<wsdl:part name="in" element="x1:greetMeOneWay"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitFaultRequest">
+	<wsdl:part name="in" element="x1:testDocLitFault"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitFaultResponse">
+	<wsdl:part name="out" element="x1:testDocLitFaultResponse"/>
+    </wsdl:message>
+    <wsdl:message name="NoSuchCodeLitFault">
+	<wsdl:part name="NoSuchCodeLit" element="x1:NoSuchCodeLit"/>
+    </wsdl:message>
+    <wsdl:message name="BadRecordLitFault">
+	<wsdl:part name="BadRecordLit" element="x1:BadRecordLit"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitBareRequest">
+	<wsdl:part name="in" element="x1:BareDocument"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitBareResponse">
+	<wsdl:part name="out" element="x1:BareDocumentResponse"/>
+    </wsdl:message> 
+    <wsdl:portType name="Greeter">
+	<wsdl:operation name="sayHi">
+	    <wsdl:input name="sayHiRequest" message="tns:sayHiRequest"/>
+	    <wsdl:output name="sayHiResponse" message="tns:sayHiResponse"/>
+	</wsdl:operation>
+	<wsdl:operation name="greetMe">
+	    <wsdl:input name="greetMeRequest" message="tns:greetMeRequest"/>
+	    <wsdl:output name="greetMeResponse" message="tns:greetMeResponse"/>
+	</wsdl:operation>
+	<wsdl:operation name="greetMeSometime">
+	    <wsdl:input name="greetMeSometimeRequest" message="tns:greetMeSometimeRequest"/>
+	    <wsdl:output name="greetMeSometimeResponse" message="tns:greetMeSometimeResponse"/>
+	</wsdl:operation>
+	<wsdl:operation name="greetMeOneWay">
+	    <wsdl:input name="greetMeOneWayRequest" message="tns:greetMeOneWayRequest"/>
+	</wsdl:operation>
+	<wsdl:operation name="testDocLitFault">
+	    <wsdl:input name="testDocLitFaultRequest" message="tns:testDocLitFaultRequest"/>
+	    <wsdl:output name="testDocLitFaultResponse" message="tns:testDocLitFaultResponse"/>
+	    <wsdl:fault name="NoSuchCodeLitFault" message="tns:NoSuchCodeLitFault"/>
+	    <wsdl:fault name="BadRecordLitFault" message="tns:BadRecordLitFault"/>
+	</wsdl:operation>
+	<wsdl:operation name="testDocLitBare">
+	    <wsdl:input name="testDocLitBareRequest" message="tns:testDocLitBareRequest"/>
+	    <wsdl:output name="testDocLitBareResponse" message="tns:testDocLitBareResponse"/>
+	</wsdl:operation>       
+    </wsdl:portType>
+    <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+	<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+	<wsdl:operation name="sayHi">
+	    <soap:operation style="document"/>
+	    <wsdl:input>
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	    <wsdl:output>
+		<soap:body use="literal"/>
+	    </wsdl:output>
+	</wsdl:operation>
+	<wsdl:operation name="greetMe">
+	    <soap:operation style="document"/>
+	    <wsdl:input>
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	    <wsdl:output>
+		<soap:body use="literal"/>
+	    </wsdl:output>
+	</wsdl:operation>
+	<wsdl:operation name="greetMeSometime">
+	    <soap:operation style="document"/>
+	    <wsdl:input>
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	    <wsdl:output>
+		<soap:body use="literal"/>
+	    </wsdl:output>
+	</wsdl:operation>
+	<wsdl:operation name="greetMeOneWay">
+	    <soap:operation style="document"/>
+	    <wsdl:input>
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	</wsdl:operation>
+	<wsdl:operation name="testDocLitFault">
+	    <soap:operation style="document"/>
+	    <wsdl:input>
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	    <wsdl:output>
+		<soap:body use="literal"/>
+	    </wsdl:output>
+	    <wsdl:fault name="NoSuchCodeLitFault">
+		<soap:fault name="NoSuchCodeLitFault" use="literal"/>
+	    </wsdl:fault>
+	    <wsdl:fault name="BadRecordLitFault">
+		<soap:fault name="BadRecordLitFault" use="literal"/>
+	    </wsdl:fault>
+	</wsdl:operation>
+	<wsdl:operation name="testDocLitBare">
+	    <soap:operation style="document" soapAction="http://apache.org/hello_world_soap_http/testDocLitBare"/>
+	    <wsdl:input name="testDocLitBareRequest">
+		<soap:body use="literal"/>
+	    </wsdl:input>
+	    <wsdl:output name="testDocLitBareResponse">
+		<soap:body use="literal"/>
+	    </wsdl:output>
+	</wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="SOAPService">
+	<wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+	    <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+	    <wswa:UsingAddressing xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/>
+	</wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPService_Test1">
+	<wsdl:port name="SoapPort_Test1" binding="tns:Greeter_SOAPBinding">
+	    <soap:address location="http://localhost:9100"/>
+	</wsdl:port>
+	<wsdl:port name="SoapPort_Test2" binding="tns:Greeter_SOAPBinding">
+	    <soap:address location="http://localhost:9101"/>
+	</wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
+