[jboss-cvs] JBossAS SVN: r73404 - in projects/ejb3/trunk/proxy: src/main/java/org/jboss/ejb3/proxy and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed May 14 21:37:30 EDT 2008


Author: ALRubinger
Date: 2008-05-14 21:37:30 -0400 (Wed, 14 May 2008)
New Revision: 73404

Added:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/ProxyFactoryBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionProxyFactoryBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/
   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/mc/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/mc/MicrocontainerBindings.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateful/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateful/StatefulSessionProxyObjectFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateless/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateless/StatelessSessionProxyObjectFactory.java
Modified:
   projects/ejb3/trunk/proxy/.classpath
   projects/ejb3/trunk/proxy/.project
   projects/ejb3/trunk/proxy/pom.xml
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java
   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/session/SessionProxyObjectFactory.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockLifecycleSessionProxyFactory.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockSessionProxyFactory.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/ProxyFactoryRegistryUnitTestCaseBase.java
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java
Log:
[EJBTHREE-1345] Create JNDI Registrar, ProxyFactory Hierarchy.

Modified: projects/ejb3/trunk/proxy/.classpath
===================================================================
--- projects/ejb3/trunk/proxy/.classpath	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/.classpath	2008-05-15 01:37:30 UTC (rev 73404)
@@ -1,10 +1,46 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
-	<classpathentry kind="src" output="eclipse-target/tests-classes" path="src/test/java"/>
-	<classpathentry excluding="**/*.java" kind="src" output="eclipse-target/tests-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="output" path="eclipse-target/classes"/>
-</classpath>
+  <classpathentry kind="src" path="src/main/java"/>
+  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+  <classpathentry kind="src" path="src/test/java" output="target/tests-classes"/>
+  <classpathentry kind="src" path="src/test/resources" output="target/tests-classes" excluding="**/*.java"/>
+  <classpathentry kind="output" path="target/classes"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.0.2/activation-1.0.2.jar"/>
+  <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar" sourcepath="M2_REPO/ant/ant/1.6.5/ant-1.6.5-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/javassist/3.6.0.GA/javassist-3.6.0.GA.jar" sourcepath="M2_REPO/org/jboss/javassist/3.6.0.GA/javassist-3.6.0.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar" sourcepath="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR7/jboss-aop-2.0.0.CR7.jar" sourcepath="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR7/jboss-aop-2.0.0.CR7-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta10/jboss-container-2.0.0.Beta10.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta10/jboss-container-2.0.0.Beta10-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta13/jboss-dependency-2.0.0.Beta13.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta13/jboss-dependency-2.0.0.Beta13-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-common/0.1.0-SNAPSHOT/jboss-ejb3-common-0.1.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-common/0.1.0-SNAPSHOT/jboss-ejb3-common-0.1.0-SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3/jboss-ejb3-ext-api-0.3.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3/jboss-ejb3-ext-api-0.3-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxrpc/1.0.4.GA/jboss-jaxrpc-1.0.4.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-jaxws/2.0.1.GA/jboss-jaxws-2.0.1.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.CR1/jboss-jms-api-1.1.0.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.CR1/jboss-jms-api-1.1.0.CR1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-kernel/2.0.0.Beta13/jboss-kernel-2.0.0.Beta13.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-kernel/2.0.0.Beta13/jboss-kernel-2.0.0.Beta13-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA.jar" sourcepath="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-managed/2.0.0.Beta10/jboss-managed-2.0.0.Beta10.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-managed/2.0.0.Beta10/jboss-managed-2.0.0.Beta10-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-mdr/2.0.0.Beta15/jboss-mdr-2.0.0.Beta15.jar" sourcepath="M2_REPO/org/jboss/jboss-mdr/2.0.0.Beta15/jboss-mdr-2.0.0.Beta15-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/metadata/jboss-metadata/1.0.0.Beta15/jboss-metadata-1.0.0.Beta15.jar" sourcepath="M2_REPO/org/jboss/metadata/jboss-metadata/1.0.0.Beta15/jboss-metadata-1.0.0.Beta15-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-metatype/2.0.0.Beta10/jboss-metatype-2.0.0.Beta10.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-metatype/2.0.0.Beta10/jboss-metatype-2.0.0.Beta10-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-persistence-api/3.0.0.CR1/jboss-persistence-api-3.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-persistence-api/3.0.0.CR1/jboss-persistence-api-3.0.0.CR1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-reflect/2.0.0.Beta12/jboss-reflect-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/jboss-reflect/2.0.0.Beta12/jboss-reflect-2.0.0.Beta12-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.CR1/jboss-transaction-api-1.0.1.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.CR1/jboss-transaction-api-1.0.1.CR1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta11/jboss-vfs-2.0.0.Beta11.jar" sourcepath="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta11/jboss-vfs-2.0.0.Beta11-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.3.GA/jbossws-spi-1.0.3.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR9/jbossxb-2.0.0.CR9.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.0.CR9/jbossxb-2.0.0.CR9-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/qdox/qdox/1.6/qdox-1.6.jar" sourcepath="M2_REPO/qdox/qdox/1.6/qdox-1.6-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar" sourcepath="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/trove/trove/1.0.2/trove-1.0.2.jar"/>
+  <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
+</classpath>
\ No newline at end of file

Modified: projects/ejb3/trunk/proxy/.project
===================================================================
--- projects/ejb3/trunk/proxy/.project	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/.project	2008-05-15 01:37:30 UTC (rev 73404)
@@ -1,23 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>jboss-ejb3-proxy</name>
-	<comment>JBoss EJB3 Proxy Component</comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-	</natures>
-</projectDescription>
+  <name>jboss-ejb3-proxy</name>
+  <comment>JBoss EJB3 Proxy Component</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
+</projectDescription>
\ No newline at end of file

Modified: projects/ejb3/trunk/proxy/pom.xml
===================================================================
--- projects/ejb3/trunk/proxy/pom.xml	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/pom.xml	2008-05-15 01:37:30 UTC (rev 73404)
@@ -124,6 +124,12 @@
       <scope>compile</scope>
     </dependency>
     
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-common</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+    </dependency>
+    
   </dependencies>
 
 </project>

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/ProxyFactoryBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/ProxyFactoryBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/ProxyFactoryBase.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,110 @@
+/*
+ * 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;
+
+import org.jboss.logging.Logger;
+
+/**
+ * ProxyFactoryBase
+ * 
+ * A Base upon which Proxy Factory Implementations may build
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class ProxyFactoryBase implements ProxyFactory
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final Logger log = Logger.getLogger(ProxyFactoryBase.class);
+
+   // --------------------------------------------------------------------------------||
+   // Instance Members ---------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private ClassLoader classloader;
+
+   // --------------------------------------------------------------------------------||
+   // Constructor --------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param classloader The ClassLoader associated with the EJBContainer
+    *       for which this ProxyFactory is to generate Proxies
+    */
+   public ProxyFactoryBase(final ClassLoader classloader)
+   {
+      this.setClassLoader(classloader);
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Lifecycle Methods --------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+    * before the ProxyFactory is able to service requests
+    * 
+    *  @throws Exception
+    */
+   public void start() throws Exception
+   {
+      // Log
+      log.debug("Started: " + this);
+
+      //TODO
+   }
+
+   /**
+    * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+    * before the ProxyFactory is taken out of service, 
+    * possibly GC'd
+    * 
+    * @throws Exception
+    */
+   public void stop() throws Exception
+   {
+      // Log
+      log.debug("Stopped: " + this);
+
+      //TODO
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Accessors / Mutators -----------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   public ClassLoader getClassLoader()
+   {
+      return classloader;
+   }
+
+   protected void setClassLoader(final ClassLoader classloader)
+   {
+      this.classloader = classloader;
+   }
+
+}

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -71,4 +71,11 @@
     * @return
     */
    Object createProxyBusiness(String businessInterfaceName);
+
+   /**
+    * Create an EJB2.x Proxy 
+    * 
+    * @return
+    */
+   Object createProxyEjb2x();
 }

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,242 @@
+/*
+ * 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;
+
+import java.lang.reflect.Constructor;
+import java.util.Map;
+
+import org.jboss.ejb3.proxy.factory.ProxyFactoryBase;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * SessionProxyFactoryBase
+ * 
+ * Base upon which Session Proxy Factory implementations
+ * may build
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class SessionProxyFactoryBase extends ProxyFactoryBase implements SessionProxyFactory
+{
+
+   // --------------------------------------------------------------------------------||
+   // Instance Members ---------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private JBossSessionBeanMetaData metadata;
+
+   /**
+    * Constructor for the default Proxy Constructor (All
+    * business interfaces and, if bound together, the EJB2.x Home)
+    */
+   private Constructor<?> constructorProxyDefault;
+
+   /**
+    * Map of Proxy Constructors, one per business interface, with key 
+    * as the fully-qualified class name of the interface, and value
+    * of the constructor to use
+    */
+   private Map<String, Constructor<?>> constructorsProxySpecificBusinessInterface;
+
+   /**
+    * Constructor for the EJB2.x Home Proxy
+    */
+   private Constructor<?> constructorProxyHome;
+
+   /**
+    * Constructor for the EJB2.x View Proxy
+    */
+   private Constructor<?> constructorProxyEjb2x;
+
+   // --------------------------------------------------------------------------------||
+   // Constructor --------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param metadata The metadata representing this Session Bean
+    * @param classloader The ClassLoader associated with the SessionContainer
+    *       for which this ProxyFactory is to generate Proxies
+    */
+   public SessionProxyFactoryBase(final JBossSessionBeanMetaData metadata, final ClassLoader classloader)
+   {
+      // Call Super
+      super(classloader);
+
+      // Set metadata
+      this.setMetadata(metadata);
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Functional Methods -------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Create an EJB2.x Home Proxy
+    * 
+    * @return
+    */
+   public Object createProxyHome()
+   {
+      //return this.getConstructorProxyHome().newInstance(INVOCATION_HANDLER);
+      //TODO Make InvocationHandlers
+      return null;
+   }
+
+   /**
+    * Create an EJB3 Business proxy with no 
+    * specific target business interface.  The 
+    * returned proxy will implement all appropriate
+    * business interfaces. 
+    * 
+    * @return
+    */
+   public Object createProxyBusiness()
+   {
+      return null;//TODO
+   }
+
+   /**
+    * Create a Proxy for both EJB2.x Home and 
+    * Business Views, used when both the Home and Business
+    * interfaces are bound together
+    * 
+    * @return
+    */
+   public Object createProxyBusinessAndHome()
+   {
+      return null;//TODO
+   }
+
+   /**
+    * Create an EJB3 Business Proxy specific to the specified
+    * target business interface name (expressed as 
+    * a fully-qualified class name)
+    * 
+    * @param id
+    * @param businessInterfaceName
+    * @return
+    */
+   public Object createProxyBusiness(String businessInterfaceName)
+   {
+      return null;//TODO
+   }
+
+   /**
+    * Create an EJB2.x Proxy 
+    * 
+    * @return
+    */
+   public Object createProxyEjb2x()
+   {
+      return null;//TODO
+   }
+
+   // --------------------------------------------------------------------------------||
+   // 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
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Accessors / Mutators -----------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   public JBossSessionBeanMetaData getMetadata()
+   {
+      return metadata;
+   }
+
+   protected void setMetadata(final JBossSessionBeanMetaData metadata)
+   {
+      this.metadata = metadata;
+   }
+
+   protected Constructor<?> getConstructorProxyDefault()
+   {
+      return constructorProxyDefault;
+   }
+
+   protected void setConstructorProxyDefault(Constructor<?> constructorProxyDefault)
+   {
+      this.constructorProxyDefault = constructorProxyDefault;
+   }
+
+   protected Map<String, Constructor<?>> getConstructorsProxySpecificBusinessInterface()
+   {
+      return constructorsProxySpecificBusinessInterface;
+   }
+
+   protected void setConstructorsProxySpecificBusinessInterface(
+         Map<String, Constructor<?>> constructorsProxySpecificBusinessInterface)
+   {
+      this.constructorsProxySpecificBusinessInterface = constructorsProxySpecificBusinessInterface;
+   }
+
+   protected Constructor<?> getConstructorProxyHome()
+   {
+      return constructorProxyHome;
+   }
+
+   protected void setConstructorProxyHome(Constructor<?> constructorProxyHome)
+   {
+      this.constructorProxyHome = constructorProxyHome;
+   }
+
+   protected Constructor<?> getConstructorProxyEjb2x()
+   {
+      return constructorProxyEjb2x;
+   }
+
+   protected void setConstructorProxyEjb2x(Constructor<?> constructorProxyEjb2x)
+   {
+      this.constructorProxyEjb2x = constructorProxyEjb2x;
+   }
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -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;
+
+/**
+ * StatelessSessionLocalProxyFactory
+ * 
+ * A SLSB Proxy Factory for Local Views
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessSessionLocalProxyFactory extends StatelessSessionProxyFactoryBase implements SessionProxyFactory
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final Logger logger = Logger.getLogger(StatelessSessionLocalProxyFactory.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 StatelessSessionLocalProxyFactory(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
+   }
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionProxyFactoryBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionProxyFactoryBase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionProxyFactoryBase.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,85 @@
+/*
+ * 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.ejb3.proxy.factory.session.SessionProxyFactoryBase;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * StatelessSessionProxyFactoryBase
+ * 
+ * Base upon which SLSB Proxy Factories may build
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class StatelessSessionProxyFactoryBase extends SessionProxyFactoryBase implements SessionProxyFactory
+{
+   // --------------------------------------------------------------------------------||
+   // 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 StatelessSessionProxyFactoryBase(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
+   }
+}

Added: 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	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,415 @@
+/*
+ * 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.jndiregistrar;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.ejb.EJBHome;
+import javax.ejb.EJBLocalHome;
+import javax.naming.Context;
+import javax.naming.spi.ObjectFactory;
+
+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.spi.registry.ProxyFactoryRegistry;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
+import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
+
+/**
+ * JndiRegistrar
+ * 
+ * Responsible for binding of ObjectFactories and
+ * creation/registration of associated ProxyFactories 
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class JndiRegistrar
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final Logger log = Logger.getLogger(JndiRegistrar.class);
+
+   // --------------------------------------------------------------------------------||
+   // Instance Members ---------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Context under which we'll bind to JNDI
+    */
+   private Context context;
+
+   /**
+    * Implementation of ProxyFactoryRegistry to use
+    */
+   private ProxyFactoryRegistry registry;
+
+   /**
+    * Class of the SLSB Local Proxy Factory
+    */
+   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
+
+   // --------------------------------------------------------------------------------||
+   // Constructor --------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Creates a JNDI Deployer from the specified configuration properties, none of
+    * which may be null.
+    * 
+    * @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)
+   {
+      // 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);
+
+      // Set the ProxyFactoryRegistry
+      assert registry != null : this + " may not be configured with null  " + ProxyFactoryRegistry.class.getName();
+      this.setRegistry(registry);
+      log.debug(this + " using " + 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);
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Functional Methods -------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Binds into JNDI all appropriate objects required 
+    * by the EJB described by the specified metadata.  Additionally
+    * responsible for creation and registration of any all ProxyFactory
+    * implementations required by the EJB
+    * 
+    * @param md
+    * @param containerCl The CL of the Container
+    */
+   public void bindEjb(JBossEnterpriseBeanMetaData md, ClassLoader containerCl)
+   {
+      // If we've got a SessionBean
+      if (md.isSession())
+      {
+         // Assert castable
+         assert (md instanceof JBossSessionBeanMetaData) : md + " claims to be a Session Bean but is not of type "
+               + JBossSessionBeanMetaData.class.getName();
+         JBossSessionBeanMetaData smd = null;
+         try
+         {
+            smd = JBossSessionBeanMetaData.class.cast(md);
+         }
+         catch (ClassCastException cce)
+         {
+            throw new RuntimeException(md + " claiming to be Session Bean could not be cast to "
+                  + JBossSessionBeanMetaData.class.getName(), cce);
+         }
+
+         // Delegate out to session-specific handling
+         log.debug("Found Session Bean: " + smd.getEjbName());
+         this.bindSessionEjb(smd);
+      }
+
+      // If this is a MDB
+      else if (md.isMessageDriven())
+      {
+         //TODO MDB Impl
+         return;
+      }
+
+      //TODO If this is @Service
+      else if (md.isService())
+      {
+         //TODO @Service Impl
+         return;
+      }
+      // Does not report itself as a supported bean type
+      else
+      {
+         // Should not be reached
+         throw new RuntimeException(md
+               + " reports that it is not Session, Service, or Message-Driven; it must be one of these.");
+      }
+   }
+
+   /**
+    * Binds into JNDI all objects appropriate for the Session Bean
+    * described by the specified metadata
+    * 
+    * @param smd
+    */
+   protected void bindSessionEjb(JBossSessionBeanMetaData smd)
+   {
+      // If Stateful
+      if (smd.isStateful())
+      {
+         //TODO Implement SFSB
+      }
+      // If Stateless
+      else if (smd.isStateless())
+      {
+         // Get Business Locals
+         BusinessLocalsMetaData businessLocals = smd.getBusinessLocals();
+
+         // Get Business Remotes
+         BusinessRemotesMetaData businessRemotes = smd.getBusinessRemotes();
+
+         // Get Local Home
+         String localHome = StringUtils.adjustWhitespaceStringToNull(smd.getLocalHome());
+
+         // Get Remote Home
+         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;
+         
+         // If no local or remote views
+         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
+
+         // Bind OF to remote default (and possibly home)
+
+         // Bind OF to home (if not bound together)
+
+         // Bind OF to each remote business
+
+         // Bind OF to local default (and possibly localHome)
+
+         // Bind OF to localHome (if not bound together)
+
+         // Bind OF to each local business
+
+      }
+      // Not SLSB or SFSB, error
+      else
+      {
+         // Should not be reached
+         throw new RuntimeException(smd
+               + " reports that it is neither Stateful nor Stateless, but Session Bean must be one of these.");
+      }
+
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Helper Methods -----------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Obtains the return types declared by the "create" methods for the specified home interface.
+    *  
+    * @param homeInterface
+    * @param isStateless Flag to indicate whether this is for a Stateful or Stateless container
+    * @return
+    */
+   protected Set<Class<?>> getReturnTypesFromCreateMethods(Class<?> homeInterface, boolean isStateless)
+   {
+      // Ensure we've been passed a Home or LocalHome interface
+      assert (EJBHome.class.isAssignableFrom(homeInterface) || EJBLocalHome.class.isAssignableFrom(homeInterface));
+      if (!EJBHome.class.isAssignableFrom(homeInterface) && !EJBLocalHome.class.isAssignableFrom(homeInterface))
+      {
+         throw new RuntimeException("Declared EJB 2.1 Home Interface " + homeInterface.getName() + " does not extend "
+               + EJBHome.class.getName() + " or " + EJBLocalHome.class.getName()
+               + " as required by EJB 3.0 Core Specification 4.6.8 and 4.6.10");
+      }
+
+      // Initialize
+      Set<Class<?>> types = new HashSet<Class<?>>();
+      List<Method> createMethods = null;
+
+      // If for a Stateless Container
+      if (isStateless)
+      {
+         // Initialize error message
+         String specViolationErrorMessage = "EJB 3.0 Specification Violation (4.6.8 Bullet 4, 4.6.10 Bullet 4): \""
+               + "A stateless session bean must define exactly one create method with no arguments." + "\"; found in "
+               + homeInterface.getName();
+
+         // Get all methods with signature "create"
+         createMethods = new ArrayList<Method>();
+         try
+         {
+            createMethods.add(homeInterface.getMethod("create", new Class<?>[]
+            {}));
+         }
+         // EJB 3.0 Specification 4.6.8 Bullet 4 Violation
+         // EJBTHREE-1156
+         catch (NoSuchMethodException e)
+         {
+            throw new RuntimeException(specViolationErrorMessage);
+         }
+
+         // Ensure only one create method is defined
+         // EJB 3.0 Specification 4.6.8 Bullet 4 Violation
+         // EJBTHREE-1156
+         if (createMethods.size() > 1)
+         {
+            throw new RuntimeException(specViolationErrorMessage);
+         }
+      }
+      else
+      {
+         // Obtain all "create<METHOD>" methods
+         createMethods = ClassHelper.getAllMethodsByPrefix(homeInterface, "create");
+      }
+      if (createMethods.size() == 0)
+      {
+         throw new RuntimeException("EJB 3.0 Core Specification Violation (4.6.8 Bullet 5): EJB2.1 Home Interface "
+               + homeInterface + " does not declare a \'create<METHOD>\' method");
+      }
+
+      // Add all return types
+      for (Method method : createMethods)
+      {
+         types.add(method.getReturnType());
+      }
+
+      // Return
+      return types;
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Accessors / Mutators -----------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   public ProxyFactoryRegistry getRegistry()
+   {
+      return registry;
+   }
+
+   public void setRegistry(ProxyFactoryRegistry registry)
+   {
+      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;
+   }
+
+   public void setContext(Context context)
+   {
+      this.context = context;
+   }
+
+   public String getStatelessSessionProxyObjectFactoryType()
+   {
+      return statelessSessionProxyObjectFactoryType;
+   }
+
+   public void setStatelessSessionProxyObjectFactoryType(String statelessSessionProxyObjectFactoryType)
+   {
+      this.statelessSessionProxyObjectFactoryType = statelessSessionProxyObjectFactoryType;
+   }
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/mc/MicrocontainerBindings.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/mc/MicrocontainerBindings.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/mc/MicrocontainerBindings.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,49 @@
+/*
+ * 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.mc;
+
+/**
+ * MicrocontainerBindings
+ * 
+ * Defines constants used in binding POJOs to
+ * Microcontainer
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public interface MicrocontainerBindings
+{
+   // --------------------------------------------------------------------------------||
+   // Constants ----------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   String MC_EJB3_NAMESPACE = "org.jboss.ejb3.";
+
+   /*
+    * The following are Bindings used as MC Bean Names
+    */
+
+   String MC_BEAN_NAME_PROXY_FACTORY_REGISTRY = MicrocontainerBindings.MC_EJB3_NAMESPACE + "ProxyFactoryRegistry";
+
+   String MC_BEAN_NAME_JNDI_REGISTRAR = MicrocontainerBindings.MC_EJB3_NAMESPACE + "JndiRegistrar";
+   
+}

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 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -25,7 +25,9 @@
 
 import javax.naming.spi.ObjectFactory;
 
+import org.jboss.ejb3.proxy.plugin.inmemory.registry.InMemoryProxyFactoryRegistry;
 import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry;
+import org.jboss.logging.Logger;
 
 /**
  * McProxyObjectFactory
@@ -44,19 +46,35 @@
    // --------------------------------------------------------------------------------||
 
    private static final long serialVersionUID = 7854430641125529016L;
-   
+
+   private static final Logger log = Logger.getLogger(McProxyObjectFactory.class);
+
    // --------------------------------------------------------------------------------||
    // Instance Members ---------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
 
    //TODO
-   // Inject from MC via AOP upon instanciation
+   // Inject from MC, must be configurable
    private ProxyFactoryRegistry proxyFactoryRegistry;
 
    // --------------------------------------------------------------------------------||
+   // Constructor --------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   public McProxyObjectFactory()
+   {
+      //TODO This should 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, "
+            + "see http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150515"));
+   }
+
+   // --------------------------------------------------------------------------------||
    // Accessors / Mutators -----------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
+
    @Override
    protected ProxyFactoryRegistry getProxyFactoryRegistry()
    {

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -38,14 +38,14 @@
 /**
  * SessionProxyObjectFactory
  * 
- * A JNDI Object Factory responsible for parsing metadata
+ * A Base JNDI Object Factory responsible for parsing metadata
  * obtained from Reference Address information, and
  * returning the appropriate Session Proxy
  *
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class SessionProxyObjectFactory extends McProxyObjectFactory
+public abstract class SessionProxyObjectFactory extends McProxyObjectFactory
 {
 
    // --------------------------------------------------------------------------------||
@@ -59,24 +59,11 @@
    // --------------------------------------------------------------------------------||
    // Required Implementations  ------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
-   /*
-    * TODO
-    * 
-    * This implementation simply creates a new proxy upon each lookup.  We should
-    * improve performance by providing an additional implementation for SLSB
-    * which employs a caching mechanism to cache:
-    * 
-    * Home
-    * Business
-    * One per interface-specific business
-    */
 
    @Override
    protected Object getProxy(ProxyFactory proxyFactory, Name name, Map<String, List<String>> referenceAddresses)
    {
       // Initialize
-
       Object proxy = null;
 
       // Determine if a home is defined here
@@ -92,7 +79,15 @@
       // Obtain Proxy Factory
       SessionProxyFactory factory = null;
       Object pFactory = null;
-      String proxyFactoryRegistryKey = ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY;
+      List<String> proxyFactoryRegistryKeys = referenceAddresses
+            .get(ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY);
+      assert proxyFactoryRegistryKeys != null : "Required " + RefAddr.class.getSimpleName() + " of type "
+            + ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY
+            + " is required present in JNDI at " + name.toString() + " but was not found";
+      assert proxyFactoryRegistryKeys.size() == 1 : "Exactly one " + RefAddr.class.getSimpleName() + " of type "
+            + ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY
+            + " should be defined but instead found " + proxyFactoryRegistryKeys;
+      String proxyFactoryRegistryKey = proxyFactoryRegistryKeys.get(0);
       assert proxyFactoryRegistryKey != null && !proxyFactoryRegistryKey.equals("") : "Required "
             + RefAddr.class.getSimpleName() + " of type "
             + ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY
@@ -100,8 +95,7 @@
       try
       {
          // Get the Factory
-         pFactory = registry
-               .getProxyFactory(ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_FACTORY_REGISTRY_KEY);
+         pFactory = registry.getProxyFactory(proxyFactoryRegistryKey);
          // Cast into a SessionProxyFactory
          factory = SessionProxyFactory.class.cast(pFactory);
          log.debug("Using: " + factory + " as specified from JNDI reference " + name.toString());
@@ -177,7 +171,7 @@
    }
 
    // --------------------------------------------------------------------------------||
-   // Internal Helper Methods  -------------------------------------------------------||
+   // Helper Methods -----------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
 
    /**
@@ -189,7 +183,7 @@
     * @param referenceAddresses
     * @return
     */
-   private boolean hasHome(Name name, Map<String, List<String>> referenceAddresses)
+   protected boolean hasHome(Name name, Map<String, List<String>> referenceAddresses)
    {
       // Initialize
       boolean hasHome = false;
@@ -225,7 +219,7 @@
     * @param referenceAddresses
     * @return
     */
-   private boolean hasBusiness(Name name, Map<String, List<String>> referenceAddresses)
+   protected boolean hasBusiness(Name name, Map<String, List<String>> referenceAddresses)
    {
       // Initialize
       boolean hasBusiness = false;
@@ -254,7 +248,7 @@
     * @param referenceAddresses
     * @return
     */
-   private boolean hasLocalBusiness(Map<String, List<String>> referenceAddresses)
+   protected boolean hasLocalBusiness(Map<String, List<String>> referenceAddresses)
    {
       return referenceAddresses
             .containsKey(ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_BUSINESS_INTERFACE_LOCAL);
@@ -266,7 +260,7 @@
     * @param referenceAddresses
     * @return
     */
-   private boolean hasRemoteBusiness(Map<String, List<String>> referenceAddresses)
+   protected boolean hasRemoteBusiness(Map<String, List<String>> referenceAddresses)
    {
       return referenceAddresses
             .containsKey(ProxyFactoryReferenceAddressTypes.REF_ADDR_TYPE_PROXY_BUSINESS_INTERFACE_REMOTE);

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateful/StatefulSessionProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateful/StatefulSessionProxyObjectFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateful/StatefulSessionProxyObjectFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,43 @@
+/*
+ * 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.objectfactory.session.stateful;
+
+import org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory;
+
+/**
+ * StatefulSessionProxyObjectFactory
+ * 
+ * A JNDI ObjectFactory responsible for returning the
+ * appropriate SFSB Proxy upon lookup
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatefulSessionProxyObjectFactory extends SessionProxyObjectFactory
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members  -----------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final long serialVersionUID = 8754251689879293214L;
+
+}

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateless/StatelessSessionProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateless/StatelessSessionProxyObjectFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/stateless/StatelessSessionProxyObjectFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -0,0 +1,54 @@
+/*
+ * 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.objectfactory.session.stateless;
+
+import org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory;
+
+/**
+ * StatelessSessionProxyObjectFactory
+ * 
+ * A JNDI ObjectFactory responsible for returning the
+ * appropriate SLSB Proxy upon lookup
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessSessionProxyObjectFactory extends SessionProxyObjectFactory
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members  -----------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final long serialVersionUID = 8754251689879293214L;
+   
+   /*
+    * TODO
+    * 
+    * This implementation simply creates a new proxy upon each lookup.  We should
+    * improve performance by providing a caching mechanism to cache:
+    * 
+    * Home
+    * Business
+    * One per interface-specific business
+    */
+
+}

Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockLifecycleSessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockLifecycleSessionProxyFactory.java	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockLifecycleSessionProxyFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -37,25 +37,25 @@
    // --------------------------------------------------------------------------------||
    // Class Members  -----------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
+
    /**
     * The valid states for this Proxy Factory, to be set
     * properly by the lifecycle methods
     */
-   public enum State{
+   public enum State {
       CREATED, STARTED, STOPPED
    }
-   
+
    // --------------------------------------------------------------------------------||
    // Instance Members ---------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
+
    private State state;
 
    // --------------------------------------------------------------------------------||
    // Constructors -------------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
+
    public MockLifecycleSessionProxyFactory()
    {
       this.setState(State.CREATED);
@@ -80,11 +80,11 @@
    {
       this.setState(State.STOPPED);
    }
-   
+
    // --------------------------------------------------------------------------------||
    // Accessors / Mutators -----------------------------------------------------------||
    // --------------------------------------------------------------------------------||
-   
+
    public State getState()
    {
       return state;
@@ -134,4 +134,10 @@
       // TODO Auto-generated method stub
       return null;
    }
+
+   public Object createProxyEjb2x()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
 }

Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockSessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockSessionProxyFactory.java	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/MockSessionProxyFactory.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -89,4 +89,10 @@
 
    }
 
+   public Object createProxyEjb2x()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
 }

Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/ProxyFactoryRegistryUnitTestCaseBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/ProxyFactoryRegistryUnitTestCaseBase.java	2008-05-15 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/registry/ProxyFactoryRegistryUnitTestCaseBase.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -26,6 +26,7 @@
 import junit.framework.TestCase;
 
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
+import org.jboss.ejb3.proxy.mc.MicrocontainerBindings;
 import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryAlreadyRegisteredException;
 import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryNotRegisteredException;
 import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry;
@@ -53,8 +54,6 @@
 
    private static final Logger log = Logger.getLogger(ProxyFactoryRegistryUnitTestCaseBase.class);
 
-   public static final String MC_BEAN_NAME_PROXY_FACTORY_REGISTRY = "org.jboss.ejb3.ProxyFactoryRegistry";
-
    private static final String REGISTRY_KEY_PREFIX = "TestRegistrationKey-";
 
    private static EmbeddedTestMcBootstrap bootstrap;
@@ -365,10 +364,10 @@
             MockLifecycleSessionProxyFactory.class.cast(lookup).getState());
       TestCase.assertEquals("Lifecycle of " + factory + " should be " + MockLifecycleSessionProxyFactory.State.STARTED
             + " before registered", MockLifecycleSessionProxyFactory.State.STARTED, factory.getState());
-      
+
       // Deregister
       registry.deregisterProxyFactory(key);
-      
+
       // Ensure the reference looked up and the reference placed in have state of STOPPED
       TestCase.assertEquals("Lifecycle of " + lookup + " should be " + MockLifecycleSessionProxyFactory.State.STOPPED
             + " before registered", MockLifecycleSessionProxyFactory.State.STOPPED,
@@ -387,7 +386,7 @@
    private ProxyFactoryRegistry getProxyFactoryRegistry() throws Throwable
    {
       ProxyFactoryRegistry registry = ProxyFactoryRegistryUnitTestCaseBase.getBootstrap().lookup(
-            ProxyFactoryRegistryUnitTestCaseBase.MC_BEAN_NAME_PROXY_FACTORY_REGISTRY, ProxyFactoryRegistry.class);
+            MicrocontainerBindings.MC_BEAN_NAME_PROXY_FACTORY_REGISTRY, ProxyFactoryRegistry.class);
       return registry;
    }
 

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 01:30:10 UTC (rev 73403)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java	2008-05-15 01:37:30 UTC (rev 73404)
@@ -43,7 +43,6 @@
 import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.BasicJndiBindingPolicy;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.EjbDeploymentSummary;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.junit.AfterClass;




More information about the jboss-cvs-commits mailing list