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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 11 18:37:16 EDT 2008


Author: ALRubinger
Date: 2008-08-11 18:37:16 -0400 (Mon, 11 Aug 2008)
New Revision: 76958

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
Log:
[EJBTHREE-1458] Kill CCE in SLSB localHomeCreate, move logic to SessionSpecContainer such that it can be shared

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java	2008-08-11 22:36:21 UTC (rev 76957)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java	2008-08-11 22:37:16 UTC (rev 76958)
@@ -32,10 +32,12 @@
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.common.registrar.spi.NotBoundException;
 import org.jboss.ejb3.proxy.container.InvokableContext;
+import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
 import org.jboss.ejb3.proxy.handler.session.SessionProxyInvocationHandler;
 import org.jboss.ejb3.proxy.handler.session.stateful.StatefulProxyInvocationHandlerBase;
 import org.jboss.ejb3.proxy.jndiregistrar.JndiSessionRegistrarBase;
 import org.jboss.ejb3.proxy.remoting.SessionSpecRemotingMetadata;
+import org.jboss.ejb3.stateful.StatefulContainer;
 import org.jboss.ejb3.stateful.StatefulContainerInvocation;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -286,13 +288,30 @@
    /**
     * Provides implementation for this bean's EJB 2.1 Home.create() method 
     * 
-    * @param method
+    * @param factory
+    * @param unadvisedMethod
     * @param args
     * @return
     * @throws Exception
     */
-   protected abstract Object invokeHomeCreate(SerializableMethod method, Object args[]) throws Exception;
+   protected Object invokeHomeCreate(SerializableMethod method, Object args[])
+         throws Exception
+   {  
+      // Lookup
+      String proxyFactoryKey = this.getJndiRegistrar().getProxyFactoryRegistryKey(this.getMetaData(), false);
+      Object factory = Ejb3RegistrarLocator.locateRegistrar().lookup(proxyFactoryKey);
+      
+      // Cast
+      assert factory instanceof SessionProxyFactory : "Specified factory " + factory.getClass().getName() + " is not of type "
+      + SessionProxyFactory.class.getName() + " as required by " + StatefulContainer.class.getName() + ", but was instead " + factory;
+      SessionProxyFactory sessionFactory = null;
+      sessionFactory = SessionProxyFactory.class.cast(factory);
 
+      Object proxy = sessionFactory.createProxyEjb2x();
+
+      return proxy;
+   }
+
    /**
     * TODO: work in progress (refactor both invokeHomeMethod's, localHomeInvoke)
     */

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-08-11 22:36:21 UTC (rev 76957)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-08-11 22:37:16 UTC (rev 76958)
@@ -72,6 +72,7 @@
 import org.jboss.ejb3.proxy.ProxyUtils;
 import org.jboss.ejb3.proxy.container.StatefulSessionInvokableContext;
 import org.jboss.ejb3.proxy.factory.ProxyFactoryHelper;
+import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
 import org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactory;
 import org.jboss.ejb3.proxy.factory.stateful.BaseStatefulRemoteProxyFactory;
 import org.jboss.ejb3.proxy.factory.stateful.StatefulClusterProxyFactory;
@@ -1195,35 +1196,7 @@
          return null;
       }
    }
-   
-   /**
-    * Provides implementation for this bean's EJB 2.1 Home.create() method 
-    * 
-    * @param factory
-    * @param unadvisedMethod
-    * @param args
-    * @return
-    * @throws Exception
-    */
-   @Override
-   protected Object invokeHomeCreate(SerializableMethod method, Object args[])
-         throws Exception
-   {  
-      // Lookup
-      String proxyFactoryKey = this.getJndiRegistrar().getProxyFactoryRegistryKey(this.getMetaData(), false);
-      Object factory = Ejb3RegistrarLocator.locateRegistrar().lookup(proxyFactoryKey);
-      
-      // Cast
-      assert factory instanceof StatefulSessionProxyFactory : "Specified factory " + factory.getClass().getName() + " is not of type "
-      + StatefulSessionProxyFactory.class.getName() + " as required by " + StatefulContainer.class.getName() + ", but was instead " + factory;
-      StatefulSessionProxyFactory statefulFactory = null;
-      statefulFactory = StatefulSessionProxyFactory.class.cast(factory);
 
-      Object proxy = statefulFactory.createProxyEjb2x();
-
-      return proxy;
-   }
-
    protected InvocationResponse invokeEJBObjectMethod(MethodInfo info,
          StatefulRemoteInvocation statefulInvocation) throws Throwable
    {

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-08-11 22:36:21 UTC (rev 76957)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-08-11 22:37:16 UTC (rev 76958)
@@ -31,6 +31,7 @@
 
 import javax.ejb.EJBContext;
 import javax.ejb.EJBException;
+import javax.ejb.EJBObject;
 import javax.ejb.Handle;
 import javax.ejb.Timer;
 import javax.ejb.TimerService;
@@ -612,29 +613,7 @@
          return null;
       }
    }
-   
-   /**
-    * Provides implementation for this bean's EJB 2.1 Home.create() method 
-    * 
-    * @param factory
-    * @param unadvisedMethod
-    * @param args
-    * @return
-    * @throws Exception
-    */
-   @Override
-   protected Object invokeHomeCreate(SerializableMethod unadvisedMethod, Object args[])
-         throws Exception
-   {   
-      // Lookup factory
-      Object factory = this.getInitialContext().lookup(this.getMetaData().getHomeJndiName());
-      SessionProxyFactory proxyFactory = SessionProxyFactory.class.cast(factory);
 
-      Object proxy = proxyFactory.createProxyBusiness(unadvisedMethod.getReturnType());
-
-      return proxy;
-   }
-
    public Object localHomeInvoke(Method method, Object[] args) throws Throwable
    {
       if (method.getName().equals("create"))




More information about the jboss-cvs-commits mailing list