You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/05/12 19:02:14 UTC
svn commit: r655562 - in /cxf/trunk/tools/validator/src:
main/java/org/apache/cxf/tools/validator/internal/
main/java/org/apache/cxf/tools/validator/internal/model/
test/java/org/apache/cxf/tools/validator/ test/resources/validator_wsdl/
Author: dkulp
Date: Mon May 12 10:02:14 2008
New Revision: 655562
URL: http://svn.apache.org/viewvc?rev=655562&view=rev
Log:
Fix and issue with not being able to validate a valid wsdl that uses defaults for portType operation message names
Added:
cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl (with props)
Modified:
cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java
cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/model/XNode.java
cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/WSDLValidationTest.java
Modified: cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java?rev=655562&r1=655561&r2=655562&view=diff
==============================================================================
--- cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java (original)
+++ cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDLRefValidator.java Mon May 12 10:02:14 2008
@@ -329,6 +329,10 @@
XInput oNode = new XInput();
oNode.setName(name);
oNode.setParentNode(opVNode);
+
+ if (name != null && name.equals(opVNode.getAttributeValue() + "Request")) {
+ oNode.setDefaultAttributeValue(true);
+ }
return oNode;
}
@@ -336,6 +340,9 @@
XOutput oNode = new XOutput();
oNode.setName(name);
oNode.setParentNode(opVNode);
+ if (name != null && name.equals(opVNode.getAttributeValue() + "Response")) {
+ oNode.setDefaultAttributeValue(true);
+ }
return oNode;
}
Modified: cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/model/XNode.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/model/XNode.java?rev=655562&r1=655561&r2=655562&view=diff
==============================================================================
--- cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/model/XNode.java (original)
+++ cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/model/XNode.java Mon May 12 10:02:14 2008
@@ -32,6 +32,7 @@
private QName name;
private String attributeName;
private String attributeValue;
+ private boolean isDefaultAttributeValue;
private XNode parentNode;
private XNode failurePoint;
@@ -77,7 +78,14 @@
public void setAttributeValue(final String newAttributeValue) {
this.attributeValue = newAttributeValue;
}
-
+
+ public void setDefaultAttributeValue(boolean b) {
+ this.isDefaultAttributeValue = b;
+ }
+ public boolean isDefaultAttributeValue() {
+ return this.isDefaultAttributeValue;
+ }
+
public XNode getParentNode() {
return parentNode;
}
@@ -118,11 +126,18 @@
sb.append(":");
sb.append(name.getLocalPart());
if (!StringUtils.isEmpty(attributeName) && !StringUtils.isEmpty(attributeValue)) {
- sb.append("[@");
+ sb.append("[");
+ if (isDefaultAttributeValue) {
+ sb.append("not(@");
+ sb.append(attributeName);
+ sb.append(") or ");
+ }
+ sb.append("@");
sb.append(attributeName);
sb.append("='");
sb.append(attributeValue);
- sb.append("']");
+ sb.append("'");
+ sb.append("]");
}
return sb.toString();
}
Modified: cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/WSDLValidationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/WSDLValidationTest.java?rev=655562&r1=655561&r2=655562&view=diff
==============================================================================
--- cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/WSDLValidationTest.java (original)
+++ cxf/trunk/tools/validator/src/test/java/org/apache/cxf/tools/validator/WSDLValidationTest.java Mon May 12 10:02:14 2008
@@ -31,6 +31,14 @@
public void setUp() {
super.setUp();
}
+
+ @Test
+ public void testValidateDefaultOpMessageNames() throws Exception {
+ String[] args = new String[] {"-verbose",
+ getLocation("/validator_wsdl/defaultOpMessageNames.wsdl")};
+ WSDLValidator.main(args);
+ assertTrue(this.getStdOut().contains("Valid WSDL"));
+ }
@Test
public void testValidateUniqueBody() throws Exception {
Added: cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl?rev=655562&view=auto
==============================================================================
--- cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl (added)
+++ cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl Mon May 12 10:02:14 2008
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<definitions name="defaults.wsdl"
+
+ targetNamespace="http://www.iona.com/artix/defaults"
+
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+
+ xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+
+ xmlns:tns="http://www.iona.com/artix/defaults"
+
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <types>
+
+ <xsd:schema targetNamespace="http://www.iona.com/artix/defaults"
+
+
+ xmlns="http://www.iona.com/artix/defaults"
+
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:complexType name="TestType">
+
+ <xsd:sequence>
+
+ <xsd:element maxOccurs="1" minOccurs="1" name="msg"
+type="xsd:string"/>
+
+ <xsd:element maxOccurs="1" minOccurs="1" name="num"
+type="xsd:int"/>
+
+ </xsd:sequence>
+
+ </xsd:complexType>
+
+ <xsd:element name="Test" type="TestType"/>
+
+ </xsd:schema>
+
+ </types>
+
+
+
+ <message name="TestMessage">
+
+ <part element="tns:Test" name="params"/>
+
+ </message>
+
+
+
+ <portType name="TestPortType">
+
+ <operation name="Test">
+
+ <input message="tns:TestMessage"/>
+
+ <output message="tns:TestMessage"/>
+
+ </operation>
+
+ </portType>
+
+
+
+ <binding name="TestPortTypeDefaults" type="tns:TestPortType">
+
+ <soap:binding style="document"
+transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <operation name="Test">
+
+ <soap:operation soapAction="" style="document"/>
+
+
+
+ <input name="TestRequest">
+
+ <soap:body use="literal"/>
+
+ </input>
+
+
+
+ <output name="TestResponse">
+
+ <soap:body use="literal"/>
+
+ </output>
+
+
+
+ </operation>
+
+ </binding>
+
+
+
+ <service name="TestService">
+
+ <port binding="tns:TestPortTypeDefaults" name="TestPort">
+
+ <soap:address location="http://localhost:9100/TestService"/>
+
+ </port>
+
+ </service>
+
+
+
+</definitions>
+
Propchange: cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: cxf/trunk/tools/validator/src/test/resources/validator_wsdl/defaultOpMessageNames.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml