[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