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]

Reply via email to