[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