[jboss-cvs] JBossAS SVN: r71838 - in projects/ejb3/dev/ejbthree1253/core/src: main/java/org/jboss/ejb3/stateless and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 9 10:11:52 EDT 2008


Author: ALRubinger
Date: 2008-04-09 10:11:52 -0400 (Wed, 09 Apr 2008)
New Revision: 71838

Modified:
   projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
   projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java
   projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
   projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
   projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessHandleRemoteImpl.java
   projects/ejb3/dev/ejbthree1253/core/src/test/java/org/jboss/ejb3/test/reference21_30/Test2Bean.java
Log:
[EJBTHREE-1253] Differenciate between SFSB remote/local proxy bindings, use proper Handle impl in StatelessContainer

Modified: projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -74,11 +74,6 @@
    public void start() throws Exception
    {
       this.init();
-      
-      Object proxy = createProxyBusiness();
-      //describeClass(proxy.getClass());
-      bindProxy(proxy);
-
    }
 
    public void stop() throws Exception

Modified: projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -2,9 +2,16 @@
 
 import javax.ejb.EJBObject;
 import javax.ejb.RemoteHome;
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.RefAddr;
+import javax.naming.Reference;
+import javax.naming.StringRefAddr;
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.advice.AdviceStack;
+import org.jboss.ejb3.JndiProxyFactory;
 import org.jboss.ejb3.ProxyFactoryHelper;
 import org.jboss.ejb3.SpecificationInterfaceType;
 import org.jboss.ejb3.annotation.RemoteBinding;
@@ -12,11 +19,16 @@
 import org.jboss.ejb3.session.ProxyAccessType;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.ejb3.session.SessionSpecContainer;
+import org.jboss.logging.Logger;
 import org.jboss.remoting.InvokerLocator;
+import org.jboss.util.naming.Util;
 
 public abstract class BaseStatefulRemoteProxyFactory extends BaseStatefulProxyFactory implements RemoteProxyFactory
 {
+   // Class Members
    
+   private static final Logger log = Logger.getLogger(BaseStatefulRemoteProxyFactory.class);
+   
    // Instance Members
    
    private RemoteBinding binding;
@@ -135,7 +147,33 @@
       // Cast explicitly to catch improper proxies
       return (T)this.createProxy(id,SpecificationInterfaceType.EJB21);
    }
+   
+   @Override
+   public void start() throws Exception
+   {
+      super.start();
 
+      // Bind the Proxy Factory
+      Context ctx = getContainer().getInitialContext();
+      Name name = ctx.getNameParser("").parse(jndiName);
+      ctx = Util.createSubcontext(ctx, name.getPrefix(name.size() - 1));
+      String atom = name.get(name.size() - 1);
+      RefAddr refAddr = new StringRefAddr(JndiProxyFactory.FACTORY, jndiName + PROXY_FACTORY_NAME);
+      Reference ref = new Reference(Object.class.getName(), refAddr, JndiProxyFactory.class.getName(), null);
+      try
+      {
+         log.debug("Binding reference for " + getContainer().getEjbName() + " in JNDI at " + atom);
+         Util.rebind(ctx, atom, ref);
+      }
+      catch (NamingException e)
+      {
+         NamingException namingException = new NamingException("Could not bind stateful proxy with ejb name "
+               + getContainer().getEjbName() + " into JNDI under jndiName: " + ctx.getNameInNamespace() + "/" + atom);
+         namingException.setRootCause(e);
+         throw namingException;
+      }
+   }
+
    // Accessors / Mutators
    
    RemoteBinding getBinding()

Modified: projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -56,8 +56,6 @@
 {
    private static final Logger log = Logger.getLogger(StatefulRemoteProxyFactory.class);
    
-//   public static final String FACTORY_ATTRIBUTE = ",element=ProxyFactory";
-   
    private static final String STACK_NAME_STATEFUL_SESSION_CLIENT_INTERCEPTORS = "StatefulSessionClientInterceptors";
 
    public StatefulRemoteProxyFactory(SessionSpecContainer container, RemoteBinding binding)

Modified: projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -58,7 +58,6 @@
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
 import org.jboss.proxy.ejb.handle.HomeHandleImpl;
-import org.jboss.proxy.ejb.handle.StatelessHandleImpl;
 import org.jboss.wsf.spi.SPIProvider;
 import org.jboss.wsf.spi.SPIProviderResolver;
 import org.jboss.wsf.spi.invocation.ExtensibleWebServiceContext;
@@ -421,10 +420,11 @@
       Method unadvisedMethod = info.getUnadvisedMethod();
       if (unadvisedMethod.getName().equals("getHandle"))
       {
-         StatelessHandleImpl handle = null;
-         RemoteBinding remoteBindingAnnotation = this.getAnnotation(RemoteBinding.class);
-         if (remoteBindingAnnotation != null)
-            handle = new StatelessHandleImpl(remoteBindingAnnotation.jndiBinding());
+         
+         StatelessHandleRemoteImpl handle = null;
+         RemoteBinding binding = this.getAnnotation(RemoteBinding.class);
+         BaseStatelessRemoteProxyFactory factory = this.getProxyFactory(binding);
+         handle = factory.createHandle();
 
          return handle;
       }

Modified: projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessHandleRemoteImpl.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessHandleRemoteImpl.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessHandleRemoteImpl.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -31,6 +31,7 @@
  *
  * @author  <a href="mailto:marc.fleury at jboss.org">Marc Fleury</a>
  * @author Scott.Stark at jboss.org
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision$
  */
 public class StatelessHandleRemoteImpl

Modified: projects/ejb3/dev/ejbthree1253/core/src/test/java/org/jboss/ejb3/test/reference21_30/Test2Bean.java
===================================================================
--- projects/ejb3/dev/ejbthree1253/core/src/test/java/org/jboss/ejb3/test/reference21_30/Test2Bean.java	2008-04-09 13:20:24 UTC (rev 71837)
+++ projects/ejb3/dev/ejbthree1253/core/src/test/java/org/jboss/ejb3/test/reference21_30/Test2Bean.java	2008-04-09 14:11:52 UTC (rev 71838)
@@ -40,7 +40,7 @@
    {
       InitialContext jndiContext = new InitialContext();
       
-      Test3 session = (Test3)jndiContext.lookup("java:comp/env/ejb/Test3");
+      Test3Business session = (Test3Business)jndiContext.lookup("java:comp/env/ejb/Test3");
       session.testAccess();
      
       Test3Home home = (Test3Home)jndiContext.lookup("java:comp/env/ejb/Test3Home");




More information about the jboss-cvs-commits mailing list