cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Evaristo Wychoski Benfatti (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CXF-7547) Problem to generate Java from WADL file when method id defined
Date Mon, 06 Nov 2017 11:15:00 GMT

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

Evaristo Wychoski Benfatti edited comment on CXF-7547 at 11/6/17 11:14 AM:
---------------------------------------------------------------------------

The problem occurs when we perform both process {{JavaToWadl}} and {{WaldToJava}} one after
the other. The source base to {{JavaToWadl}} and the source generated from {{WadlToJava}}
with even wadl from previous process in the end of execution are different due to {{id}} attribute
from wadl method tag is not taken into account. 

The method name in the source base is {{get()}} and after the execution process the method
name generated is {{getId()}}.

When {{id}} is not defined this behavior is right in order to create an appropriated name
to method, but when we have both atributes ({{id}} and {{name}} from wadl method tag) coming
from the source base, this is not if we want to get the even class used to generate the wadl
file as result.


was (Author: evaristowb):
The problem occurs when we perform both process {{JavaToWadl}} and {{WaldToJava}} on after
the other. The source base to {{JavaToWadl}} and the source generated from {{WadlToJava}}
with even wadl from previous process in the end of execution are different due to {{id}} attribute
from wadl method tag is not taken into account. 

The method name in the source base is {{get()}} and after the execution process the method
name generated is {{getId()}}.

When {{id}} is not defined this behavior is right in order to create an appropriated name
to method, but when we have both atributes ({{id}} and {{name}} from wadl method tag) coming
from the source base, this is not if we want to get the even class used to generate the wadl
file as result.

> 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)

Mime
View raw message