[jboss-cvs] JBossAS SVN: r73406 - in projects/ejb3/trunk/proxy/src: main/java/org/jboss/ejb3/proxy/factory/session/stateless and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 15 01:29:47 EDT 2008


Author: ALRubinger
Date: 2008-05-15 01:29:46 -0400 (Thu, 15 May 2008)
New Revision: 73406

Added:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java
Modified:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java
   projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml
Log:
[EJBTHREE-1345] Added InvocationHandler hierarchy (some copied from EJB3 Core), JndiRegistrar now hooked into ProxySessionTestCase

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.factory.session.stateless;
+
+import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * StatelessSessionRemoteProxyFactory
+ * 
+ * A SLSB Proxy Factory for Remote Views
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessSessionRemoteProxyFactory extends StatelessSessionProxyFactoryBase implements SessionProxyFactory
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final Logger logger = Logger.getLogger(StatelessSessionRemoteProxyFactory.class);
+
+   // --------------------------------------------------------------------------------||
+   // Constructor --------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param metadata The metadata representing this SLSB
+    * @param classloader The ClassLoader associated with the StatelessContainer
+    *       for which this ProxyFactory is to generate Proxies
+    */
+   public StatelessSessionRemoteProxyFactory(final JBossSessionBeanMetaData metadata, final ClassLoader classloader)
+   {
+      // Call Super
+      super(metadata, classloader);
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Lifecycle Methods --------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+    * before the ProxyFactory is able to service requests
+    * 
+    *  @throws Exception
+    */
+   @Override
+   public void start() throws Exception
+   {
+      super.start();
+      //TODO
+   }
+
+   /**
+    * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+    * before the ProxyFactory is taken out of service, 
+    * possibly GC'd
+    * 
+    * @throws Exception
+    */
+   @Override
+   public void stop() throws Exception
+   {
+      super.stop();
+      //TODO
+   }
+
+}

Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java (from rev 73398, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java)
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * ProxyInvocationHandler
+ * 
+ * Defines contract for a generic EJB3 Proxy
+ * Invocation Handler
+ * 
+ * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
+ * @version $Revision$
+ */
+public interface ProxyInvocationHandler extends InvocationHandler
+{
+   /**
+    * For use in hashCode, toString() and equals() *
+    */
+   String toString();
+
+   Object getAsynchronousProxy(Object proxy);
+}
\ No newline at end of file

Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java (from rev 73398, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/proxy/handler/BaseProxyInvocationHandler.java)
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler;
+
+/**
+ * ProxyInvocationHandlerBase
+ * 
+ * Abstract base from which all Proxy InvocationHandlers
+ * may extend
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class ProxyInvocationHandlerBase implements ProxyInvocationHandler
+{
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler.session;
+
+import org.jboss.ejb3.proxy.handler.ProxyInvocationHandler;
+
+/**
+ * SessionProxyInvocationHandler
+ * 
+ * Defines contract for operations required of
+ * a JBoss Session Bean Proxy Invocation Handler 
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: 72638 $
+ */
+public interface SessionProxyInvocationHandler extends ProxyInvocationHandler
+{
+
+}
\ No newline at end of file

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session;
+
+import org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase;
+
+/**
+ * SessionProxyInvocationHandlerBase
+ * 
+ * Abstract base from which all JBoss Session Proxy InvocationHandlers
+ * may extend
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class SessionProxyInvocationHandlerBase extends ProxyInvocationHandlerBase
+      implements
+         SessionProxyInvocationHandler
+{
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler.session;
+
+/**
+ * SessionSpecProxyInvocationHandler
+ * 
+ * Defines contract for operations required of
+ * a Session Bean Proxy Invocation Handler 
+ * following the EJB3 Specification
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: 72638 $
+ */
+public interface SessionSpecProxyInvocationHandler extends SessionProxyInvocationHandler
+{
+   /**
+    * Returns the business interface upon which 
+    * the current invocation was made.  If null, this
+    * signifies a non-deterministic state in which any number
+    * of business interfaces may have been bound 
+    * to this Proxy
+    * 
+    * @return
+    */
+   String getBusinessInterfaceType();
+}
\ No newline at end of file

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session;
+
+/**
+ * SessionSpecProxyInvocationHandlerBase
+ * 
+ * Abstract base from which all Session Proxy InvocationHandlers
+ * adhering to the EJB3 specification may extend
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class SessionSpecProxyInvocationHandlerBase extends SessionProxyInvocationHandlerBase
+      implements
+         SessionSpecProxyInvocationHandler
+{
+   // ------------------------------------------------------------------------------||
+   // Instance Members -------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   /**
+    * Fully-qualified name of the class targeted either for injection
+    * or casting to support getInvokedBusinessInterface.  May be
+    * null to denote non-deterministic invocation
+    */
+   private String businessInterfaceType;
+
+   // ------------------------------------------------------------------------------||
+   // Constructors -----------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param businessInterfaceType The possibly null businessInterfaceType
+    *   marking this invocation hander as specific to a given
+    *   EJB3 Business Interface
+    */
+   protected SessionSpecProxyInvocationHandlerBase(String businessInterfaceType)
+   {
+      super();
+      this.setBusinessInterfaceType(businessInterfaceType);
+   }
+
+   // ------------------------------------------------------------------------------||
+   // Accessors / Mutators ---------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   public String getBusinessInterfaceType()
+   {
+      return businessInterfaceType;
+   }
+
+   protected void setBusinessInterfaceType(String businessInterfaceType)
+   {
+      this.businessInterfaceType = businessInterfaceType;
+   }
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session.stateless;
+
+import java.lang.reflect.Method;
+
+import org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase;
+import org.jboss.util.NotImplementedException;
+
+/**
+ * StatelessLocalProxyInvocationHandler
+ * 
+ * Implementation of a SLSB Local Proxy Invocation Handler 
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessLocalProxyInvocationHandler extends SessionSpecProxyInvocationHandlerBase
+{
+
+   // ------------------------------------------------------------------------------||
+   // Constructors -----------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param businessInterfaceType The possibly null businessInterfaceType
+    *   marking this invocation hander as specific to a given
+    *   EJB3 Business Interface
+    */
+   protected StatelessLocalProxyInvocationHandler(String businessInterfaceType)
+   {
+      super(businessInterfaceType);
+   }
+
+   // ------------------------------------------------------------------------------||
+   // Required Implementations -----------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   //TODO
+
+   // ------------------------------------------------------------------------------||
+   // TO BE IMPLEMENTED ------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+   {
+      throw new NotImplementedException("ALR");
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.proxy.handler.ProxyInvocationHandler#getAsynchronousProxy(java.lang.Object)
+    */
+   public Object getAsynchronousProxy(Object proxy)
+   {
+      throw new NotImplementedException("ALR");
+   }
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session.stateless;
+
+import java.lang.reflect.Method;
+
+import org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase;
+import org.jboss.util.NotImplementedException;
+
+/**
+ * StatelessRemoteProxyInvocationHandler
+ * 
+ * Implementation of a SLSB Remote Proxy Invocation Handler 
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessRemoteProxyInvocationHandler extends SessionSpecProxyInvocationHandlerBase
+{
+
+   // ------------------------------------------------------------------------------||
+   // Constructors -----------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param businessInterfaceType The possibly null businessInterfaceType
+    *   marking this invocation hander as specific to a given
+    *   EJB3 Business Interface
+    */
+   protected StatelessRemoteProxyInvocationHandler(String businessInterfaceType)
+   {
+      super(businessInterfaceType);
+   }
+
+   // ------------------------------------------------------------------------------||
+   // Required Implementations -----------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   //TODO
+
+   // ------------------------------------------------------------------------------||
+   // TO BE IMPLEMENTED ------------------------------------------------------------||
+   // ------------------------------------------------------------------------------||
+
+   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+   {
+      throw new NotImplementedException("ALR");
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.proxy.handler.ProxyInvocationHandler#getAsynchronousProxy(java.lang.Object)
+    */
+   public Object getAsynchronousProxy(Object proxy)
+   {
+      throw new NotImplementedException("ALR");
+   }
+
+}

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java	2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -35,6 +35,9 @@
 import org.jboss.ejb3.common.lang.ClassHelper;
 import org.jboss.ejb3.common.string.StringUtils;
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionLocalProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionRemoteProxyFactory;
+import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryAlreadyRegisteredException;
 import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
@@ -59,6 +62,23 @@
 
    private static final Logger log = Logger.getLogger(JndiRegistrar.class);
 
+   /**
+    * The value appended to the key used to bind proxy factories to the registry
+    */
+   private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY = "/ProxyFactory";
+
+   /**
+    * The value appended to the key used to bind local proxy factories to the registry
+    */
+   private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY_LOCAL = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY
+         + "/local";
+
+   /**
+    * The value appended to the key used to bind local remote factories to the registry
+    */
+   private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY_REMOTE = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY
+         + "/remote";
+
    // --------------------------------------------------------------------------------||
    // Instance Members ---------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
@@ -74,20 +94,8 @@
    private ProxyFactoryRegistry registry;
 
    /**
-    * Class of the SLSB Local Proxy Factory
+    * Fully-qualified class name of the JNDI Object Factory to Reference for SLSBs
     */
-   private Class<?> statelessSessionLocalProxyFactoryClass;
-
-   /**
-    * Class of the SLSB Remote Proxy Factory
-    */
-   private Class<?> statelessSessionRemoteProxyFactoryClass;
-
-   //TODO MDB, @Service, SFSB Local/Remote
-
-   /**
-    * Full-qualified class name of the JNDI Object Factory to Reference for SLSBs
-    */
    private String statelessSessionProxyObjectFactoryType;
 
    //TODO MDB, @Service, SFSB
@@ -102,58 +110,31 @@
     * 
     * @param context The JNDI Context into which Objects will be bound
     * @param registry The ProxyFactoryRegistry with which ProxyFactories will be registered
-    * @param statelessSessionLocalProxyFactoryType String representation of the SLSB Local Proxy Factory Class
-    * @param statelessSessionRemoteProxyFactoryType String representation of the SLSB Remote Proxy Factory Class
     * @param statelessSessionProxyObjectFactoryType String representation of the JNDI Object Factory to use for SLSBs
     */
    public JndiRegistrar(final Context context, final ProxyFactoryRegistry registry,
-         final String statelessSessionLocalProxyFactoryType, final String statelessSessionRemoteProxyFactoryType,
-         final String statelessSessionProxyObjectFactoryType)
+         String statelessSessionProxyObjectFactoryType)
    {
       // Set the Context
       assert context != null : this + " may not be configured with null  " + Context.class.getName();
       this.setContext(context);
-      log.debug(this + " has configured " + context);
+      log.debug("Using  " + Context.class.getName() + ": " + context);
 
       // Set the ProxyFactoryRegistry
       assert registry != null : this + " may not be configured with null  " + ProxyFactoryRegistry.class.getName();
       this.setRegistry(registry);
-      log.debug(this + " using " + registry);
+      log.debug("Using " + ProxyFactoryRegistry.class.getSimpleName() + ": " + registry);
 
       /*
        * Perform some assertions and logging
        */
 
-      // SLSB Local
-      assert statelessSessionLocalProxyFactoryType != null && !statelessSessionLocalProxyFactoryType.equals("") : "Stateless Session Local Proxy Factory Type must be specified.";
-      log.debug(this + " has configured as SLSB Local Proxy Factory: " + statelessSessionLocalProxyFactoryType);
-
-      // SLSB Remote
-      assert statelessSessionRemoteProxyFactoryType != null && !statelessSessionRemoteProxyFactoryType.equals("") : "Stateless Session Remote Proxy Factory Type must be specified.";
-      log.debug(this + " has configured as SLSB Remote Proxy Factory: " + statelessSessionRemoteProxyFactoryType);
-
-      //TODO MBD, @Service, SFSB Local/Remote
-
-      try
-      {
-         // Set Proxy Factory Classes
-         this.setStatelessSessionLocalProxyFactoryClass(this.getClass().getClassLoader().loadClass(
-               statelessSessionLocalProxyFactoryType));
-         this.setStatelessSessionRemoteProxyFactoryClass(this.getClass().getClassLoader().loadClass(
-               statelessSessionRemoteProxyFactoryType));
-
-         //TODO MDB, @Service
-      }
-      catch (ClassNotFoundException cce)
-      {
-         throw new RuntimeException("A configured " + ProxyFactory.class.getSimpleName() + " could not be loaded by "
-               + this, cce);
-      }
-
       // Set the SLSB Proxy Object Factory Type
       assert statelessSessionProxyObjectFactoryType != null && !statelessSessionProxyObjectFactoryType.equals("") : "SLSB Proxy "
             + ObjectFactory.class.getSimpleName() + " must be specified.";
       this.setStatelessSessionProxyObjectFactoryType(statelessSessionProxyObjectFactoryType);
+      log.debug(this + " has configured SLSB JNDI " + ObjectFactory.class.getSimpleName() + ": "
+            + this.getStatelessSessionProxyObjectFactoryType());
    }
 
    // --------------------------------------------------------------------------------||
@@ -167,9 +148,9 @@
     * implementations required by the EJB
     * 
     * @param md
-    * @param containerCl The CL of the Container
+    * @param cl The CL of the Container
     */
-   public void bindEjb(JBossEnterpriseBeanMetaData md, ClassLoader containerCl)
+   public void bindEjb(JBossEnterpriseBeanMetaData md, ClassLoader cl)
    {
       // If we've got a SessionBean
       if (md.isSession())
@@ -190,7 +171,7 @@
 
          // Delegate out to session-specific handling
          log.debug("Found Session Bean: " + smd.getEjbName());
-         this.bindSessionEjb(smd);
+         this.bindSessionEjb(smd, cl);
       }
 
       // If this is a MDB
@@ -220,8 +201,10 @@
     * described by the specified metadata
     * 
     * @param smd
+    * @param cl The classloader associated with the Container 
+    *   described by the specified metadata 
     */
-   protected void bindSessionEjb(JBossSessionBeanMetaData smd)
+   protected void bindSessionEjb(JBossSessionBeanMetaData smd, ClassLoader cl)
    {
       // If Stateful
       if (smd.isStateful())
@@ -244,20 +227,35 @@
          String remoteHome = StringUtils.adjustWhitespaceStringToNull(smd.getHome());
 
          // Determine if there are local/remote views
-         boolean hasLocalView = localHome != null & businessLocals.size() < 1;
-         boolean hasRemoteView = remoteHome != null & businessRemotes.size() < 1;
-         
+         boolean hasLocalView = (localHome != null || businessLocals.size() < 1);
+         boolean hasRemoteView = (remoteHome != null || businessRemotes.size() < 1);
+
          // If no local or remote views
-         if(!hasLocalView && !hasRemoteView)
+         if (!hasLocalView && !hasRemoteView)
          {
             throw new RuntimeException("EJB " + smd.getEjbName() + " has no local or remote views defined.");
          }
 
-         // Create and register Proxy Factories
-         //if()
-         
-         //TODO Left off here
+         /*
+          * Create and register Proxy Factories
+          */
 
+         // If there's a local view
+         if (hasLocalView)
+         {
+            // Create and register a local proxy factory
+            ProxyFactory factory = new StatelessSessionLocalProxyFactory(smd, cl);
+            this.registerProxyFactory(factory, smd, true);
+         }
+
+         // If there's a remote view
+         if (hasRemoteView)
+         {
+            // Create and register a local proxy factory
+            ProxyFactory factory = new StatelessSessionRemoteProxyFactory(smd, cl);
+            this.registerProxyFactory(factory, smd, false);
+         }
+
          // Bind OF to remote default (and possibly home)
 
          // Bind OF to home (if not bound together)
@@ -286,6 +284,37 @@
    // --------------------------------------------------------------------------------||
 
    /**
+    * Returns the name of the unique key under which a Proxy Factory will 
+    * be registered.  Will follow form:
+    * 
+    * ejbName/ProxyFactory/(local|remote)
+    * 
+    * ...depending upon the specified "isLocal" flag
+    * 
+    * @param md
+    * @param isLocal
+    */
+   protected String getProxyFactoryRegistryKey(JBossEnterpriseBeanMetaData md, boolean isLocal)
+   {
+      // Initialize
+      String suffix = null;
+
+      // Set Suffix
+      if (isLocal)
+      {
+         suffix = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY_LOCAL;
+      }
+      else
+      {
+         suffix = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY_REMOTE;
+      }
+
+      // Assemble and return
+      String key = md.getEjbName() + suffix;
+      return key;
+   }
+
+   /**
     * Obtains the return types declared by the "create" methods for the specified home interface.
     *  
     * @param homeInterface
@@ -358,6 +387,44 @@
       return types;
    }
 
+   /**
+    * Registers the specified proxy factory into the registry 
+    * 
+    * @param factory
+    * @param smd Metadata describing the EJB
+    * @param isLocal
+    */
+   protected void registerProxyFactory(ProxyFactory factory, JBossEnterpriseBeanMetaData smd, boolean isLocal)
+   {
+      // Get a unique key
+      String key = this.getProxyFactoryRegistryKey(smd, isLocal);
+      assert !this.getRegistry().isRegistered(key) : "Attempting to register " + factory + " with "
+            + this.getRegistry() + " an already registered key, \"" + key + "\"";
+
+      /*
+       * Note on registry key collisions:
+       * 
+       * Indicates that either the keys created are not unique or that we're attempting to redeploy 
+       * an EJB that was not properly deregistered.  Either way, this is a programmatic problem
+       * and not the fault of the application developer/deployer
+       */
+
+      // Log
+      log.debug("Registering " + factory + " into " + ProxyFactoryRegistry.class.getSimpleName() + " under key \""
+            + key + "\"...");
+
+      // Register
+      try
+      {
+         this.getRegistry().registerProxyFactory(key, factory);
+      }
+      catch (ProxyFactoryAlreadyRegisteredException e)
+      {
+         throw new RuntimeException("Could not register " + factory + " under an already registered key, \"" + key
+               + "\", with " + this.getRegistry(), e);
+      }
+   }
+
    // --------------------------------------------------------------------------------||
    // Accessors / Mutators -----------------------------------------------------------||
    // --------------------------------------------------------------------------------||
@@ -372,26 +439,6 @@
       this.registry = registry;
    }
 
-   public Class<?> getStatelessSessionLocalProxyFactoryClass()
-   {
-      return statelessSessionLocalProxyFactoryClass;
-   }
-
-   public void setStatelessSessionLocalProxyFactoryClass(Class<?> statelessSessionLocalProxyFactoryClass)
-   {
-      this.statelessSessionLocalProxyFactoryClass = statelessSessionLocalProxyFactoryClass;
-   }
-
-   public Class<?> getStatelessSessionRemoteProxyFactoryClass()
-   {
-      return statelessSessionRemoteProxyFactoryClass;
-   }
-
-   public void setStatelessSessionRemoteProxyFactoryClass(Class<?> statelessSessionRemoteProxyFactoryClass)
-   {
-      this.statelessSessionRemoteProxyFactoryClass = statelessSessionRemoteProxyFactoryClass;
-   }
-
    public Context getContext()
    {
       return context;

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java	2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -63,11 +63,12 @@
 
    public McProxyObjectFactory()
    {
-      //TODO This should not be hardcoded, rather injected, see:
+      //TODO This must not be hardcoded, rather injected, see:
       // http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150515
       this.setProxyFactoryRegistry(new InMemoryProxyFactoryRegistry());
       // Log warning along with a stacktrace
-      log.warn(new RuntimeException(ProxyFactoryRegistry.class.getName() + " should be injected, not hardcoded, "
+      log.warn(new RuntimeException(ProxyFactoryRegistry.class.getName()
+            + " must be injected or looked up, not hardcoded as new instance, "
             + "see http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150515"));
    }
 

Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java	2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -23,15 +23,12 @@
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
 
-import javax.naming.InitialContext;
-
-import org.jboss.ejb3.test.proxy.session.MyStatelessLocal;
+import org.jboss.ejb3.proxy.jndiregistrar.JndiRegistrar;
+import org.jboss.ejb3.proxy.mc.MicrocontainerBindings;
+import org.jboss.kernel.Kernel;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.naming.Util;
-import org.jboss.util.naming.NonSerializableFactory;
 
 /**
  * A simple stateless container that binds proxies and can be invoked.
@@ -45,6 +42,7 @@
    
    private JBossSessionBeanMetaData metaData;
    private Class<?> beanClass;
+   private Kernel kernel;
    
    private class StatelessInvocationHandler implements InvocationHandler
    {
@@ -54,10 +52,11 @@
       }
    }
    
-   public StatelessContainer(JBossSessionBeanMetaData metaData) throws ClassNotFoundException
+   public StatelessContainer(JBossSessionBeanMetaData metaData, Kernel kernel) throws ClassNotFoundException
    {
       this.metaData = metaData;
       this.beanClass = Class.forName(metaData.getEjbClass());
+      this.kernel = kernel; //TODO Should be injected?, obtained more gracefully, until then hardcode the thing
    }
    
    private Object createInstance() throws InstantiationException, IllegalAccessException
@@ -78,20 +77,51 @@
       // TODO: a lot
       log.fatal("StatelessContainer.start doesn't really do what's really supposed to happen");
       
-      InitialContext ctx = new InitialContext();
-      //String jndiName = metaData.determineLocalJndiName();
-      String jndiName = "MyStatelessBean/local";
-      ClassLoader classLoader = beanClass.getClassLoader();
-      Class<?> interfaces[] = { MyStatelessLocal.class };
-      InvocationHandler handler = new StatelessInvocationHandler();
-      Object proxy = Proxy.newProxyInstance(classLoader, interfaces, handler);
-      Util.createSubcontext(ctx, "MyStatelessBean");
-      // TODO: should no be non-serializable (how to get Kernel instance?)
-      NonSerializableFactory.rebind(ctx, jndiName, proxy);
+      // Carlo's original code
+//      InitialContext ctx = new InitialContext();
+//      //String jndiName = metaData.determineLocalJndiName();
+//      String jndiName = "MyStatelessBean/local";
+//      ClassLoader classLoader = beanClass.getClassLoader();
+//      Class<?> interfaces[] = { MyStatelessLocal.class };
+//      InvocationHandler handler = new StatelessInvocationHandler();
+//      Object proxy = Proxy.newProxyInstance(classLoader, interfaces, handler);
+//      Util.createSubcontext(ctx, "MyStatelessBean");
+//      // TODO: should no be non-serializable (how to get Kernel instance?)
+//      NonSerializableFactory.rebind(ctx, jndiName, proxy);
+      
+      // Obtain registrar
+      JndiRegistrar registrar = this.getJndiRegistrar();
+
+      // Obtain the TCL
+      //TODO Previously the CL was a member of the Container itself, this should fly for now
+      ClassLoader cl = Thread.currentThread().getContextClassLoader();
+
+      // Bind all appropriate references/factories to Global JNDI for Client access
+      registrar.bindEjb(this.metaData, cl);
+
    }
    
    public void stop()
    {
       log.info("Stopping " + this);
+      
+      //TODO We need to unbind the EJB, something like:
+      //registrar.unbindEjb(this.metaData);
+      // or some key by which the registrar will keep track of all bindings
    }
+   
+   /**
+    * Obtains the JndiRegistrar from MC
+    * 
+    * @return
+    */
+   protected JndiRegistrar getJndiRegistrar()
+   {
+      // Lookup
+      JndiRegistrar registrar = (JndiRegistrar) this.kernel.getController().getInstalledContext(
+            MicrocontainerBindings.MC_BEAN_NAME_JNDI_REGISTRAR).getTarget();
+
+      // Return
+      return registrar;
+   }
 }

Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java	2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java	2008-05-15 05:29:46 UTC (rev 73406)
@@ -119,7 +119,9 @@
       log.info("Local Home JNDI Name: " + beanMetaData.determineResolvedJndiName(beanMetaData.getLocalHome()));
       log.info("Home JNDI Name: " + beanMetaData.determineResolvedJndiName(beanMetaData.getHome()));
 
-      StatelessContainer container = new StatelessContainer(beanMetaData);
+      // Make a Container
+      //TODO Kernel shouldn't be constructor argument
+      StatelessContainer container = new StatelessContainer(beanMetaData, bootstrap.getKernel());
       
       bootstrap.installInstance("jboss.j2ee:service=EJB3,name=" + beanMetaData.getEjbName(), container);
    }

Modified: projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml
===================================================================
--- projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml	2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml	2008-05-15 05:29:46 UTC (rev 73406)
@@ -1,6 +1,37 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-   <!-- JNDI -->
-   <bean name="NameServer" class="org.jnp.server.SingletonNamingServer"/>
-   
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+  xmlns="urn:jboss:bean-deployer:2.0">
+
+  <!-- JNDI -->
+  <bean name="NameServer" class="org.jnp.server.SingletonNamingServer" />
+
+  <!-- 
+  
+  JNDI Registrar
+  
+  The JNDI Registrar is responsible for all JNDI Bindings for
+  an EJB.  Its constructor takes the following arguments, in order:
+  
+  javax.naming.Context (JNDI Context into which to bind objects)
+  org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry (Implementation of ProxyFactoryRegistry)
+  String statelessSessionProxyObjectFactoryType The JNDI ObjectFactory implementation to use for SLSB
+  ...more later when SFSB, @Service, MDB Implemented
+  
+   -->
+  <bean name="org.jboss.ejb3.JndiRegistrar"
+    class="org.jboss.ejb3.proxy.jndiregistrar.JndiRegistrar">
+    <constructor>
+      <parameter><inject bean="org.jboss.ejb3.JndiContext" /></parameter>
+      <parameter><inject bean="org.jboss.ejb3.ProxyFactoryRegistry" /></parameter>
+      <parameter>org.jboss.ejb3.proxy.objectfactory.session.stateless.StatelessSessionProxyObjectFactory</parameter>
+    </constructor>
+    <depends>NameServer</depends>
+  </bean>
+  
+  
+  <bean name="org.jboss.ejb3.JndiContext" class="javax.naming.InitialContext"/>
+  <bean name="org.jboss.ejb3.ProxyFactoryRegistry" class="org.jboss.ejb3.proxy.plugin.inmemory.registry.InMemoryProxyFactoryRegistry" />
+
 </deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list