[jboss-cvs] JBossAS SVN: r67315 - in trunk/ejb3/src/main/org/jboss/ejb3: stateful and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 20 22:55:58 EST 2007


Author: ALRubinger
Date: 2007-11-20 22:55:57 -0500 (Tue, 20 Nov 2007)
New Revision: 67315

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateless/BaseStatelessProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java
Log:
[EJBTHREE-1122] Fixes; restricts getInterfaces() of Proxy Factories to unique values

Modified: trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -22,6 +22,9 @@
 package org.jboss.ejb3.service;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.jboss.annotation.ejb.LocalBinding;
 import org.jboss.ejb3.JBossProxy;
@@ -39,13 +42,19 @@
       super(container, binding.jndiBinding());
    }
 
-   protected Class[] getInterfaces()
+   protected Class<?>[] getInterfaces()
    {
-      Class[] localInterfaces = ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(container);
-      Class[] interfaces = new Class[localInterfaces.length + 1];
-      System.arraycopy(localInterfaces, 0, interfaces, 0, localInterfaces.length);
-      interfaces[localInterfaces.length] = JBossProxy.class;
-      return interfaces;
+      // Initialize
+      Set<Class<?>> uniqueInterfaces = new HashSet<Class<?>>(); 
+      
+      // Obtain interfaces and add as unique
+      uniqueInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(container))) ;
+      
+      // Add JBossProxy
+      uniqueInterfaces.add(JBossProxy.class);
+      
+      // Return
+      return uniqueInterfaces.toArray(new Class<?>[]{});
    }
 
    public Object createProxy()

Modified: trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -22,6 +22,10 @@
 package org.jboss.ejb3.service;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
 import org.jboss.annotation.ejb.RemoteBinding;
 import org.jboss.aop.Advisor;
 import org.jboss.aop.AspectManager;
@@ -53,13 +57,19 @@
 //      this.binding = binding;
 //   }
 
-   protected Class[] getInterfaces()
+   protected Class<?>[] getInterfaces()
    {
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container);
-      Class[] interfaces = new Class[remoteInterfaces.length + 1];
-      System.arraycopy(remoteInterfaces, 0, interfaces, 0, remoteInterfaces.length);
-      interfaces[remoteInterfaces.length] = JBossProxy.class;
-      return interfaces;
+      // Initialize
+      Set<Class<?>> uniqueInterfaces = new HashSet<Class<?>>();
+
+      // Obtain interfaces and add as unique
+      uniqueInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container)));
+
+      // Add JBossProxy
+      uniqueInterfaces.add(JBossProxy.class);
+      
+      // Return
+      return uniqueInterfaces.toArray(new Class<?>[]{});
    }
 
    public void start() throws Exception

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -121,7 +121,7 @@
       Util.unbind(container.getInitialContext(), jndiName);
    }
 
-   protected abstract Class[] getInterfaces();
+   protected abstract Class<?>[] getInterfaces();
 
    protected final void initializeJndiName() {};
 }

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -21,12 +21,10 @@
  */
 package org.jboss.ejb3.stateful;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
-import javax.ejb.EJBLocalObject;
-import javax.ejb.EJBObject;
 import javax.ejb.LocalHome;
 import javax.naming.NamingException;
 
@@ -62,7 +60,7 @@
          bindTogether = true;
 
       // Obtain all local interfaces      
-      List<Class<?>> localInterfaces = new ArrayList<Class<?>>();
+      Set<Class<?>> localInterfaces = new HashSet<Class<?>>();
       localInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(container)));
       
       // Ensure that if EJB 2.1 Components are defined, they're complete

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -22,12 +22,10 @@
 package org.jboss.ejb3.stateful;
 
 import java.lang.reflect.Proxy;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
-import javax.ejb.EJBLocalObject;
-import javax.ejb.EJBObject;
 import javax.ejb.RemoteHome;
 import javax.naming.NamingException;
 
@@ -84,7 +82,7 @@
          bindTogether = true;
 
       // Obtain all remote interfaces
-      List<Class<?>> remoteInterfaces = new ArrayList<Class<?>>();
+      Set<Class<?>> remoteInterfaces = new HashSet<Class<?>>();
       remoteInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container)));
 
       // Ensure that if EJB 2.1 Components are defined, they're complete

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateless/BaseStatelessProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateless/BaseStatelessProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateless/BaseStatelessProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -176,11 +176,13 @@
    public void init() throws Exception
    {
       initializeJndiName();
-      Class[] interfaces = getInterfaces();
+      Class<?>[] interfaces = getInterfaces();
       
+      
+      
       /* plain jdk */
-      Class proxyClass = java.lang.reflect.Proxy.getProxyClass(container.getBeanClass().getClassLoader(), interfaces);
-      final Class[] constructorParams =
+      Class<?> proxyClass = java.lang.reflect.Proxy.getProxyClass(container.getBeanClass().getClassLoader(), interfaces);
+      final Class<?>[] constructorParams =
               {InvocationHandler.class};
       proxyConstructor = proxyClass.getConstructor(constructorParams);
       
@@ -237,7 +239,7 @@
       Util.unbind(container.getInitialContext(), jndiName);
    }
 
-   protected abstract Class[] getInterfaces();
+   protected abstract Class<?>[] getInterfaces();
 
    protected final void initializeJndiName() {};
 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -21,12 +21,10 @@
  */
 package org.jboss.ejb3.stateless;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
-import javax.ejb.EJBLocalObject;
-import javax.ejb.EJBObject;
 import javax.ejb.LocalHome;
 
 import org.jboss.annotation.ejb.LocalBinding;
@@ -64,7 +62,7 @@
          bindTogether = true;
 
       // Obtain all local interfaces
-      List<Class<?>> localInterfaces = new ArrayList<Class<?>>();
+      Set<Class<?>> localInterfaces = new HashSet<Class<?>>();
       localInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(container)));
       
       // Ensure that if EJB 2.1 Components are defined, they're complete

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java	2007-11-21 03:27:25 UTC (rev 67314)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java	2007-11-21 03:55:57 UTC (rev 67315)
@@ -21,12 +21,10 @@
  */
 package org.jboss.ejb3.stateless;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
-import javax.ejb.EJBLocalObject;
-import javax.ejb.EJBObject;
 import javax.ejb.RemoteHome;
 import javax.naming.NamingException;
 
@@ -75,7 +73,7 @@
          bindTogether = true;
 
       // Obtain all remote interfaces
-      List<Class<?>> remoteInterfaces = new ArrayList<Class<?>>();
+      Set<Class<?>> remoteInterfaces = new HashSet<Class<?>>();
       remoteInterfaces.addAll(Arrays.asList(ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container)));
       
       // Ensure that if EJB 2.1 Components are defined, they're complete




More information about the jboss-cvs-commits mailing list