You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by David Blevins <da...@visi.com> on 2008/06/07 00:48:40 UTC

Re: svn commit: r658929 - in /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb: core/ivm/ util/proxy/

On May 22, 2008, at 3:20 AM, Mohammad Nour El-Din wrote:

> Why we needed this wrapping in the first place ?

It stems from the jdk 1.2 days when there was no proxy support in the  
VM.  It's still sort of nice to have around as it keeps all proxy  
creation in one spot and allows us to switch to other impls, but it's  
not as important as it once was.

-David


>
>
> On Thu, May 22, 2008 at 2:19 AM,  <db...@apache.org> wrote:
>> Author: dblevins
>> Date: Wed May 21 16:19:27 2008
>> New Revision: 658929
>>
>> URL: http://svn.apache.org/viewvc?rev=658929&view=rev
>> Log:
>> Thinned out the ProxyManager/ProxyFactory abstraction.  Biggest  
>> improvement is that InvocationHandlers are no longer needlessly  
>> wrapped by a Jdk13InvocationHandler.  Now when debugging you step  
>> right into the BaseEjbProxyHandler.
>>
>> Removed:
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/InvalidatedReferenceHandler.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/Jdk13InvocationHandler.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/Proxy.java
>> Modified:
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/core/ivm/BaseEjbProxyHandler.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/InvocationHandler.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/Jdk13ProxyFactory.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyFactory.java
>>   openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyManager.java
>>
>> Modified: openejb/trunk/openejb3/container/openejb-core/src/main/ 
>> java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=658929&r1=658928&r2=658929&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/core/ivm/BaseEjbProxyHandler.java (original)
>> +++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/core/ivm/BaseEjbProxyHandler.java Wed May 21  
>> 16:19:27 2008
>> @@ -220,9 +220,15 @@
>>        setDoIntraVmCopy(on);
>>    }
>>
>> +    public InvocationHandler getInvocationHandler() {
>> +        return this;
>> +    }
>> +
>>    public Object invoke(Object proxy, Method method, Object[] args)  
>> throws Throwable {
>>        isValidReference(method);
>>
>> +        if (args == null) args = new Object[]{};
>> +
>>        if (method.getDeclaringClass() == Object.class) {
>>            final String methodName = method.getName();
>>
>>
>> Modified: openejb/trunk/openejb3/container/openejb-core/src/main/ 
>> java/org/apache/openejb/util/proxy/InvocationHandler.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java?rev=658929&r1=658928&r2=658929&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/InvocationHandler.java (original)
>> +++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/InvocationHandler.java Wed May 21  
>> 16:19:27 2008
>> @@ -16,9 +16,8 @@
>> */
>> package org.apache.openejb.util.proxy;
>>
>> -import java.lang.reflect.Method;
>> +public interface InvocationHandler extends  
>> java.lang.reflect.InvocationHandler {
>>
>> -public interface InvocationHandler {
>> +    public InvocationHandler getInvocationHandler();
>>
>> -    public Object invoke(Object proxy, Method method, Object[]  
>> args) throws Throwable;
>> }
>>
>> Modified: openejb/trunk/openejb3/container/openejb-core/src/main/ 
>> java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java?rev=658929&r1=658928&r2=658929&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/Jdk13ProxyFactory.java (original)
>> +++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/Jdk13ProxyFactory.java Wed May 21  
>> 16:19:27 2008
>> @@ -32,46 +32,14 @@
>>    }
>>
>>    public void init(Properties props) throws OpenEJBException {
>> -        start();
>> -    }
>> -
>> -    /**
>> -     * @org.apache.xbean.InitMethod
>> -     */
>> -    public void start() throws OpenEJBException {
>> -        String version = "";
>> -        String badVersion = "1.3.0-";
>> -        try {
>> -            version = System.getProperty("java.vm.version");
>> -        } catch (Exception e) {
>> -        }
>> -        if (version.indexOf(badVersion) != -1) {
>> -            String message = "" +
>> -                    "INCOMPATIBLE VM: \n\n" +
>> -                    "The Java Virtual Machine you are using  
>> contains a bug\n" +
>> -                    "in the proxy generation logic.  This bug has  
>> been    \n" +
>> -                    "documented by Sun and has been fixed in later  
>> VMs.   \n" +
>> -                    "Please download the latest 1.3 Virtual  
>> Machine.      \n" +
>> -                    "For more details  
>> see:                                    \n" +
>> -                    "http://developer.java.sun.com/developer/bugParade/bugs/4346224.html 
>> \n  ";
>> -            throw new OpenEJBException(message);
>> -        }
>>    }
>>
>>    public org.apache.openejb.util.proxy.InvocationHandler  
>> getInvocationHandler(Object proxy) throws IllegalArgumentException {
>> -        Jdk13InvocationHandler handler = (Jdk13InvocationHandler)  
>> Proxy.getInvocationHandler(proxy);
>> -        if (handler == null)
>> -            return null;
>> +        InvocationHandler handler = (InvocationHandler)  
>> Proxy.getInvocationHandler(proxy);
>> +        if (handler == null) return null;
>>        return handler.getInvocationHandler();
>>    }
>>
>> -    public Object setInvocationHandler(Object proxy,  
>> org.apache.openejb.util.proxy.InvocationHandler handler) throws  
>> IllegalArgumentException {
>> -        Jdk13InvocationHandler jdk13 = (Jdk13InvocationHandler)  
>> Proxy.getInvocationHandler(proxy);
>> -        if (jdk13 == null)
>> -            throw new IllegalArgumentException("Proxy " + proxy +  
>> " unknown!");
>> -        return jdk13.setInvocationHandler(handler);
>> -    }
>> -
>>    public Class getProxyClass(Class interfce) throws  
>> IllegalArgumentException {
>>        return Proxy.getProxyClass(interfce.getClassLoader(), new  
>> Class[]{interfce});
>>    }
>> @@ -90,43 +58,23 @@
>>        return Proxy.isProxyClass(cl);
>>    }
>>
>> -    private final static Class[] constructorParams =  
>> {java.lang.reflect.InvocationHandler.class};
>> -
>> -    public Object newProxyInstance(Class proxyClass) throws  
>> IllegalArgumentException {
>> -        if (!Proxy.isProxyClass(proxyClass))
>> -            throw new IllegalArgumentException();
>> -        try {
>> -            Constructor cons =  
>> proxyClass.getConstructor(constructorParams);
>> -            return (Object) cons.newInstance(new Object[]{new  
>> Jdk13InvocationHandler()});
>> -        } catch (NoSuchMethodException e) {
>> -            throw (InternalError) new  
>> InternalError(e.toString()).initCause(e);
>> -        } catch (IllegalAccessException e) {
>> -            throw (InternalError) new  
>> InternalError(e.toString()).initCause(e);
>> -        } catch (InstantiationException e) {
>> -            throw (InternalError) new  
>> InternalError(e.toString()).initCause(e);
>> -        } catch (InvocationTargetException e) {
>> -            throw (InternalError) new  
>> InternalError(e.toString()).initCause(e);
>> -        }
>> -    }
>> -
>>    /*
>>     * Returns an instance of a proxy class for the specified  
>> interface that dispatches method invocations to
>>     * the specified invocation handler.
>>     */
>>    public Object newProxyInstance(Class interfce,  
>> org.apache.openejb.util.proxy.InvocationHandler h) throws  
>> IllegalArgumentException {
>> -        Jdk13InvocationHandler handler = new  
>> Jdk13InvocationHandler(h);
>> -        return Proxy.newProxyInstance(interfce.getClassLoader(),  
>> new Class[]{interfce}, handler);
>> +        return Proxy.newProxyInstance(interfce.getClassLoader(),  
>> new Class[]{interfce}, h);
>>    }
>>
>>    /*
>>     * Returns an instance of a proxy class for the specified  
>> interface that dispatches method invocations to
>>     * the specified invocation handler.
>>     */
>> -    public Object newProxyInstance(Class[] interfaces,  
>> org.apache.openejb.util.proxy.InvocationHandler h) throws  
>> IllegalArgumentException {
>> +    public Object newProxyInstance(Class[] interfaces,  
>> org.apache.openejb.util.proxy.InvocationHandler handler) throws  
>> IllegalArgumentException {
>>        if (interfaces.length < 1) {
>>            throw new IllegalArgumentException("It's boring to  
>> implement 0 interfaces!");
>>        }
>> -        Jdk13InvocationHandler handler = new  
>> Jdk13InvocationHandler(h);
>> +
>>        try {
>>            return  
>> Proxy.newProxyInstance(interfaces[0].getClassLoader(), interfaces,  
>> handler);
>>        } catch (IllegalArgumentException e) {
>>
>> Modified: openejb/trunk/openejb3/container/openejb-core/src/main/ 
>> java/org/apache/openejb/util/proxy/ProxyFactory.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java?rev=658929&r1=658928&r2=658929&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyFactory.java (original)
>> +++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyFactory.java Wed May 21 16:19:27 2008
>> @@ -26,8 +26,6 @@
>>
>>    public InvocationHandler getInvocationHandler(Object proxy)  
>> throws IllegalArgumentException;
>>
>> -    public Object setInvocationHandler(Object proxy,  
>> InvocationHandler handler) throws IllegalArgumentException;
>> -
>>    public Class getProxyClass(Class interfce) throws  
>> IllegalArgumentException;
>>
>>    public Class getProxyClass(Class[] interfaces) throws  
>> IllegalArgumentException;
>> @@ -49,6 +47,5 @@
>>     */
>>    public Object newProxyInstance(Class[] interfaces,  
>> InvocationHandler h) throws IllegalArgumentException;
>>
>> -    public Object newProxyInstance(Class proxyClass) throws  
>> IllegalArgumentException;
>> }
>>
>>
>> Modified: openejb/trunk/openejb3/container/openejb-core/src/main/ 
>> java/org/apache/openejb/util/proxy/ProxyManager.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java?rev=658929&r1=658928&r2=658929&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyManager.java (original)
>> +++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/ 
>> apache/openejb/util/proxy/ProxyManager.java Wed May 21 16:19:27 2008
>> @@ -20,7 +20,7 @@
>>
>> public class ProxyManager {
>>
>> -    private static volatile ProxyFactory defaultFactory;
>> +    private static volatile ProxyFactory defaultFactory = new  
>> Jdk13ProxyFactory();
>>    private static final HashMap factories = new HashMap();
>>    private static volatile String defaultFactoryName;
>>
>> @@ -64,11 +64,6 @@
>>        return defaultFactory.getInvocationHandler(proxy);
>>    }
>>
>> -    public static Object setInvocationHandler(Object proxy,  
>> InvocationHandler handler) {
>> -        checkDefaultFactory();
>> -        return defaultFactory.setInvocationHandler(proxy, handler);
>> -    }
>> -
>>    public static Class getProxyClass(Class interfaceType) throws  
>> IllegalAccessException {
>>        return getProxyClass(new Class[]{interfaceType});
>>    }
>> @@ -92,9 +87,4 @@
>>        return defaultFactory.isProxyClass(cl);
>>    }
>>
>> -    public static Object newProxyInstance(Class proxyClass) throws  
>> IllegalAccessException {
>> -        checkDefaultFactory();
>> -        return defaultFactory.newProxyInstance(proxyClass);
>> -    }
>> -
>> }
>>
>>
>>
>
>
>
> -- 
> Thanks
> - Mohammad Nour
>


Re: svn commit: r658929 - in /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb: core/ivm/ util/proxy/

Posted by Mohammad Nour El-Din <no...@gmail.com>.
Thanks for clarification :)

On Sat, Jun 7, 2008 at 1:48 AM, David Blevins <da...@visi.com> wrote:
>
> On May 22, 2008, at 3:20 AM, Mohammad Nour El-Din wrote:
>
>> Why we needed this wrapping in the first place ?
>
> It stems from the jdk 1.2 days when there was no proxy support in the VM.
>  It's still sort of nice to have around as it keeps all proxy creation in
> one spot and allows us to switch to other impls, but it's not as important
> as it once was.
>
> -David
>
>
>>
>>
>> On Thu, May 22, 2008 at 2:19 AM,  <db...@apache.org> wrote:
>>>
>>> Author: dblevins
>>> Date: Wed May 21 16:19:27 2008
>>> New Revision: 658929
>>>
>>> URL: http://svn.apache.org/viewvc?rev=658929&view=rev
>>> Log:
>>> Thinned out the ProxyManager/ProxyFactory abstraction.  Biggest
>>> improvement is that InvocationHandlers are no longer needlessly wrapped by a
>>> Jdk13InvocationHandler.  Now when debugging you step right into the
>>> BaseEjbProxyHandler.
>>>
>>> Removed:
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvalidatedReferenceHandler.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Proxy.java
>>> Modified:
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java
>>>
>>>  openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java
>>>
>>> Modified:
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
>>> URL:
>>> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=658929&r1=658928&r2=658929&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
>>> (original)
>>> +++
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
>>> Wed May 21 16:19:27 2008
>>> @@ -220,9 +220,15 @@
>>>       setDoIntraVmCopy(on);
>>>   }
>>>
>>> +    public InvocationHandler getInvocationHandler() {
>>> +        return this;
>>> +    }
>>> +
>>>   public Object invoke(Object proxy, Method method, Object[] args) throws
>>> Throwable {
>>>       isValidReference(method);
>>>
>>> +        if (args == null) args = new Object[]{};
>>> +
>>>       if (method.getDeclaringClass() == Object.class) {
>>>           final String methodName = method.getName();
>>>
>>>
>>> Modified:
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java
>>> URL:
>>> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java?rev=658929&r1=658928&r2=658929&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java
>>> (original)
>>> +++
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/InvocationHandler.java
>>> Wed May 21 16:19:27 2008
>>> @@ -16,9 +16,8 @@
>>> */
>>> package org.apache.openejb.util.proxy;
>>>
>>> -import java.lang.reflect.Method;
>>> +public interface InvocationHandler extends
>>> java.lang.reflect.InvocationHandler {
>>>
>>> -public interface InvocationHandler {
>>> +    public InvocationHandler getInvocationHandler();
>>>
>>> -    public Object invoke(Object proxy, Method method, Object[] args)
>>> throws Throwable;
>>> }
>>>
>>> Modified:
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
>>> URL:
>>> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java?rev=658929&r1=658928&r2=658929&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
>>> (original)
>>> +++
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
>>> Wed May 21 16:19:27 2008
>>> @@ -32,46 +32,14 @@
>>>   }
>>>
>>>   public void init(Properties props) throws OpenEJBException {
>>> -        start();
>>> -    }
>>> -
>>> -    /**
>>> -     * @org.apache.xbean.InitMethod
>>> -     */
>>> -    public void start() throws OpenEJBException {
>>> -        String version = "";
>>> -        String badVersion = "1.3.0-";
>>> -        try {
>>> -            version = System.getProperty("java.vm.version");
>>> -        } catch (Exception e) {
>>> -        }
>>> -        if (version.indexOf(badVersion) != -1) {
>>> -            String message = "" +
>>> -                    "INCOMPATIBLE VM: \n\n" +
>>> -                    "The Java Virtual Machine you are using contains a
>>> bug\n" +
>>> -                    "in the proxy generation logic.  This bug has been
>>>  \n" +
>>> -                    "documented by Sun and has been fixed in later VMs.
>>>   \n" +
>>> -                    "Please download the latest 1.3 Virtual Machine.
>>>  \n" +
>>> -                    "For more details see:
>>>      \n" +
>>> -
>>>  "http://developer.java.sun.com/developer/bugParade/bugs/4346224.html\n  ";
>>> -            throw new OpenEJBException(message);
>>> -        }
>>>   }
>>>
>>>   public org.apache.openejb.util.proxy.InvocationHandler
>>> getInvocationHandler(Object proxy) throws IllegalArgumentException {
>>> -        Jdk13InvocationHandler handler = (Jdk13InvocationHandler)
>>> Proxy.getInvocationHandler(proxy);
>>> -        if (handler == null)
>>> -            return null;
>>> +        InvocationHandler handler = (InvocationHandler)
>>> Proxy.getInvocationHandler(proxy);
>>> +        if (handler == null) return null;
>>>       return handler.getInvocationHandler();
>>>   }
>>>
>>> -    public Object setInvocationHandler(Object proxy,
>>> org.apache.openejb.util.proxy.InvocationHandler handler) throws
>>> IllegalArgumentException {
>>> -        Jdk13InvocationHandler jdk13 = (Jdk13InvocationHandler)
>>> Proxy.getInvocationHandler(proxy);
>>> -        if (jdk13 == null)
>>> -            throw new IllegalArgumentException("Proxy " + proxy + "
>>> unknown!");
>>> -        return jdk13.setInvocationHandler(handler);
>>> -    }
>>> -
>>>   public Class getProxyClass(Class interfce) throws
>>> IllegalArgumentException {
>>>       return Proxy.getProxyClass(interfce.getClassLoader(), new
>>> Class[]{interfce});
>>>   }
>>> @@ -90,43 +58,23 @@
>>>       return Proxy.isProxyClass(cl);
>>>   }
>>>
>>> -    private final static Class[] constructorParams =
>>> {java.lang.reflect.InvocationHandler.class};
>>> -
>>> -    public Object newProxyInstance(Class proxyClass) throws
>>> IllegalArgumentException {
>>> -        if (!Proxy.isProxyClass(proxyClass))
>>> -            throw new IllegalArgumentException();
>>> -        try {
>>> -            Constructor cons =
>>> proxyClass.getConstructor(constructorParams);
>>> -            return (Object) cons.newInstance(new Object[]{new
>>> Jdk13InvocationHandler()});
>>> -        } catch (NoSuchMethodException e) {
>>> -            throw (InternalError) new
>>> InternalError(e.toString()).initCause(e);
>>> -        } catch (IllegalAccessException e) {
>>> -            throw (InternalError) new
>>> InternalError(e.toString()).initCause(e);
>>> -        } catch (InstantiationException e) {
>>> -            throw (InternalError) new
>>> InternalError(e.toString()).initCause(e);
>>> -        } catch (InvocationTargetException e) {
>>> -            throw (InternalError) new
>>> InternalError(e.toString()).initCause(e);
>>> -        }
>>> -    }
>>> -
>>>   /*
>>>    * Returns an instance of a proxy class for the specified interface
>>> that dispatches method invocations to
>>>    * the specified invocation handler.
>>>    */
>>>   public Object newProxyInstance(Class interfce,
>>> org.apache.openejb.util.proxy.InvocationHandler h) throws
>>> IllegalArgumentException {
>>> -        Jdk13InvocationHandler handler = new Jdk13InvocationHandler(h);
>>> -        return Proxy.newProxyInstance(interfce.getClassLoader(), new
>>> Class[]{interfce}, handler);
>>> +        return Proxy.newProxyInstance(interfce.getClassLoader(), new
>>> Class[]{interfce}, h);
>>>   }
>>>
>>>   /*
>>>    * Returns an instance of a proxy class for the specified interface
>>> that dispatches method invocations to
>>>    * the specified invocation handler.
>>>    */
>>> -    public Object newProxyInstance(Class[] interfaces,
>>> org.apache.openejb.util.proxy.InvocationHandler h) throws
>>> IllegalArgumentException {
>>> +    public Object newProxyInstance(Class[] interfaces,
>>> org.apache.openejb.util.proxy.InvocationHandler handler) throws
>>> IllegalArgumentException {
>>>       if (interfaces.length < 1) {
>>>           throw new IllegalArgumentException("It's boring to implement 0
>>> interfaces!");
>>>       }
>>> -        Jdk13InvocationHandler handler = new Jdk13InvocationHandler(h);
>>> +
>>>       try {
>>>           return Proxy.newProxyInstance(interfaces[0].getClassLoader(),
>>> interfaces, handler);
>>>       } catch (IllegalArgumentException e) {
>>>
>>> Modified:
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java
>>> URL:
>>> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java?rev=658929&r1=658928&r2=658929&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java
>>> (original)
>>> +++
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyFactory.java
>>> Wed May 21 16:19:27 2008
>>> @@ -26,8 +26,6 @@
>>>
>>>   public InvocationHandler getInvocationHandler(Object proxy) throws
>>> IllegalArgumentException;
>>>
>>> -    public Object setInvocationHandler(Object proxy, InvocationHandler
>>> handler) throws IllegalArgumentException;
>>> -
>>>   public Class getProxyClass(Class interfce) throws
>>> IllegalArgumentException;
>>>
>>>   public Class getProxyClass(Class[] interfaces) throws
>>> IllegalArgumentException;
>>> @@ -49,6 +47,5 @@
>>>    */
>>>   public Object newProxyInstance(Class[] interfaces, InvocationHandler h)
>>> throws IllegalArgumentException;
>>>
>>> -    public Object newProxyInstance(Class proxyClass) throws
>>> IllegalArgumentException;
>>> }
>>>
>>>
>>> Modified:
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java
>>> URL:
>>> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java?rev=658929&r1=658928&r2=658929&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java
>>> (original)
>>> +++
>>> openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyManager.java
>>> Wed May 21 16:19:27 2008
>>> @@ -20,7 +20,7 @@
>>>
>>> public class ProxyManager {
>>>
>>> -    private static volatile ProxyFactory defaultFactory;
>>> +    private static volatile ProxyFactory defaultFactory = new
>>> Jdk13ProxyFactory();
>>>   private static final HashMap factories = new HashMap();
>>>   private static volatile String defaultFactoryName;
>>>
>>> @@ -64,11 +64,6 @@
>>>       return defaultFactory.getInvocationHandler(proxy);
>>>   }
>>>
>>> -    public static Object setInvocationHandler(Object proxy,
>>> InvocationHandler handler) {
>>> -        checkDefaultFactory();
>>> -        return defaultFactory.setInvocationHandler(proxy, handler);
>>> -    }
>>> -
>>>   public static Class getProxyClass(Class interfaceType) throws
>>> IllegalAccessException {
>>>       return getProxyClass(new Class[]{interfaceType});
>>>   }
>>> @@ -92,9 +87,4 @@
>>>       return defaultFactory.isProxyClass(cl);
>>>   }
>>>
>>> -    public static Object newProxyInstance(Class proxyClass) throws
>>> IllegalAccessException {
>>> -        checkDefaultFactory();
>>> -        return defaultFactory.newProxyInstance(proxyClass);
>>> -    }
>>> -
>>> }
>>>
>>>
>>>
>>
>>
>>
>> --
>> Thanks
>> - Mohammad Nour
>>
>
>



-- 
Thanks
- Mohammad Nour