Author: midon
Date: Wed Jun 25 11:26:12 2008
New Revision: 671620
URL: http://svn.apache.org/viewvc?rev=671620&view=rev
Log:
ODE-307: Allows missing parts in urlReplacement pattern
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
ode/trunk/axis2/src/test/resources/http-binding-validator.wsdl
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java?rev=671620&r1=671619&r2=671620&view=diff
==============================================================================
---
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
(original)
+++
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
Wed Jun 25 11:26:12 2008
@@ -141,8 +141,10 @@
String name = (String) it.next();
Pattern p = Pattern.compile(".*(\\(" + name + "\\)).*");
Matcher m = p.matcher(locationUri);
- // is there a regex to do both validations in one?
- if (!m.matches() || locationUri.split("(\\(" + name + "\\))",
-1).length != 2) {
+ // WSLD spec requires that all message parts must be exactly
once in the url pattern.
+ // However ODE relaxes this.
+ // The only test is to make sure a part is not mentionned more
than once
+ if (m.matches() && locationUri.split("(\\(" + name + "\\))",
-1).length != 2) {
throw new
IllegalArgumentException(httpMsgs.msgInvalidURIPattern(binding,
bindingOperation, locationUri));
}
}
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java?rev=671620&r1=671619&r2=671620&view=diff
==============================================================================
---
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
(original)
+++
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
Wed Jun 25 11:26:12 2008
@@ -56,7 +56,7 @@
}
public String msgInvalidURIPattern(Binding binding, BindingOperation
operation, String locationUri) {
- return format("Invalid URI Pattern : all parts must be mentioned
exactly once! binding:{0}, operation:{1}, locationUri:{2}", binding.getQName(),
operation.getName(), locationUri);
+ return format("Invalid URI Pattern : parts must not be mentioned more
than once! binding:{0}, operation:{1}, locationUri:{2}", binding.getQName(),
operation.getName(), locationUri);
}
public String msgMimeMultipartRelatedUnsupported(Binding binding,
BindingOperation operation) {
Modified: ode/trunk/axis2/src/test/resources/http-binding-validator.wsdl
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/test/resources/http-binding-validator.wsdl?rev=671620&r1=671619&r2=671620&view=diff
==============================================================================
--- ode/trunk/axis2/src/test/resources/http-binding-validator.wsdl (original)
+++ ode/trunk/axis2/src/test/resources/http-binding-validator.wsdl Wed Jun 25
11:26:12 2008
@@ -382,7 +382,7 @@
</wsdl:binding>
<wsdl:binding
name="DummyServiceHttpBinding_get+urlReplacement+missing_part"
type="ns1:DummyServicePortType">
<wsdl:documentation>
- shouldFail # When urlReplacement used, all message parts must be
in the url pattern
+ shouldPass # WSLD spec requires that all message parts must be in
the url pattern when urlReplacement is used. However ODE relaxes this.
</wsdl:documentation>
<http:binding verb="GET"/>
<wsdl:operation name="hello">
@@ -397,7 +397,7 @@
</wsdl:binding>
<wsdl:binding
name="DummyServiceHttpBinding_get+urlReplacement+twice_the_same_part"
type="ns1:DummyServicePortType">
<wsdl:documentation>
- shouldFail # When urlReplacement used, all message parts must be
exactly ONCE in the url pattern
+ shouldFail # When urlReplacement used, message parts must not be
more than ONCE in the url pattern
</wsdl:documentation>
<http:binding verb="GET"/>
<wsdl:operation name="hello">