[ 
https://issues.apache.org/jira/browse/CXF-7547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16244265#comment-16244265
 ] 

Evaristo Wychoski Benfatti edited comment on CXF-7547 at 11/8/17 4:33 PM:
--------------------------------------------------------------------------

Yes, that is the point that the patch is trying to solve.

The Rule of thumbs that it proposes is:
* When id is provided, it is assumed that the user showed some preference then 
maintain such preference, as default behavior to non equals name and id.
* But when id it is not provided, it is assumed that the user didn't show 
preference so any descriptive name could be chosen.

What do you think?


was (Author: evaristowb):
Yes, that is the point that the patch is trying to solve.

The Rule of thumbs that it proposes is:
* When id is provided, it is assumed that the user showed some preference and 
maintain such preference, as default behavior to non equals name and id.
* But when id it is not provided, it is assumed that the user didn't show 
preference so any descriptive name could be chosen.

What do you think?

> Problem to generate Java from WADL file when method id defined 
> ---------------------------------------------------------------
>
>                 Key: CXF-7547
>                 URL: https://issues.apache.org/jira/browse/CXF-7547
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.14, 3.2.1
>         Environment: All Plataforms
>            Reporter: Evaristo Wychoski Benfatti
>            Priority: Minor
>              Labels: patch
>
> The following code base
> {code:java}
> @Path("/baz")
> public class Baz {
>       @GET
>       @Path("/foo/{id}")
>       @Produces("text/plain")
>       public String get(@PathParam int id);
> }
> {code}
> generates a similar wadl as follow as result of {{Java2Wadl}} process:
> {code:xml}
> <application xmlns="http://wadl.dev.java.net/2009/02"; 
> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>     <resources base="/baz" id="Baz">
>         <resource path="/foo/{id}" id="get">
>             <param name="id" style="template" type="xs:int"/>
>             <method name="GET" id="get">
>                 <response>
>                     <representation mediaType="text/plain">
>                         <param name="result" style="plain" type="xs:string"/>
>                     </representation>
>                 </response>
>             </method>
>         </resource>
>     </resources>
> </application>
> {code}
> When we run after the {{Wadl2Java}} process against previous wadl as input, 
> the process takes to the following java definition class as output:
> {code:java}
> @Path("/baz")
> public class Baz {
>       @GET
>       @Path("/foo/{id}")
>       @Produces("text/plain")
>       public String getId(@PathParam int id);
> }
> {code}
> According to 
> {{tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java}}
>  a wadl method element generates the path as complement to the java method 
> name when it does not have an id atribute or when it is the even value of 
> name atribute.
> When id is not defined this behavior is right, but when both of atributes are 
> defined in order to get the even class used to generate the wadl file as 
> result of {{Wadl2Java}} process this is not.
> The solution to enable creating the even code is check if the id is present 
> or not at wadl file as follow:
> {code:java}
>       // Line 796 instead of this
>         if (methodNameLowerCase.equals(genMethodName)) {
>       // this code
>         if (methodNameLowerCase.equals(genMethodName) && methodNameLowerCase 
> == id) {
> {code}
> The above code check if methodNameLowerCase is the even reference of id, only 
> in this case, the normal behavior is applied.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to