[ 
https://issues.apache.org/jira/browse/AXIS2-5463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Prabhath Suminda updated AXIS2-5463:
------------------------------------

    Attachment: POJO_optimizations.patch
    
> Optimizations for Axis2 POJO web services
> -----------------------------------------
>
>                 Key: AXIS2-5463
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5463
>             Project: Axis2
>          Issue Type: New Feature
>          Components: adb, kernel
>            Reporter: Prabhath Suminda
>            Priority: Minor
>         Attachments: POJO_optimizations.patch
>
>
> I did some optimizations for the Axis2 POJO web services as an intern project 
> in last two months. It was a research type project and its idea was to handle 
> POJO web services without  using Java Reflection to improve the response time.
> The method I followed to accomplish it was, when a POJO service is deployed, 
> Axis2 generates a code which contains the logic to invoke that service. To 
> generate this code Java reflection is used. In the run time service is 
> invoked through the generated code for that service.
> The generated code is like the code is like the code generated by wsdl2java 
> tool using ADB. So the idea was to achieve the performance of ADB services 
> for POJO services by this. In wsdl2java tool code is generated as .java 
> files. But in this case those had to be generated as .class files because 
> those have to be invoked at runtime. To do this I used a Java bytecode 
> library called JavaAssist. 
> Currently this new michanisam support most of the Java types like, 
> primitives, Strings, arrays, lists, maps, enums, Java beans and data 
> handlers. But its not mature enough like the existing mechanism and therefor 
> i integrated it with the existing mechanism instead of replacing it. To use 
> this new method a parameter can be added to the service descriptor like 
> below. 
> <parameter name=optimizedPOJO> true </parameter>. If this is included service 
> invocation will done using the new mechanism and other wise usual procedure 
> will be followed.
> Attached patch contains the changes done by me. To test the new method one 
> can apply this patch to a downloaded trunk in a local environment, build the 
> trunk and create a new war file and deploy it. Then create a POJO service and 
> add <parameter name=optimizedPOJO>true </parameter> to service descriptor and 
> deploy it. 
> Here the code will be generated as class files in the temp directory. If 
> someone want to look in to them as Java code those can be written as text 
> files in addition to .class files by uncommenting the FileUtils.writetoFile() 
> statements in code generating classes (these classes are included in the 
> patch).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to