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/05/21 06:10:55 UTC
svn commit: r540014 - in /incubator/cxf/trunk/tools/validator/src:
main/java/org/apache/cxf/tools/validator/internal/
test/java/org/apache/cxf/tools/validator/internal/
test/java/org/apache/cxf/tools/validator/internal/resources/
Author: mmao
Date: Sun May 20 21:10:54 2007
New Revision: 540014
URL: http://svn.apache.org/viewvc?view=rev&rev=540014
Log:
CXF-645
* WSDLRefValidator support validating the logical wsdl
* If there is no services/bindings, just add as warnings, not errors
* Add user tests
Added:
incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/resources/nobinding.wsdl
Modified:
incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidationResult.java
incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java
incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDL11ValidatorTest.java
incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDLRefValidatorTest.java
Modified: incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidationResult.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidationResult.java?view=diff&rev=540014&r1=540013&r2=540014
==============================================================================
--- incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidationResult.java (original)
+++ incubator/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidationResult.java Sun May 20 21:10:54 2007
@@ -43,11 +43,19 @@
this.errors.push(error);
}
+ public void addWarning(final Message msg) {
+ addWarning(msg.toString());
+ }
+
public void addWarning(final String warning) {
this.warnings.push(warning);
}
+ public boolean hasWarnings() {
+ return warnings.size() > 0;
+ }
+
public boolean isSuccessful() {
- return errors.size() == 0 && warnings.size() == 0;
+ return errors.size() == 0;
}
}
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?view=diff&rev=540014&r1=540013&r2=540014
==============================================================================
--- 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 Sun May 20 21:10:54 2007
@@ -327,8 +327,17 @@
private void collectValidationPoints() {
if (getServices().size() == 0) {
- throw new ToolException("WSDL document does not define any services");
+ vResults.addWarning("WSDL document does not define any services");
+ portTypeRefNames.addAll(this.definition.getAllPortTypes().keySet());
+ } else {
+ collectValidationPointsForBindings();
}
+
+ collectValidationPointsForPortTypes();
+ collectValidationPointsForMessages();
+ }
+
+ private void collectValidationPointsForBindings() {
Map<QName, XNode> vBindingNodes = new HashMap<QName, XNode>();
for (Service service : getServices().values()) {
vBindingNodes.putAll(getBindings(service));
@@ -376,9 +385,6 @@
}
}
}
-
- collectValidationPointsForPortTypes();
- collectValidationPointsForMessages();
}
private void collectValidationPointsForMessages() {
Modified: incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDL11ValidatorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDL11ValidatorTest.java?view=diff&rev=540014&r1=540013&r2=540014
==============================================================================
--- incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDL11ValidatorTest.java (original)
+++ incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDL11ValidatorTest.java Sun May 20 21:10:54 2007
@@ -35,7 +35,6 @@
try {
assertFalse(validator.isValid());
} catch (Exception e) {
- System.err.println(e.getMessage());
assertTrue(e.getMessage().indexOf("Caused by {http://apache.org/hello_world/messages}"
+ "[portType:GreeterA][operation:sayHi] not exist.") != -1);
}
Modified: incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDLRefValidatorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDLRefValidatorTest.java?view=diff&rev=540014&r1=540013&r2=540014
==============================================================================
--- incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDLRefValidatorTest.java (original)
+++ incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/WSDLRefValidatorTest.java Sun May 20 21:10:54 2007
@@ -36,8 +36,8 @@
WSDLRefValidator validator = new WSDLRefValidator(wsdl);
assertFalse(validator.isValid());
ValidationResult results = validator.getValidationResults();
- assertEquals(1, results.getErrors().size());
- String t = results.getErrors().pop();
+ assertEquals(1, results.getWarnings().size());
+ String t = results.getWarnings().pop();
assertEquals("WSDL document does not define any services", t);
}
@@ -90,5 +90,27 @@
+ " referenced Type <{http://apache.org/samples/headers}SOAPHeaderInfo> "
+ "can not be found in the schemas";
assertEquals(expected, t);
+ }
+
+ @Test
+ public void testNoBindingWSDL() throws Exception {
+ String wsdl = getClass().getResource("resources/nobinding.wsdl").toURI().toString();
+ WSDLRefValidator validator = new WSDLRefValidator(wsdl);
+ validator.isValid();
+ ValidationResult results = validator.getValidationResults();
+
+ assertEquals(1, results.getWarnings().size());
+ String t = results.getWarnings().pop();
+ assertEquals("WSDL document does not define any services", t);
+
+ assertEquals(1, results.getErrors().size());
+ String text = "{http://schemas.apache.org/yoko/idl/OptionsPT}[message:getEmployee]";
+ Message msg = new Message("FAILED_AT_POINT",
+ WSDLRefValidator.LOG,
+ 23,
+ 6,
+ new File(new java.net.URI(wsdl)).toString(),
+ text);
+ assertEquals(msg.toString(), results.getErrors().pop());
}
}
Added: incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/resources/nobinding.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/resources/nobinding.wsdl?view=auto&rev=540014
==============================================================================
--- incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/resources/nobinding.wsdl (added)
+++ incubator/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/internal/resources/nobinding.wsdl Sun May 20 21:10:54 2007
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://schemas.apache.org/yoko/idl/OptionsPT"
+ xmlns:tns="http://schemas.apache.org/yoko/idl/OptionsPT"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd1="http://schemas.apache.org/yoko/idl/OptionsPT-types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xsd:schema>
+ <xsd:import namespace="http://schemas.apache.org/yoko/idl/OptionsPT-types" schemaLocation="schemapt.xsd"/>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getEmployeeA">
+ <wsdl:part name="inparameter" element="xsd1:getEmployee">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getEmployeeResponse">
+ <wsdl:part name="outparameter" element="xsd1:getEmployeeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="foo.bar">
+ <wsdl:operation name="getEmployee">
+ <wsdl:input name="getEmployeeRequest" message="tns:getEmployee">
+ </wsdl:input>
+ <wsdl:output name="getEmployeeResponse" message="tns:getEmployeeResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+</wsdl:definitions>
\ No newline at end of file