[jboss-cvs] JBossAS SVN: r66252 - in trunk/ejb3/src/main/org/jboss/ejb3: iiop and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 18 13:24:00 EDT 2007


Author: ALRubinger
Date: 2007-10-18 13:24:00 -0400 (Thu, 18 Oct 2007)
New Revision: 66252

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
   trunk/ejb3/src/main/org/jboss/ejb3/ProxyFactoryHelper.java
   trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java
   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/session/ProxyDeployer.java
   trunk/ejb3/src/main/org/jboss/ejb3/session/SessionContainer.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java
   trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java
Log:
EJBTHREE-1075: Cleaned up distinction between Local/Remote and Local Business / Remote Business interfaces

Modified: trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -742,8 +742,8 @@
       // TODO: Make sure this is done after addInterfaces!
       if(enterpriseBean instanceof GenericBean)
       {
-         Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(container);
-         if(remoteInterfaces.length == 0)
+         Class<?>[] remoteAndBusinessRemoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container);
+         if(remoteAndBusinessRemoteInterfaces.length == 0)
          {
             enterpriseBean.setLocalJndiName(enterpriseBean.getJndiName());
             enterpriseBean.setJndiName(null);

Modified: trunk/ejb3/src/main/org/jboss/ejb3/ProxyFactoryHelper.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/ProxyFactoryHelper.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/ProxyFactoryHelper.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -21,11 +21,7 @@
  */
 package org.jboss.ejb3;
 
-import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.ejb.EJBLocalObject;
@@ -74,7 +70,7 @@
     * @param container
     * @return       the local interfaces of the container or an empty array
     */
-   public static Class<?>[] getLocalInterfaces(Container container)
+   public static Class<?>[] getLocalAndBusinessLocalInterfaces(Container container)
    {
       // Obtain @Local
       Local localAnnotation = ((EJBContainer) container).getAnnotation(javax.ejb.Local.class);
@@ -155,19 +151,18 @@
                   return beanClassBusinessInterfaces.toArray(new Class<?>[]
                   {});
                }
-
             }
          }
          
-         Class[] rtn = {(Class) businessInterfaces.get(0)};
+         Class<?>[] rtn = {(Class<?>) businessInterfaces.get(0)};
          localAnnotation = new LocalImpl(rtn);
          ((EJBContainer) container).getAnnotations().addClassAnnotation(javax.ejb.Local.class, localAnnotation);
          return rtn;
       }
 
-      Class beanClass = container.getBeanClass();
+      Class<?> beanClass = container.getBeanClass();
       String endpoint = getEndpointInterface(container);
-      Class[] remoteInterfaces = getRemoteInterfaces(container);
+      Class<?>[] remoteInterfaces = getRemoteAndBusinessRemoteInterfaces(container);
 
       if (localAnnotation == null && remoteInterfaces.length == 0 && endpoint == null && (beanClass.getInterfaces() == null || beanClass.getInterfaces().length == 0))
          throw new RuntimeException("bean class has no local, webservice, or remote interfaces defined and does not implement at least one business interface: " + container.getEjbName());
@@ -176,7 +171,7 @@
       if (localAnnotation == null)
       {
          List<Class<?>> intfs = getBusinessInterfaces(beanClass);
-         ArrayList<Class> locals = new ArrayList<Class>();
+         ArrayList<Class<?>> locals = new ArrayList<Class<?>>();
          for (Class<?> clazz : intfs)
          {
             if (clazz.isAnnotationPresent(javax.ejb.Local.class))
@@ -199,10 +194,10 @@
          List<Class<?>> interfaces = getBusinessInterfaces(beanClass);
          if (interfaces.size() != 1) return new Class[]{}; // indeterminate
 
-         Class intf = interfaces.get(0);
+         Class<?> intf = interfaces.get(0);
          if (remoteInterfaces != null)
          {
-            for (Class rintf : remoteInterfaces)
+            for (Class<?> rintf : remoteInterfaces)
             {
                if (intf.getName().equals(rintf.getName()))
                {
@@ -214,7 +209,7 @@
          if (intf.getName().equals(endpoint))
             return new Class[]{};
 
-         Class[] rtn = {intf};
+         Class<?>[] rtn = {intf};
          localAnnotation = new LocalImpl(rtn);
          ((EJBContainer) container).getAnnotations().addClassAnnotation(javax.ejb.Local.class, localAnnotation);
          return rtn;
@@ -223,9 +218,9 @@
 
       // Check to ensure @Local and @Remote are not defined on the same interface
       // JIRA EJBTHREE-751
-      for (Class remoteInterface : remoteInterfaces)
+      for (Class<?> remoteInterface : remoteInterfaces)
       {
-         for (Class localInterface : localAnnotation.value())
+         for (Class<?> localInterface : localAnnotation.value())
          {
             if (localInterface.equals(remoteInterface))
             {
@@ -260,8 +255,8 @@
       /*
        * 4.6.6:
        * The following interfaces are excluded when determining whether the bean class has
-       * more than one interface: java.io.Serializable; java.io.Externaliz-
-       * able; any of the interfaces defined by the javax.ejb package.
+       * more than one interface: java.io.Serializable; java.io.Externalizable; 
+       * any of the interfaces defined by the javax.ejb package.
        */
       for(Class<?> intf : beanClass.getInterfaces())
       {
@@ -291,32 +286,30 @@
       }
    }
 
-   public static Class getLocalHomeInterface(Container container)
+   public static Class<?> getLocalHomeInterface(Container container)
    {
-      Class beanClass = container.getBeanClass();
-      LocalHome li = (javax.ejb.LocalHome) ((EJBContainer) container).resolveAnnotation(javax.ejb.LocalHome.class);
+      LocalHome li = ((EJBContainer) container).getAnnotation(javax.ejb.LocalHome.class);
       if (li != null) return li.value();
       return null;
    }
 
-   public static Class getRemoteHomeInterface(Container container)
+   public static Class<?> getRemoteHomeInterface(Container container)
    {
-      Class beanClass = container.getBeanClass();
-      RemoteHome li = (javax.ejb.RemoteHome) ((EJBContainer) container).resolveAnnotation(javax.ejb.RemoteHome.class);
+      RemoteHome li = ((EJBContainer) container).getAnnotation(javax.ejb.RemoteHome.class);
       if (li != null) return li.value();
       return null;
    }
 
-   public static boolean publishesInterface(Container container, Class businessInterface)
+   public static boolean publishesInterface(Container container, Class<?> businessInterface)
    {
       if (!(container instanceof SessionContainer)) return false;
-      Class[] remotes = getRemoteInterfaces(container);
-      for (Class intf : remotes)
+      Class<?>[] remotes = getRemoteAndBusinessRemoteInterfaces(container);
+      for (Class<?> intf : remotes)
       {
          if (intf.getName().equals(businessInterface.getName())) return true;
       }
 
-      Class remoteHome = getRemoteHomeInterface(container);
+      Class<?> remoteHome = getRemoteHomeInterface(container);
       if (remoteHome != null)
       {
          if (businessInterface.getName().equals(remoteHome.getName()))
@@ -324,15 +317,15 @@
             return true;
          }
       }
-      Class[] locals = getLocalInterfaces(container);
-      for (Class clazz : locals)
+      Class<?>[] locals = getLocalAndBusinessLocalInterfaces(container);
+      for (Class<?> clazz : locals)
       {
          if (clazz.getName().equals(businessInterface.getName()))
          {
             return true;
          }
       }
-      Class localHome = getLocalHomeInterface(container);
+      Class<?> localHome = getLocalHomeInterface(container);
       if (localHome != null)
       {
          if (businessInterface.getName().equals(localHome.getName()))
@@ -364,15 +357,15 @@
       return container.getEjbName() + "/localHome";
    }
 
-   public static String getJndiName(Container container, Class businessInterface)
+   public static String getJndiName(Container container, Class<?> businessInterface)
    {
       assert container != null : "container is null";
       assert businessInterface != null : "businessInterface is null";
 
       if (!(container instanceof SessionContainer)) return null;
       Advisor advisor = (Advisor) container;
-      Class[] remotes = getRemoteInterfaces(container);
-      for (Class clazz : remotes)
+      Class<?>[] remotes = getRemoteAndBusinessRemoteInterfaces(container);
+      for (Class<?> clazz : remotes)
       {
          if (clazz.getName().equals(businessInterface.getName()))
          {
@@ -388,7 +381,7 @@
             return getRemoteJndiName(container, bindings.value()[0]);
          }
       }
-      Class remoteHome = getRemoteHomeInterface(container);
+      Class<?> remoteHome = getRemoteHomeInterface(container);
       if (remoteHome != null)
       {
          if (businessInterface.getName().equals(remoteHome.getName()))
@@ -396,15 +389,15 @@
              return getHomeJndiName(container);
          }
       }
-      Class[] locals = getLocalInterfaces(container);
-      for (Class clazz : locals)
+      Class<?>[] locals = getLocalAndBusinessLocalInterfaces(container);
+      for (Class<?> clazz : locals)
       {
          if (clazz.getName().equals(businessInterface.getName()))
          {
             return getLocalJndiName(container);
          }
       }
-      Class localHome = getLocalHomeInterface(container);
+      Class<?> localHome = getLocalHomeInterface(container);
       if (localHome != null)
       {
          if (businessInterface.getName().equals(localHome.getName()))
@@ -453,20 +446,110 @@
             throw new javax.ejb.EJBException("Conflict between default local jndi name " + ejbName + "/local and remote jndi name " + remoteJndiName + " for ejb-name:" + ejbName + ", bean class=" + container.getBeanClass());
       }
    }
+   
+   /**
+    * Returns all local interfaces in the specified container; interfaces
+    * marked as "local" via either annotation or XML and extending EJBLocalObject
+    * 
+    * @param container
+    * @return
+    */
+   public static Class<?>[] getLocalInterfaces(Container container)
+   {
+      return ProxyFactoryHelper.getInterfacesAssignableFromClass(ProxyFactoryHelper
+            .getLocalAndBusinessLocalInterfaces(container), EJBLocalObject.class, true);
+   }
+   
+   /**
+    * Returns all remote interfaces in the specified container; interfaces
+    * marked as "remote" via either annotation or XML and extending EJBObject
+    * 
+    * @param container
+    * @return
+    */
+   public static Class<?>[] getRemoteInterfaces(Container container)
+   {
+      return ProxyFactoryHelper.getInterfacesAssignableFromClass(ProxyFactoryHelper
+            .getRemoteAndBusinessRemoteInterfaces(container), EJBObject.class, true);
+   }
+   
+   /**
+    * Returns all local business interfaces in the specified container; interfaces
+    * marked as "local" via either annotation or XML and not extending EJBLocalObject
+    * 
+    * @param container
+    * @return
+    */
+   public static Class<?>[] getLocalBusinessInterfaces(Container container)
+   {
+      return ProxyFactoryHelper.getInterfacesAssignableFromClass(ProxyFactoryHelper
+            .getLocalAndBusinessLocalInterfaces(container), EJBLocalObject.class, false);
+   }
+   
+   /**
+    * Returns all remote business interfaces in the specified container; interfaces
+    * marked as "remote" via either annotation or XML and not extending EJBObject
+    * 
+    * @param container
+    * @return
+    */
+   public static Class<?>[] getRemoteBusinessInterfaces(Container container)
+   {
+      return ProxyFactoryHelper.getInterfacesAssignableFromClass(ProxyFactoryHelper
+            .getRemoteAndBusinessRemoteInterfaces(container), EJBObject.class, false);
+   }
+   
+   /**
+    * Returns an subset of the specified array of interfaces either 
+    * assignable to or not assignable to the specified class, depending 
+    * upon the flag "assignable"
+    * 
+    * @param interfaces
+    * @param clazz
+    * @param assignable
+    * @return
+    */
+   private static Class<?>[] getInterfacesAssignableFromClass(Class<?>[] interfaces,Class<?> clazz,boolean assignable)
+   {
+      // Initialize
+      List<Class<?>> subset = new ArrayList<Class<?>>();
 
+      // For all interfaces  
+      for (Class<?> interfaze : interfaces)
+      {
+         // If we want assignable classes only
+         if (assignable && clazz.isAssignableFrom(interfaze))
+         {
+            subset.add(interfaze);
+         }
+
+         // If we want classes not assignable only
+         if (!assignable && !clazz.isAssignableFrom(interfaze))
+         {
+            subset.add(interfaze);
+         }
+      }
+
+      // Return
+      return subset.toArray(new Class<?>[]
+      {});
+   }
+
    /**
+    * Returns all remote and remote business interfaces in the specified container, 
+    * designated by @Remote or in ejb-jar.xml as "remote" or "business-remote"
     *
     * @param container
     * @return   the remote interfaces of the container or an empty array
     */
-   public static Class<?>[] getRemoteInterfaces(Container container)
+   public static Class<?>[] getRemoteAndBusinessRemoteInterfaces(Container container)
    {
       Remote ri = (Remote) ((Advisor) container).resolveAnnotation(Remote.class);
       if (ri == null)
       {
-         Class beanClass = container.getBeanClass();
-         Class[] intfs = ProxyFactoryHelper.getBusinessInterfaces(beanClass).toArray(new Class[]{});
-         ArrayList<Class> remotes = new ArrayList<Class>();
+         Class<?> beanClass = container.getBeanClass();
+         Class<?>[] intfs = ProxyFactoryHelper.getBusinessInterfaces(beanClass).toArray(new Class[]{});
+         ArrayList<Class<?>> remotes = new ArrayList<Class<?>>();
          for (Class<?> clazz : intfs)
          {
             if (clazz.isAnnotationPresent(Remote.class))
@@ -482,19 +565,19 @@
             return ri.value();
          }
 
-         return new Class[]{};
+         return new Class<?>[]{};
       }
 
       if (ri.value().length > 0) return ri.value();
 
       // We have an emtpy @Remote annotated bean class
 
-      List list = getBusinessInterfaces(container.getBeanClass());
+      List<Class<?>> list = getBusinessInterfaces(container.getBeanClass());
       if (list.size() == 0)
          throw new RuntimeException("Use of empty @Remote on bean class and there are no valid business interfaces: " + container.getEjbName());
       if (list.size() > 1)
          throw new RuntimeException("Use of empty @Remote on bean class and there are more than one default interface: " + container.getEjbName());
-      Class[] rtn = {(Class) list.get(0)};
+      Class<?>[] rtn = {(Class<?>) list.get(0)};
       ri = new RemoteImpl(rtn);
       ((EJBContainer) container).getAnnotations().addClassAnnotation(javax.ejb.Remote.class, ri);
       return rtn;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/iiop/IORFactory.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -249,7 +249,7 @@
    public void start() throws Exception
    {
       // TODO: IORFactory only supports 1 remote interface
-      Class remoteInterfaces[] = ProxyFactoryHelper.getRemoteInterfaces(container);
+      Class remoteInterfaces[] = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container);
       if(remoteInterfaces.length > 1)
          log.warn("IIOP binding only works on 1 interface, using: " + remoteInterfaces[0].getName());
       InterfaceAnalysis interfaceAnalysis = InterfaceAnalysis.getInterfaceAnalysis(remoteInterfaces[0]);

Modified: trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceLocalProxyFactory.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -41,7 +41,7 @@
 
    protected Class[] getInterfaces()
    {
-      Class[] localInterfaces = ProxyFactoryHelper.getLocalInterfaces(container);
+      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;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/service/ServiceRemoteProxyFactory.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -55,7 +55,7 @@
 
    protected Class[] getInterfaces()
    {
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(container);
+      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;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/session/ProxyDeployer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/session/ProxyDeployer.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/session/ProxyDeployer.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -119,7 +119,7 @@
       localBinding = (LocalBinding) container.resolveAnnotation(LocalBinding.class);
       if (localBinding == null)
       {
-         if (ProxyFactoryHelper.getLocalInterfaces(container).length > 0)
+         if (ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(container).length > 0)
          {
             localBinding = new LocalBindingImpl(ProxyFactoryHelper.getLocalJndiName(container));
             container.getAnnotations().addClassAnnotation(LocalBinding.class, localBinding);
@@ -145,7 +145,7 @@
          if (binding == null)
          {
             log.debug("no declared remote bindings for : " + container.getEjbName());
-            if (ProxyFactoryHelper.getRemoteInterfaces(container).length > 0)
+            if (ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container).length > 0)
             {
                log.debug("there is remote interfaces for " + container.getEjbName());
                String jndiName = ProxyFactoryHelper.getDefaultRemoteJndiName(container);

Modified: trunk/ejb3/src/main/org/jboss/ejb3/session/SessionContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/session/SessionContainer.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/session/SessionContainer.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -29,6 +29,7 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.ejb.EJBLocalObject;
 import javax.ejb.EJBObject;
 import javax.ejb.Handle;
 import javax.ejb.LocalHome;
@@ -44,6 +45,7 @@
 import org.jboss.aop.joinpoint.InvocationResponse;
 import org.jboss.aop.util.MethodHashing;
 import org.jboss.aspects.asynch.FutureHolder;
+import org.jboss.ejb3.BeanContext;
 import org.jboss.ejb3.EJBContainer;
 import org.jboss.ejb3.EJBContainerInvocation;
 import org.jboss.ejb3.Ejb3Deployment;
@@ -161,14 +163,14 @@
     */
    protected abstract RemoteProxyFactory createRemoteProxyFactory(RemoteBinding binding);
    
-   public Class getInvokedBusinessInterface()
+   public Class<?> getInvokedBusinessInterface()
    {
       InvokedMethod method = invokedMethod.get();
       if (method == null) throw new IllegalStateException("getInvokedBusinessInterface() being invoked outside of a business invocation");
       if (method.method == null) throw new IllegalStateException("getInvokedBusinessInterface() being invoked outside of a business invocation");
       if (method.isLocalInterface) return method.method.getDeclaringClass();
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(this);
-      for (Class intf : remoteInterfaces)
+      Class<?>[] remoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(this);
+      for (Class<?> intf : remoteInterfaces)
       {
          try
          {
@@ -193,9 +195,11 @@
 
    protected List<Class<?>> resolveBusinessInterfaces()
    {
+      // Obtain all business interfaces
       List<Class<?>> list = new ArrayList<Class<?>>();
-      list.addAll(Arrays.asList(ProxyFactoryHelper.getLocalInterfaces(this)));
-      list.addAll(Arrays.asList(ProxyFactoryHelper.getRemoteInterfaces(this)));
+      list.addAll(Arrays.asList(ProxyFactoryHelper.getLocalBusinessInterfaces(this)));
+      list.addAll(Arrays.asList(ProxyFactoryHelper.getRemoteBusinessInterfaces(this)));
+      
       return list;
    }
    

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -87,7 +87,7 @@
 
    protected Class[] getInterfaces()
    {
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(container);
+      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;

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -898,7 +898,7 @@
       
       boolean isRemote = false;
       boolean found = false;
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(this);
+      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(this);
       for (Class intf : remoteInterfaces)
       {
          if (intf.getName().equals(businessInterface.getName()))
@@ -910,7 +910,7 @@
       }
       if (found == false)
       {
-         Class[] localInterfaces = ProxyFactoryHelper.getLocalInterfaces(this);
+         Class[] localInterfaces = ProxyFactoryHelper.getLocalAndBusinessLocalInterfaces(this);
          for (Class intf : localInterfaces)
          {
             if (intf.getName().equals(businessInterface.getName()))

Modified: trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java	2007-10-18 17:23:11 UTC (rev 66251)
+++ trunk/ejb3/src/main/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java	2007-10-18 17:24:00 UTC (rev 66252)
@@ -77,7 +77,7 @@
 
    protected Class[] getInterfaces()
    {
-      Class[] remoteInterfaces = ProxyFactoryHelper.getRemoteInterfaces(container);
+      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;




More information about the jboss-cvs-commits mailing list