axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prabhath Suminda (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AXIS2-5463) Optimizations for Axis2 POJO web services
Date Wed, 28 Nov 2012 04:44:58 GMT

     [ 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message