cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ff...@apache.org
Subject svn commit: r1171492 - in /cxf/trunk/tools/wsdlto/misc/src: main/java/org/apache/cxf/tools/misc/ main/java/org/apache/cxf/tools/misc/processor/ test/java/org/apache/cxf/tools/misc/processor/ test/resources/misctools_wsdl/
Date Fri, 16 Sep 2011 10:26:26 GMT
Author: ffang
Date: Fri Sep 16 10:26:25 2011
New Revision: 1171492

URL: http://svn.apache.org/viewvc?rev=1171492&view=rev
Log:
[CXF-3125]Add -validate option to wsdl2service

Added:
    cxf/trunk/tools/wsdlto/misc/src/test/resources/misctools_wsdl/hello_world_mixed_style.wsdl
Modified:
    cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/processor/AbstractWSDLToProcessor.java
    cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/wsdl2service.xml
    cxf/trunk/tools/wsdlto/misc/src/test/java/org/apache/cxf/tools/misc/processor/WSDLToServiceProcessorTest.java

Modified: cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/processor/AbstractWSDLToProcessor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/processor/AbstractWSDLToProcessor.java?rev=1171492&r1=1171491&r2=1171492&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/processor/AbstractWSDLToProcessor.java
(original)
+++ cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/processor/AbstractWSDLToProcessor.java
Fri Sep 16 10:26:25 2011
@@ -115,6 +115,9 @@ public class AbstractWSDLToProcessor imp
         }
         WSDLDefinitionBuilder builder = new WSDLDefinitionBuilder(bus);
         wsdlDefinition = builder.build(wsdlURL);
+        if (env.optionSet(ToolConstants.CFG_VALIDATE_WSDL)) {
+            validate(wsdlDefinition, env, bus);
+        }
         WSDLManager mgr = bus.getExtension(WSDLManager.class);
         mgr.removeDefinition(wsdlDefinition);
         
@@ -194,5 +197,9 @@ public class AbstractWSDLToProcessor imp
             System.err.println("Parsing schema warning " + exception.toString());
         }
     }
+    
+    public boolean validate(final Definition def, ToolContext context, Bus bus) throws ToolException
{
+        return new WSDL11Validator(def, context, bus).isValid();
+    }
 
 }

Modified: cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/wsdl2service.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/wsdl2service.xml?rev=1171492&r1=1171491&r2=1171492&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/wsdl2service.xml (original)
+++ cxf/trunk/tools/wsdlto/misc/src/main/java/org/apache/cxf/tools/misc/wsdl2service.xml Fri
Sep 16 10:26:25 2011
@@ -233,6 +233,14 @@ wsdl2service -transport http -e servicen
 				<switch>quiet</switch>
 				<switch>q</switch>
 		    </option>
+                    <option id="validate" maxOccurs="1">
+                        <annotation>
+                            To validate the wsdl before generating the wsdl service part.
 Usage of
+                            this option is highly recommended.
+                        </annotation>
+                        <switch>validate</switch>
+                    </option>
+
 		</optionGroup>
 		
 		<argument id="wsdlurl" minOccurs="1" maxOccurs="1">

Modified: cxf/trunk/tools/wsdlto/misc/src/test/java/org/apache/cxf/tools/misc/processor/WSDLToServiceProcessorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/misc/src/test/java/org/apache/cxf/tools/misc/processor/WSDLToServiceProcessorTest.java?rev=1171492&r1=1171491&r2=1171492&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/misc/src/test/java/org/apache/cxf/tools/misc/processor/WSDLToServiceProcessorTest.java
(original)
+++ cxf/trunk/tools/wsdlto/misc/src/test/java/org/apache/cxf/tools/misc/processor/WSDLToServiceProcessorTest.java
Fri Sep 16 10:26:25 2011
@@ -350,4 +350,30 @@ public class WSDLToServiceProcessorTest 
             }
         }
     }
+    
+    @Test
+    public void testWSDLValidation() throws Exception {
+        //intend to use a wsdl which will break WSIBPValidator
+        
+        WSDLToServiceProcessor processor = new WSDLToServiceProcessor();
+
+        env.put(ToolConstants.CFG_WSDLURL, getLocation("/misctools_wsdl/hello_world_mixed_style.wsdl"));
+        env.put(ToolConstants.CFG_TRANSPORT, new String("soap"));
+        env.put(ToolConstants.CFG_BINDING_ATTR, new String("Greeter_SOAPBinding"));
+        env.put(ToolConstants.CFG_SERVICE, new String("serviceins"));
+        env.put(ToolConstants.CFG_PORT, new String("portins"));
+        env.put(ToolConstants.CFG_VALIDATE_WSDL, ToolConstants.CFG_VALIDATE_WSDL);
+        processor.setEnvironment(env);
+        
+        try {
+            processor.process();
+            fail("Do not catch expected tool exception for breaking WSIBPValidator!");
+        } catch (Exception e) {
+            if (!(e instanceof ToolException && e.toString()
+                .indexOf("Mixed style, invalid WSDL") >= 0)) {
+                fail("Do not catch tool exception for breaking WSIBPValidator!, "
+                     + "catch other unexpected exception!");
+            }
+        }
+    }
 }

Added: cxf/trunk/tools/wsdlto/misc/src/test/resources/misctools_wsdl/hello_world_mixed_style.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/misc/src/test/resources/misctools_wsdl/hello_world_mixed_style.wsdl?rev=1171492&view=auto
==============================================================================
--- cxf/trunk/tools/wsdlto/misc/src/test/resources/misctools_wsdl/hello_world_mixed_style.wsdl
(added)
+++ cxf/trunk/tools/wsdlto/misc/src/test/resources/misctools_wsdl/hello_world_mixed_style.wsdl
Fri Sep 16 10:26:25 2011
@@ -0,0 +1,271 @@
+<?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"
+    xmlns:x1="http://apache.org/hello_world_soap_http/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://apache.org/hello_world_soap_http" name="HelloWorld">
+    <wsdl:types>
+        <schema targetNamespace="http://apache.org/hello_world_soap_http/types" xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:x1="http://apache.org/hello_world_soap_http/types" elementFormDefault="qualified">
+            <element name="sayHi">
+                <complexType/>
+            </element>
+            <element name="sayHiResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMe">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeSometime">
+				<complexType>
+					<sequence>
+						<element name="requestType" type="xsd:string"/>
+					</sequence>
+				</complexType>
+			</element>
+			<element name="greetMeSometimeResponse">
+				<complexType>
+					<sequence>
+						<element name="responseType" type="xsd:string"/>
+					</sequence>
+				</complexType>
+			</element>
+            <element name="greetMeOneWay">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="testDocLitFault">
+                <complexType>
+                    <sequence>
+                        <element name="faultType" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="testDocLitFaultResponse">
+                <complexType>
+                    <sequence/>
+                </complexType>
+            </element>
+            <complexType name="ErrorCode">
+                <sequence>
+                    <element name="minor" type="xsd:short"/>
+                    <element name="major" type="xsd:short"/>
+                </sequence>
+            </complexType>
+            <element name="NoSuchCodeLit">
+                <complexType>
+                    <sequence>
+                        <element name="code" type="x1:ErrorCode"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="BadRecordLit" type="xsd:string"/>
+            <xsd:complexType name="BadRecord">
+                <xsd:sequence>
+                    <xsd:element name="reason" type="xsd:string"/>
+                    <xsd:element name="code" type="xsd:short"/>
+                </xsd:sequence>
+            </xsd:complexType>
+            <complexType name="addNumbers">
+                <sequence>
+                    <element name="arg0" type="xsd:int"/>
+                    <element name="arg1" type="xsd:int"/>
+                </sequence>
+            </complexType>
+            <element name="addNumbers" type="x1:addNumbers"/>
+            <complexType name="addNumbersResponse">
+                <sequence>
+                    <element name="return" type="xsd:int"/>
+                </sequence>
+            </complexType>
+            <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+            <element name="BareDocument" type="xsd:string"/>
+            <element name="BareDocumentResponse">
+                <complexType>
+                    <sequence>
+                        <element name="company" type="xsd:string"/>
+                    </sequence>
+                    <attribute name="id" type="xsd: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="rpc" 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="rpc"/>
+            <wsdl:input>
+                <soap:body use="literal" namespace="http://apache.org/hello_world_soap_http"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" namespace="http://apache.org/hello_world_soap_http"/>
+            </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>
+



Mime
View raw message