Luís Alves created CXF-8153:
-------------------------------

             Summary:  @Path with REGEX in path parameter and 
checkMethodsForInvalidURITemplates(userType, methods);
                 Key: CXF-8153
                 URL: https://issues.apache.org/jira/browse/CXF-8153
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.3.4
            Reporter: Luís Alves


I have an API jar provided by the server, with the interface with all the 
JAX-RS annotations.
One of then has an REGEX. Something like:

{code:java}
@Path("{ resoureUUID : 
[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}}")
{code}

I can't create a proxy because the validation fails. Analyzing the code I get 
to 
org.apache.cxf.microprofile.client.Validator#checkMethodsForInvalidURITemplates(Class,
 Method[]), more specifically to this part (with comments):

{code:java}
for (Parameter p : method.getParameters()) {
                    PathParam pathParam = p.getAnnotation(PathParam.class);
                    if (pathParam != null) {
                        // don't know the spec, but setting this to "x" cause 
the URITemplate to
                       // throw new IllegalArgumentException("Value '" + sval + 
"' does not match variable " + var.getName() + " with pattern " + 
var.getPattern());
                        paramMap.put(pathParam.value(), "x");
                    }
                }
                try {
                    template.substitute(paramMap, 
Collections.<String>emptySet(), false);
                } catch (IllegalArgumentException ex) {
                    throwException("VALIDATION_UNRESOLVED_PATH_PARAMS", 
userType, method);
                }
{code}

Not sure if this is a bug or by spec, but this prevents to use path params with 
regex, as the only regex that works must match "x".








--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to