Prabhath Suminda created AXIS2-5463:
---------------------------------------
Summary: 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]