Optimize JDK WireService ------------------------ Key: TUSCANY-690 URL: http://issues.apache.org/jira/browse/TUSCANY-690 Project: Tuscany Issue Type: Improvement Components: Java SCA Core Affects Versions: Java-M2 Reporter: Venkatakrishnan Attachments: Tuscany-kernel-core-jdkwireservice-Sept-4.diff
This is going to involve several things. To begin with Jim Marino had suggested the creation of dynamic classes for the proxies (instead of java.lang.reflect.Proxy) using ASM and bytecode generation. Please refer to the thread http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg07271.html Here is a patch that changes the 'createProxy' method of the JDKService class. It generates bytecodes for a proxy implementation class for the wire's interface. It then instantiates this class and returns it (instead of an instance of java.lang.reflect.Proxy as it used to before). After instantiation this proxy is set with the chains that correspond to each of the service methods. Hence during invocation there is no seek into a map based on the invoked method, to find the right chain. The invocation is made with right chain directly. I have been able to successfully compile and run most of the testcases. But a few fail since there are assetions that check if the proxy generated is of 'java.lang.relect.Proxy' type, which obviously is not. Before I go ahead and make those changes I would like to know if the current implementation is fine. I have tested the JavaScript testcases after these changes to the wiring and they work. Thanks - Venkat -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - 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]