[jboss-cvs] JBossAS SVN: r77466 - projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 25 19:39:29 EDT 2008


Author: ALRubinger
Date: 2008-08-25 19:39:29 -0400 (Mon, 25 Aug 2008)
New Revision: 77466

Modified:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java
Log:
[EJBTHREE-1466] Proxy Invocation Hander toString impl to be of form "Proxy to {containerName} implementing {interfaces}

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java	2008-08-25 23:10:26 UTC (rev 77465)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java	2008-08-25 23:39:29 UTC (rev 77466)
@@ -23,6 +23,9 @@
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.jboss.aop.advice.Interceptor;
 import org.jboss.ejb3.common.lang.SerializableMethod;
@@ -153,7 +156,27 @@
       // toString
       if (invokedMethod.equals(ProxyInvocationHandlerBase.METHOD_TO_STRING.toMethod()))
       {
-         return this.toString();
+         // Perform assertions
+         assert Proxy.isProxyClass(proxy.getClass()) : "Specified proxy invoked is not of type "
+               + Proxy.class.getName();
+
+         // Obtain implemented interfaces
+         Class<?>[] implementedInterfaces = proxy.getClass().getInterfaces();
+         Set<Class<?>> interfacesSet = new HashSet<Class<?>>();
+         for (Class<?> interfaze : implementedInterfaces)
+         {
+            interfacesSet.add(interfaze);
+         }
+
+         // Construct a return value
+         StringBuffer sb = new StringBuffer();
+         sb.append("Proxy to ");
+         sb.append(this.getContainerName());
+         sb.append(" implementing ");
+         sb.append(interfacesSet);
+
+         // Return
+         return sb.toString();
       }
       // hashCode
       if (invokedMethod.equals(ProxyInvocationHandlerBase.METHOD_HASH_CODE.toMethod()))




More information about the jboss-cvs-commits mailing list