[jboss-cvs] JBossAS SVN: r71760 - in projects/ejb3/branches: ejbthree1253/cache/.settings and 17 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 7 09:30:49 EDT 2008


Author: ALRubinger
Date: 2008-04-07 09:30:49 -0400 (Mon, 07 Apr 2008)
New Revision: 71760

Added:
   projects/ejb3/branches/ejbthree1253/
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteHandleImpl.java
Removed:
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHandleImpl.java
Modified:
   projects/ejb3/branches/ejbthree1253/cache/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/core/.classpath
   projects/ejb3/branches/ejbthree1253/core/.project
   projects/ejb3/branches/ejbthree1253/core/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/core/build-test.xml
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/NoPassivationCache.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/StatefulCache.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/simple/SimpleStatefulCache.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionRemoteProxy.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/ProxyDeployer.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/SessionContainer.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHomeRemoteProxy.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxy.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java
   projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java
   projects/ejb3/branches/ejbthree1253/ext-api-impl/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/ext-api/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/injection/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/interceptors/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/locator/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/metadata/.project
   projects/ejb3/branches/ejbthree1253/metadata/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/branches/ejbthree1253/pool/.settings/org.eclipse.jdt.core.prefs
Log:
[EJBTHREE-1253] Work in progress in own branch

Copied: projects/ejb3/branches/ejbthree1253 (from rev 71759, projects/ejb3/trunk)

Modified: projects/ejb3/branches/ejbthree1253/cache/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/cache/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/cache/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:01 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:37 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/core/.classpath
===================================================================
--- projects/ejb3/trunk/core/.classpath	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/.classpath	2008-04-07 13:30:49 UTC (rev 71760)
@@ -5,7 +5,7 @@
   <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/javax/activation/activation/1.1/activation-1.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
@@ -38,8 +38,7 @@
   <classpathentry kind="var" path="M2_REPO/urbanophile/java-getopt/1.0.9/java-getopt-1.0.9.jar"/>
   <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/javassist/3.6.0.GA/javassist-3.6.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.0/jaxb-api-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.0.5/jaxb-api-2.0.5.jar"/>
+  <classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.1.4/jaxb-api-2.1.4.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR7/jboss-aop-2.0.0.CR7.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/aop/jboss-aop-aspects/2.0.0.CR7/jboss-aop-aspects-2.0.0.CR7.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/aop/jboss-aop-deployer-jdk50/2.0.0.CR8/jboss-aop-deployer-jdk50-2.0.0.CR8.jar"/>
@@ -85,11 +84,11 @@
   <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-vfs/2.0.0.Beta11/jboss-deployers-vfs-2.0.0.Beta11.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-vfs-spi/2.0.0.Beta11/jboss-deployers-vfs-spi-2.0.0.Beta11.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.Beta3Update1/jboss-ejb-api-3.0.0.Beta3Update1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-cache/0.13.0-SNAPSHOT/jboss-ejb3-cache-0.13.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-cache/0.13.0-SNAPSHOT/jboss-ejb3-cache-0.13.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3-SNAPSHOT/jboss-ejb3-ext-api-0.3-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3-SNAPSHOT/jboss-ejb3-ext-api-0.3-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api-impl/0.3-SNAPSHOT/jboss-ejb3-ext-api-impl-0.3-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api-impl/0.3-SNAPSHOT/jboss-ejb3-ext-api-impl-0.3-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-interceptors/0.12.0-SNAPSHOT/jboss-ejb3-interceptors-0.12.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-interceptors/0.12.0-SNAPSHOT/jboss-ejb3-interceptors-0.12.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-metadata/0.12.0-SNAPSHOT/jboss-ejb3-metadata-0.12.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-metadata/0.12.0-SNAPSHOT/jboss-ejb3-metadata-0.12.0-SNAPSHOT-sources.jar"/>
+  <classpathentry kind="src" path="/jboss-ejb3-cache"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3-SNAPSHOT/jboss-ejb3-ext-api-0.3-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api-impl/0.3-SNAPSHOT/jboss-ejb3-ext-api-impl-0.3-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-interceptors/0.12.0-SNAPSHOT/jboss-ejb3-interceptors-0.12.0-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-metadata/0.12.0-SNAPSHOT/jboss-ejb3-metadata-0.12.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/embedded/jboss-embedded/beta3-SNAPSHOT/jboss-embedded-beta3-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/cluster/jboss-ha-client/1.0.0.GA/jboss-ha-client-1.0.0.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/cluster/jboss-ha-server-api/1.0.0.GA/jboss-ha-server-api-1.0.0.GA.jar"/>
@@ -99,7 +98,6 @@
   <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-jca-api/1.5.0.Beta3Update1/jboss-jca-api-1.5.0.Beta3Update1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0-SNAPSHOT/jboss-jms-api-1.1.0-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-kernel/2.0.0.Beta9/jboss-kernel-2.0.0.Beta9.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-log4j/2.0.2.GA/jboss-logging-log4j-2.0.2.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
@@ -112,7 +110,6 @@
   <classpathentry kind="var" path="M2_REPO/jboss/profiler/jvmti/jboss-profiler-jvmti/1.0.0.CR5/jboss-profiler-jvmti-1.0.0.CR5.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-reflect/2.0.0.Beta12/jboss-reflect-2.0.0.Beta12.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/remoting/jboss-remoting/2.4.0.Beta2/jboss-remoting-2.4.0.Beta2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-saaj/2.0.4-SNAPSHOT/jboss-saaj-2.0.4-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi-bare/2.0.2.Beta5/jboss-security-spi-bare-2.0.2.Beta5.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-servlet-api/2.5.0-SNAPSHOT/jboss-servlet-api-2.5.0-SNAPSHOT.jar"/>
@@ -129,9 +126,6 @@
   <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR5/jbossxb-2.0.0.CR5.jar"/>
   <classpathentry kind="var" path="M2_REPO/jgroups/jgroups/2.6.1/jgroups-2.6.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jnpserver/5.0.0.Beta4/jnpserver-5.0.0.Beta4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jpl-pattern/jpl-pattern/1.0/jpl-pattern-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jpl-util/jpl-util/1.0/jpl-util-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
   <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
   <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
@@ -139,6 +133,7 @@
   <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
   <classpathentry kind="var" path="M2_REPO/qdox/qdox/1.6/qdox-1.6.jar"/>
   <classpathentry kind="var" path="M2_REPO/quartz/quartz/1.6.0/quartz-1.6.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/xml/soap/saaj-api/1.3/saaj-api-1.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/trove/trove/1.0.2/trove-1.0.2.jar"/>
   <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.7.1/xercesImpl-2.7.1.jar"/>

Modified: projects/ejb3/branches/ejbthree1253/core/.project
===================================================================
--- projects/ejb3/trunk/core/.project	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/.project	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,7 +1,9 @@
 <projectDescription>
   <name>jboss-ejb3-core</name>
   <comment>JBoss EJB 3.0 Core</comment>
-  <projects/>
+  <projects>
+    <project>jboss-ejb3-cache</project>
+  </projects>
   <buildSpec>
     <buildCommand>
       <name>org.eclipse.jdt.core.javabuilder</name>

Modified: projects/ejb3/branches/ejbthree1253/core/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/core/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,4 +1,4 @@
-#Wed Apr 02 17:08:43 GMT-08:00 2008
+#Mon Apr 07 15:27:55 CEST 2008
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.source=1.5

Modified: projects/ejb3/branches/ejbthree1253/core/build-test.xml
===================================================================
--- projects/ejb3/trunk/core/build-test.xml	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/build-test.xml	2008-04-07 13:30:49 UTC (rev 71760)
@@ -4274,6 +4274,7 @@
 
 
          <jvmarg line="${jvmargs}" />
+         <jvmarg line="-ea" />
          <!--
          <jvmarg line="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=/dt_socket,address=8787,server=y,suspend=y"/>
          -->

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/NoPassivationCache.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/NoPassivationCache.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/NoPassivationCache.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -42,7 +42,8 @@
    private HashMap<Object, StatefulBeanContext> cacheMap;
    private int createCount = 0;
    private int removeCount = 0;
-
+   private boolean running;
+   
    public void initialize(EJBContainer container) throws Exception
    {
       this.pool = container.getPool();
@@ -55,6 +56,7 @@
 
    public void start()
    {
+      this.running = true;
    }
 
    public void stop()
@@ -63,6 +65,7 @@
       {
          cacheMap.clear();
       }
+      this.running = false;
    }
 
    public StatefulBeanContext create()
@@ -70,7 +73,7 @@
       return create(null, null);
    }
    
-   public StatefulBeanContext create(Class[] initTypes, Object[] initValues)
+   public StatefulBeanContext create(Class<?>[] initTypes, Object[] initValues)
    {
       StatefulBeanContext ctx = null;
       try
@@ -192,4 +195,9 @@
    {
       return cacheMap.size();
    }
+   
+   public boolean isStarted()
+   {
+      return this.running;
+   }
 }

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/StatefulCache.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/StatefulCache.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/StatefulCache.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -91,4 +91,6 @@
    int getTotalSize();
    
    public void initialize(EJBContainer container) throws Exception;
+   
+   public boolean isStarted();
 }

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/simple/SimpleStatefulCache.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/simple/SimpleStatefulCache.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/simple/SimpleStatefulCache.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -341,7 +341,7 @@
       return ctx;
    }
 
-   public StatefulBeanContext create(Class[] initTypes, Object[] initValues)
+   public StatefulBeanContext create(Class<?>[] initTypes, Object[] initValues)
    {
       StatefulBeanContext ctx = null;
       try
@@ -506,4 +506,9 @@
    {
       return cacheMap.size();
    }
+   
+   public boolean isStarted()
+   {
+      return this.running;
+   }
 }

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -728,4 +728,9 @@
          }
       }
    }
+   
+   public boolean isStarted()
+   {
+      return this.running;
+   }
 }

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -129,7 +129,7 @@
    }
    
    @Override
-   protected RemoteProxyFactory createRemoteProxyFactory(RemoteBinding binding)
+   protected RemoteProxyFactory createProxyFactory(RemoteBinding binding)
    {
       // TODO Implement clustering
       return new ServiceRemoteProxyFactory(this, binding);

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/BaseSessionProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -106,12 +106,12 @@
    
    protected void setEjb21Objects(BaseSessionRemoteProxy proxy)
    {
-      proxy.setHandle(getHandle());
+      proxy.setHandle(this.createHandle());
       proxy.setHomeHandle(getHomeHandle());
       proxy.setEjbMetaData(getEjbMetaData());
    }
    
-   abstract protected Handle getHandle();
+   abstract protected Handle createHandle();
    
    protected HomeHandle getHomeHandle()
    {

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionRemoteProxy.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/BaseSessionRemoteProxy.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/BaseSessionRemoteProxy.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -58,6 +58,11 @@
    {
    }
    
+   public Handle getHandle()
+   {
+      return this.handle;
+   }
+   
    public void setHandle(Handle handle)
    {
       this.handle = handle;

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/ProxyDeployer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/ProxyDeployer.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/ProxyDeployer.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -23,7 +23,9 @@
 
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.jboss.ejb3.ProxyFactory;
 import org.jboss.ejb3.ProxyFactoryHelper;
@@ -47,7 +49,7 @@
 {
    private static final Logger log = Logger.getLogger(ProxyDeployer.class);
    private SessionContainer container;
-   private ArrayList<ProxyFactory> proxyFactories = new ArrayList<ProxyFactory>();
+   private Map<Object, ProxyFactory> proxyFactories = new HashMap<Object, ProxyFactory>();
    private RemoteBindings remoteBindings;
    private LocalBinding localBinding;
 
@@ -58,7 +60,15 @@
       this.container = container;
    }
 
-   public List<ProxyFactory> getProxyFactories() { return proxyFactories; }
+   public Map<Object, ProxyFactory> getProxyFactories()
+   {
+      return proxyFactories;
+   }
+   
+   public ProxyFactory getProxyFactory(Object key)
+   {
+      return this.getProxyFactories().get(key);
+   }
 
    public void start() throws Exception
    {
@@ -73,7 +83,7 @@
             String factoryImplementationRegistryKey = binding.factory();
             if (factoryImplementationRegistryKey.equals(RemoteBindingDefaults.PROXY_FACTORY_DEFAULT))
             {
-               factory = container.createRemoteProxyFactory(binding);
+               factory = container.createProxyFactory(binding);
             }
             else
             {
@@ -82,7 +92,7 @@
                factory = constructor.newInstance(container, binding);
             }
             factory.start();
-            proxyFactories.add(factory);
+            proxyFactories.put(binding,factory);
          }
       }
 
@@ -90,7 +100,7 @@
       {
          ProxyFactory factory = container.createProxyFactory(localBinding);
          factory.start();
-         proxyFactories.add(factory);
+         proxyFactories.put(localBinding,factory);
       }
    }
 

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/SessionContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionContainer.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/session/SessionContainer.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -55,6 +55,7 @@
 import org.jboss.ejb3.annotation.RemoteBindings;
 import org.jboss.ejb3.remoting.IsLocalInterceptor;
 import org.jboss.ejb3.remoting.RemoteProxyFactory;
+import org.jboss.ejb3.stateful.BaseStatefulRemoteProxyFactory;
 import org.jboss.ejb3.stateful.StatefulContainerInvocation;
 import org.jboss.ha.framework.server.HATarget;
 import org.jboss.logging.Logger;
@@ -155,12 +156,10 @@
    /**
     * Create a remote proxy factory on the given binding.
     * 
-    * The jndiBinding is set to a value, the factory is set to it's default value.
-    * 
     * @param binding
     * @return
     */
-   protected abstract RemoteProxyFactory createRemoteProxyFactory(RemoteBinding binding);
+   protected abstract RemoteProxyFactory createProxyFactory(RemoteBinding binding);
    
    public abstract InvocationResponse dynamicInvoke(Object target, Invocation invocation) throws Throwable;
    
@@ -510,7 +509,7 @@
     * @param initParameterValues    the arguments for the home's create method
     * @return   the identifier of the session
     */
-   abstract public Object createSession(Class initParameterTypes[], Object initParameterValues[]);
+   abstract public Object createSession(Class<?> initParameterTypes[], Object initParameterValues[]);
    
    abstract public Object localInvoke(Object id, Method method, Object[] args, FutureHolder provider) throws Throwable;
    

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -45,6 +45,8 @@
 import org.jboss.ejb3.ProxyFactory;
 import org.jboss.ejb3.ProxyFactoryHelper;
 import org.jboss.ejb3.SpecificationInterfaceType;
+import org.jboss.ejb3.session.BaseSessionProxyFactory;
+import org.jboss.ejb3.session.BaseSessionRemoteProxy;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.logging.Logger;
 import org.jboss.util.naming.Util;
@@ -194,7 +196,7 @@
 
    public void start() throws Exception
    {
-      init();
+      this.init();
 
       Context ctx = getContainer().getInitialContext();
       Name name = ctx.getNameParser("").parse(jndiName);
@@ -318,6 +320,11 @@
 
    protected final void initializeJndiName() {};
    
+   public String getJndiName()
+   {
+      return this.jndiName;
+   }
+   
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
    {

Added: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java
===================================================================
--- projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java	                        (rev 0)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/BaseStatefulRemoteProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -0,0 +1,142 @@
+package org.jboss.ejb3.stateful;
+
+import javax.ejb.EJBObject;
+import javax.ejb.RemoteHome;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.advice.AdviceStack;
+import org.jboss.ejb3.ProxyFactoryHelper;
+import org.jboss.ejb3.SpecificationInterfaceType;
+import org.jboss.ejb3.annotation.RemoteBinding;
+import org.jboss.ejb3.remoting.RemoteProxyFactory;
+import org.jboss.ejb3.session.SessionContainer;
+import org.jboss.remoting.InvokerLocator;
+
+public abstract class BaseStatefulRemoteProxyFactory extends BaseStatefulProxyFactory implements RemoteProxyFactory
+{
+   
+   // Instance Members
+   
+   private RemoteBinding binding;
+   
+   private InvokerLocator locator;
+   
+   // Constructor
+   public BaseStatefulRemoteProxyFactory(SessionContainer container, RemoteBinding binding)
+   {
+      super(container, binding.jndiBinding());
+      
+      this.binding = binding;
+      
+      try
+      {
+         String clientBindUrl = ProxyFactoryHelper.getClientBindUrl(this.getBinding());
+         this.locator = new InvokerLocator(clientBindUrl);
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+   
+   // Required Implementations
+
+   @Override
+   protected ProxyAccessType getProxyAccessType()
+   {
+      return ProxyAccessType.REMOTE;
+   }
+
+   @Override
+   protected void validateEjb21Views()
+   {
+      // Obtain Container
+      SessionContainer container = this.getContainer();
+      
+      // Obtain @RemoteHome
+      RemoteHome remoteHome = container.getAnnotation(RemoteHome.class);
+
+      // Ensure that if EJB 2.1 Components are defined, they're complete
+      this.validateEjb21Views(remoteHome == null ? null : remoteHome.value(), ProxyFactoryHelper
+            .getRemoteInterfaces(container));
+   }
+   
+   public Object createProxy()
+   {
+      Object id = getContainer().createSession();
+      return this.createProxy(id);
+   }
+   
+   public Object createProxy(Object id)
+   {
+      return this.createProxy(id,SpecificationInterfaceType.EJB30_BUSINESS);
+   }
+   
+   // Specifications
+   
+   abstract String getStackNameInterceptors();
+   
+   // Functional Methods 
+   
+   Object createProxy(Object id,SpecificationInterfaceType type)
+   {
+      String stackName = this.getStackNameInterceptors();
+      RemoteBinding binding = this.getBinding();
+      if (binding.interceptorStack() != null && !binding.interceptorStack().trim().equals(""))
+      {
+         stackName = binding.interceptorStack();
+      }
+      AdviceStack stack = AspectManager.instance().getAdviceStack(stackName);
+      if (stack == null) throw new RuntimeException("unable to find interceptor stack: " + stackName);
+      StatefulRemoteProxy proxy = new StatefulRemoteProxy(getContainer(), stack.createInterceptors(getContainer()
+            .getAdvisor(), null), this.getLocator(), id);
+      
+      if(type.equals(SpecificationInterfaceType.EJB21))
+      {
+         return this.constructEjb21Proxy(proxy);
+      }
+      else
+      {
+         return this.constructBusinessProxy(proxy);
+      }
+   }
+   
+   @Override
+   protected StatefulRemoteHandleImpl createHandle()
+   {
+      Object proxy = this.createProxyEjb21();
+      return this.createHandle(proxy);
+   }
+   
+   protected StatefulRemoteHandleImpl createHandle(Object proxy)
+   {
+      StatefulRemoteHandleImpl handle = new StatefulRemoteHandleImpl((EJBObject)proxy);
+      return handle;
+   } 
+   
+   public Object createProxyEjb21()
+   {
+      Object id = getContainer().createSession();
+      return this.createProxyEjb21(id);
+   }
+   
+   public Object createProxyEjb21(Object id)
+   {
+      return this.createProxy(id,SpecificationInterfaceType.EJB21);
+   }
+
+   // Accessors / Mutators
+   
+   RemoteBinding getBinding()
+   {
+      assert this.binding!=null : "RemoteBinding has not been initialized";
+      return this.binding;
+   }
+   
+   InvokerLocator getLocator()
+   {
+      assert this.locator!=null : "InvokerLocator has not been initialized"; 
+      return this.locator;
+   }
+
+}

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulClusterProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -27,9 +27,7 @@
 import javax.ejb.RemoteHome;
 import javax.naming.NamingException;
 
-import org.jboss.aop.AspectManager;
 import org.jboss.aop.Dispatcher;
-import org.jboss.aop.advice.AdviceStack;
 import org.jboss.aspects.remoting.FamilyWrapper;
 import org.jboss.aspects.remoting.Remoting;
 import org.jboss.ejb3.ProxyFactory;
@@ -60,16 +58,14 @@
  *
  * @version $Revision$
  */
-public class StatefulClusterProxyFactory extends BaseStatefulProxyFactory 
+public class StatefulClusterProxyFactory extends BaseStatefulRemoteProxyFactory 
    implements RemoteProxyFactory, DistributedReplicantManager.ReplicantListener
 {
    private static final Logger log = Logger.getLogger(StatefulClusterProxyFactory.class);
    
-//   public static final String FACTORY_ATTRIBUTE = ",element=ProxyFactory,partition=";
+   private static String STACK_NAME_CLUSTERED_STATEFUL_SESSION_CLIENT_INTERCEPTORS = "ClusteredStatefulSessionClientInterceptors";
    
-   private RemoteBinding binding;
    private Clustered clustered;
-   private InvokerLocator locator;
    private DistributedReplicantManager drm;
    private HATarget hatarget;
    private String proxyFamilyName;
@@ -78,11 +74,10 @@
 
    public StatefulClusterProxyFactory(SessionContainer container, RemoteBinding binding, Clustered clustered)
    {
-      super(container, binding.jndiBinding());
+      super(container, binding);
       
       assert clustered != null : "clustered is null";
       
-      this.binding = binding;
       this.clustered = clustered;
    }
    
@@ -112,14 +107,17 @@
 
    public void start() throws Exception
    {
-      String clientBindUrl = ProxyFactoryHelper.getClientBindUrl(binding);
-      locator = new InvokerLocator(clientBindUrl);
-      String partitionName = ((SessionContainer) getContainer()).getPartitionName();
-      proxyFamilyName = ((SessionContainer) getContainer()).getDeploymentQualifiedName() + locator.getProtocol() + partitionName;
-      HAPartition partition = (HAPartition) getContainer().getInitialContext().lookup("/HAPartition/" + partitionName);
+      this.init();
+      
+      RemoteBinding binding = this.getBinding();
+      InvokerLocator locator = this.getLocator();
+      SessionContainer container = this.getContainer();
+      String partitionName = container.getPartitionName();
+      proxyFamilyName = container.getDeploymentQualifiedName() + locator.getProtocol() + partitionName;
+      HAPartition partition = (HAPartition) this.getContainer().getInitialContext().lookup(
+            "/HAPartition/" + partitionName);
       hatarget = new HATarget(partition, proxyFamilyName, locator, HATarget.ENABLE_INVOCATIONS);
       ClusteringTargetsRepository.initTarget(proxyFamilyName, hatarget.getReplicants());
-      SessionContainer container = (SessionContainer) getContainer();
       container.getClusterFamilies().put(proxyFamilyName, hatarget);
       
       if (clustered.loadBalancePolicy() == null || clustered.loadBalancePolicy().equals(ClusteredDefaults.LOAD_BALANCE_POLICY_DEFAULT))
@@ -155,7 +153,9 @@
          Util.rebind(getContainer().getInitialContext(), jndiName + PROXY_FACTORY_NAME, factoryProxy);
       } catch (NamingException e)
       {
-         NamingException namingException = new NamingException("Could not bind stateful cluster proxy with ejb name " + getContainer().getEjbName() + " into JNDI under jndiName: " + getContainer().getInitialContext().getNameInNamespace() + "/" + jndiName + PROXY_FACTORY_NAME);
+         NamingException namingException = new NamingException("Could not bind stateful cluster proxy with ejb name "
+               + getContainer().getEjbName() + " into JNDI under jndiName: "
+               + getContainer().getInitialContext().getNameInNamespace() + "/" + jndiName + PROXY_FACTORY_NAME);
          namingException.setRootCause(e);
          throw namingException;
       }
@@ -164,17 +164,10 @@
 
    }
 
-   public Object createProxy()
+   @Override
+   String getStackNameInterceptors()
    {
-      String stackName = "ClusteredStatefulSessionClientInterceptors";
-      if (binding.interceptorStack() != null && !binding.interceptorStack().equals(""))
-      {
-         stackName = binding.interceptorStack();
-      }
-      AdviceStack stack = AspectManager.instance().getAdviceStack(stackName);
-      String partitionName = ((SessionContainer) getContainer()).getPartitionName();
-      return constructBusinessProxy(new StatefulClusteredProxy(getContainer(), stack.createInterceptors(this.getContainer()
-            .getAdvisor(), null), wrapper, lbPolicy, partitionName));
+      return StatefulClusterProxyFactory.STACK_NAME_CLUSTERED_STATEFUL_SESSION_CLIENT_INTERCEPTORS;
    }
 
    public Object createProxy(Object id)
@@ -187,21 +180,11 @@
       Dispatcher.singleton.unregisterTarget(getTargetId());
       hatarget.destroy();
       drm.unregisterListener(proxyFamilyName, this);
-      ((SessionContainer) getContainer()).getClusterFamilies().remove(proxyFamilyName);
+      this.getContainer().getClusterFamilies().remove(proxyFamilyName);
       Util.unbind(getContainer().getInitialContext(), jndiName + PROXY_FACTORY_NAME);
       super.stop();
    }
-   
-   protected StatefulHandleImpl getHandle()
-   {
-      StatefulHandleImpl handle = new StatefulHandleImpl();
-      RemoteBinding remoteBinding = this.getContainer().getAnnotation(RemoteBinding.class);
-      if (remoteBinding != null)
-         handle.jndiName = remoteBinding.jndiBinding();
- 
-      return handle;
-   }
-   
+
    /**
     * @return unique name for this proxy factory
     */
@@ -228,5 +211,4 @@
          log.error(e);
       }
    }
-
 }

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -26,7 +26,9 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.rmi.NoSuchObjectException;
+import java.rmi.RemoteException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
@@ -44,12 +46,12 @@
 import javax.ejb.RemoveException;
 import javax.ejb.TimerService;
 
+import org.jboss.aop.Dispatcher;
 import org.jboss.aop.Domain;
 import org.jboss.aop.InstanceAdvisor;
 import org.jboss.aop.MethodInfo;
 import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.advice.PerVmAdvice;
-import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.aop.joinpoint.InvocationResponse;
 import org.jboss.aop.util.MethodHashing;
@@ -74,7 +76,6 @@
 import org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor;
 import org.jboss.ejb3.proxy.EJBMetaDataImpl;
 import org.jboss.ejb3.proxy.handle.HomeHandleImpl;
-import org.jboss.ejb3.remoting.RemoteProxyFactory;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.injection.Injector;
 import org.jboss.injection.JndiPropertyInjector;
@@ -120,7 +121,7 @@
    }
    
    @Override
-   protected RemoteProxyFactory createRemoteProxyFactory(RemoteBinding binding)
+   protected BaseStatefulRemoteProxyFactory createProxyFactory(RemoteBinding binding)
    {
       Clustered clustered = getAnnotation(Clustered.class);
       if (clustered != null)
@@ -143,17 +144,34 @@
       return mbean;
    }
    
+   /**
+    * Creates and starts the configured cache, if not
+    * started already
+    * 
+    * @throws Exception
+    */
+   protected void createAndStartCache() throws Exception {
+      
+      // If Cache is initialized, exit
+      if(this.cache!=null && this.cache.isStarted())
+      {
+         return;
+      }
+      
+      Cache cacheConfig = getAnnotation(Cache.class);
+      CacheFactoryRegistry registry = getCacheFactoryRegistry();
+      Ejb3CacheFactory factory = registry.getCacheFactory(cacheConfig.value());
+      this.cache = factory.createCache();
+      this.cache.initialize(this);
+      this.cache.start();
+   }
+   
    public void start() throws Exception
    {
       try
       {
          super.start();
-         Cache cacheConfig = getAnnotation(Cache.class);
-         CacheFactoryRegistry registry = getCacheFactoryRegistry();
-         Ejb3CacheFactory factory = registry.getCacheFactory(cacheConfig.value());
-         cache = factory.createCache();
-         cache.initialize(this);
-         cache.start();
+         this.createAndStartCache();
       }
       catch (Exception e)
       {
@@ -178,6 +196,16 @@
 
    public StatefulCache getCache()
    {
+      // Ensure initialized
+      try{
+         this.createAndStartCache();
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+      
+      // Return
       return cache;
    }
    
@@ -296,16 +324,17 @@
     *
     * @return
     */
-   public Object createSession(Class[] initTypes, Object[] initValues)
+   public Object createSession(Class<?>[] initTypes, Object[] initValues)
    {
       ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
       pushEnc();
       try
       {
          Thread.currentThread().setContextClassLoader(classloader);
-         StatefulBeanContext ctx = getCache().create(initTypes, initValues);
+         StatefulCache cache = this.getCache();
+         StatefulBeanContext ctx = cache.create(initTypes, initValues);
          // Since we return the key here, the context is not in use.
-         getCache().release(ctx);
+         cache.release(ctx);
          return ctx.getId();
       }
       finally
@@ -774,9 +803,9 @@
 
          Object proxy = null;
          if (newStatefulInvocation.getId() != null)
-            proxy = factory.createEjb21Proxy(newStatefulInvocation.getId());
+            proxy = factory.createProxyEjb21(newStatefulInvocation.getId());
          else
-            proxy = factory.createEjb21Proxy();
+            proxy = factory.createProxyEjb21();
 
          InvocationResponse response = marshallResponse(statefulInvocation, proxy, newStatefulInvocation.getResponseContextInfo());
          if (newStatefulInvocation.getId() != null)
@@ -844,11 +873,14 @@
          StatefulContainerInvocation newStatefulInvocation = buildInvocation(
                  info, statefulInvocation);
 
-         StatefulHandleImpl handle = new StatefulHandleImpl();
-         handle.id = newStatefulInvocation.getId();
-         RemoteBinding remoteBinding = this.getAnnotation(RemoteBinding.class);
-         if (remoteBinding != null)
-            handle.jndiName = remoteBinding.jndiBinding();
+         ProxyFactory proxyFactory = this.proxyDeployer.getProxyFactory(this.getAnnotation(RemoteBinding.class));;
+         if (proxyFactory == null)
+         {
+            proxyFactory = this.createProxyFactory(this.getAnnotation(RemoteBinding.class));
+         }
+         BaseStatefulRemoteProxyFactory statefulRemoteProxyFactory = (BaseStatefulRemoteProxyFactory) proxyFactory;
+         EJBObject proxy = (EJBObject) statefulRemoteProxyFactory.createProxyEjb21(newStatefulInvocation.getId());
+         StatefulRemoteHandleImpl handle = new StatefulRemoteHandleImpl(proxy);
          InvocationResponse response = marshallResponse(statefulInvocation, handle, null);
          return response;
       }
@@ -988,7 +1020,8 @@
       }
       if (found == false) throw new IllegalStateException(businessInterface.getName() + " is not a business interface for container " + this);
 
-      for (ProxyFactory factory : proxyDeployer.getProxyFactories())
+      Collection<ProxyFactory> proxyFactories = this.proxyDeployer.getProxyFactories().values();
+      for (ProxyFactory factory : proxyFactories)
       {
          if (isRemote && factory instanceof StatefulRemoteProxyFactory)
          {
@@ -1014,9 +1047,16 @@
       if(!(target instanceof Handle))
          throw new RemoveException("EJB 3 3.6.2.2: Session beans do not have a primary key");
       
-      StatefulHandleImpl handle = (StatefulHandleImpl) target;
+      StatefulRemoteHandleImpl handle = (StatefulRemoteHandleImpl) target;
 
-      destroySession(handle.id);   
+      try
+      {
+         handle.getEJBObject().remove();
+      }
+      catch(RemoteException re)
+      {
+         throw new RemoveException(re.getMessage());
+      }
    }
    
    protected void removeHandle(Handle arg) throws Exception

Deleted: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHandleImpl.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulHandleImpl.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHandleImpl.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,181 +0,0 @@
-/*
- * 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.stateful;
-
-import java.rmi.RemoteException;
-import java.rmi.ServerException;
-import java.security.AccessControlException;
-import java.util.Hashtable;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-import javax.ejb.EJBObject;
-import javax.ejb.Handle;
-import javax.naming.InitialContext;
-
-import org.jboss.ejb3.InitialContextFactory;
-import org.jboss.invocation.Invoker;
-import org.jboss.logging.Logger;
-import org.jboss.naming.NamingContextFactory;
-
-/**
- * An EJB stateful session bean handle.
- *
- * @author  <a href="mailto:marc.fleury at jboss.org">Marc Fleury</a>
- * @author  <a href="mailto:jason at planet57.com">Jason Dillon</a>
- * @author <a href="bill at burkecentral.com">Bill Burke</a>
- * @author <a href="bdecoste at jboss.com">William DeCoste</a>
- * @version $Revision$
- */
-public class StatefulHandleImpl
-   implements Handle
-{
-   private static final Logger log = Logger.getLogger(StatefulHandleImpl.class);
-   
-   /** Serial Version Identifier. */
-   static final long serialVersionUID = -6324520755180597156L;
-
-   /** A reference to {@link Handle#getEJBObject}. */
-   protected static final Method GET_EJB_OBJECT;
-
-   /** The value of our local Invoker.ID to detect when we are local. */
-   private Object invokerID = null;
-
-   /**
-    * Initialize <tt>Handle</tt> method references.
-    */
-   static
-   {
-      try
-      {
-         GET_EJB_OBJECT = Handle.class.getMethod("getEJBObject", new Class[0]);
-      }
-      catch(Exception e)
-      {
-         e.printStackTrace();
-         throw new ExceptionInInitializerError(e);
-      }
-   }
-   
-   public StatefulHandleImpl()
-   {
-      
-   }
-   
-   /** The identity of the bean. */
-   public int objectName;
-   public String jndiName;
-   public String invokerProxyBinding;
-   public Invoker invoker;
-   public Object id;
-
-   /** The JNDI env in effect when the home handle was created */
-   protected Hashtable jndiEnv;
-
-   /** Create an ejb handle for a stateful session bean.
-    * @param objectName - the session container jmx name
-    * @param jndiName - the session home ejb name
-    * @param invoker - the invoker to request the EJBObject from
-    * @param invokerProxyBinding - the type of invoker binding
-    * @param id - the session id
-    */ 
-   public StatefulHandleImpl(
-      int objectName,
-      String jndiName,
-      Invoker invoker,
-      String invokerProxyBinding,
-      Object id,
-      Object invokerID)
-   {
-      this.jndiName = jndiName;
-      this.id = id;
-      this.jndiEnv = (Hashtable) NamingContextFactory.lastInitialContextEnv.get();
-      try
-      {
-         String property = System.getProperty("org.jboss.ejb.sfsb.handle.V327");
-         if (property != null)
-         {
-            this.invokerProxyBinding = invokerProxyBinding;
-            this.invokerID = invokerID;
-            this.objectName = objectName;
-            this.invoker = invoker;
-         }
-      }
-      catch (AccessControlException ignored)
-      {
-      }
-
-   }
-
-   /**
-    * @return the internal session identifier
-    */
-   public Object getID()
-   {
-      return id;
-   }
-
-   /**
-    * @return the jndi name
-    */
-   public String getJNDIName()
-   {
-      return jndiName;
-   }
-
-   /**
-    * Handle implementation.
-    *
-    * This differs from Stateless and Entity handles which just invoke
-    * standard methods (<tt>create</tt> and <tt>findByPrimaryKey</tt>
-    * respectively) on the Home interface (proxy).
-    * There is no equivalent option for stateful SBs, so a direct invocation
-    * on the container has to be made to locate the bean by its id (the
-    * stateful SB container provides an implementation of
-    * <tt>getEJBObject</tt>).
-    *
-    * This means the security context has to be set here just as it would
-    * be in the Proxy.
-    *
-    * @return  <tt>EJBObject</tt> reference.
-    *
-    * @throws ServerException    Could not get EJBObject.
-    */
-   public EJBObject getEJBObject() throws RemoteException
-   {
-      try
-      {
-         InitialContext ic = InitialContextFactory.getInitialContext(jndiEnv);
-    
-         Proxy proxy = (Proxy) ic.lookup(jndiName);
-
-         return (EJBObject) proxy;
-      }
-      catch (Throwable t)
-      {
-         t.printStackTrace();
-         throw new RemoteException("Error during getEJBObject", t);
-      }
-   }
-}
-

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHomeRemoteProxy.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulHomeRemoteProxy.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulHomeRemoteProxy.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -70,10 +70,9 @@
    {
    }
 
-   public void setHandle(StatefulHandleImpl handle)
+   public void setHandle(StatefulRemoteHandleImpl handle)
    {
       this.handle = handle;
-      handle.id = id;
    }
 
    public void setHomeHandle(HomeHandle homeHandle)

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulLocalProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -25,20 +25,18 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.rmi.dgc.VMID;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
 
+import javax.ejb.EJBLocalObject;
 import javax.ejb.LocalHome;
 import javax.naming.NamingException;
 
 import org.jboss.ejb3.Ejb3Registry;
-import org.jboss.ejb3.JBossProxy;
 import org.jboss.ejb3.ProxyFactoryHelper;
 import org.jboss.ejb3.SpecificationInterfaceType;
 import org.jboss.ejb3.annotation.LocalBinding;
 import org.jboss.ejb3.session.SessionContainer;
-import org.jboss.ejb3.stateful.BaseStatefulProxyFactory.ProxyAccessType;
+import org.jboss.proxy.ejb.handle.StatefulHandleImpl;
+import org.jboss.util.NotImplementedException;
 import org.jboss.util.naming.Util;
 
 
@@ -143,10 +141,10 @@
       return this.createProxy(id);
    }
 
-   public Object createEjb21Proxy()
+   public EJBLocalObject createProxyEjb21()
    {
       Object id = getContainer().createSession();
-      return this.createEjb21Proxy(id);
+      return this.createProxyEjb21(id);
    }
 
    public Object createProxy(Object id)
@@ -154,9 +152,10 @@
       return this.createProxy(id, SpecificationInterfaceType.EJB30_BUSINESS);
    }
 
-   public Object createEjb21Proxy(Object id)
+   @SuppressWarnings("unchecked")
+   public <T extends EJBLocalObject> T createProxyEjb21(Object id)
    {
-      return this.createProxy(id, SpecificationInterfaceType.EJB21);
+      return (T)this.createProxy(id, SpecificationInterfaceType.EJB21);
    }
 
    private Object createProxy(Object id, SpecificationInterfaceType type)
@@ -179,14 +178,9 @@
       return this.createProxy(id, SpecificationInterfaceType.EJB21);
    }
 
-   protected StatefulHandleImpl getHandle()
+   protected StatefulHandleImpl createHandle()
    {
-      StatefulHandleImpl handle = new StatefulHandleImpl();
-      LocalBinding remoteBinding = this.getContainer().getAnnotation(LocalBinding.class);
-      if (remoteBinding != null)
-         handle.jndiName = remoteBinding.jndiBinding();
-
-      return handle;
+      throw new NotImplementedException("NYI");
    }
    
    @Override

Copied: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteHandleImpl.java (from rev 71659, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulHandleImpl.java)
===================================================================
--- projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteHandleImpl.java	                        (rev 0)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteHandleImpl.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -0,0 +1,72 @@
+/*
+ * 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.stateful;
+
+import java.rmi.RemoteException;
+
+import javax.ejb.EJBObject;
+import javax.ejb.Handle;
+
+import org.jboss.logging.Logger;
+
+/**
+ * An EJB stateful session bean handle.
+ *
+ * @author  <a href="mailto:marc.fleury at jboss.org">Marc Fleury</a>
+ * @author  <a href="mailto:jason at planet57.com">Jason Dillon</a>
+ * @author <a href="bill at burkecentral.com">Bill Burke</a>
+ * @author <a href="bdecoste at jboss.com">William DeCoste</a>
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a> 
+ * @version $Revision$
+ */
+public class StatefulRemoteHandleImpl implements Handle
+{
+   private static final Logger log = Logger.getLogger(StatefulRemoteHandleImpl.class);
+
+   /** Serial Version Identifier. */
+   static final long serialVersionUID = -6324520755180597156L;
+
+   // Instance Members
+
+   private EJBObject proxy;
+
+   // Constructor
+
+   public StatefulRemoteHandleImpl(EJBObject proxy)
+   {
+      this.proxy = proxy;
+   }
+
+   // Required Implementations
+
+   /**
+    * Handle implementation.
+    *
+    * Returns the proxy  
+    *
+    * @throws RemoteException 
+    */
+   public EJBObject getEJBObject() throws RemoteException
+   {
+      return this.proxy;
+   }
+}


Property changes on: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteHandleImpl.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxy.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxy.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxy.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -80,10 +80,9 @@
    {
    }
    
-   public void setHandle(StatefulHandleImpl handle)
+   public void setHandle(StatefulRemoteHandleImpl handle)
    {
       this.handle = handle;
-      handle.id = id;
    }
    
    public void setHomeHandle(HomeHandle homeHandle)
@@ -150,10 +149,10 @@
 
    public Object getAsynchronousProxy(Object proxy)
    {
-      Class[] infs = proxy.getClass().getInterfaces();
+      Class<?>[] infs = proxy.getClass().getInterfaces();
       if (!ProxyUtils.isAsynchronous(infs))
       {
-         Class[] interfaces = ProxyUtils.addAsynchProviderInterface(infs);
+         Class<?>[] interfaces = ProxyUtils.addAsynchProviderInterface(infs);
          AsynchMixin mixin = new AsynchMixin();
          Interceptor[] newInterceptors = ProxyUtils.addAsynchProxyInterceptor(mixin, interceptors);
          StatefulRemoteProxy handler = new StatefulRemoteProxy(mixin, containerId, containerGuid, newInterceptors, uri);

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateful/StatefulRemoteProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -23,6 +23,7 @@
 
 import java.lang.reflect.Proxy;
 
+import javax.ejb.EJBObject;
 import javax.ejb.RemoteHome;
 import javax.naming.NamingException;
 
@@ -34,10 +35,10 @@
 import org.jboss.aspects.remoting.PojiProxy;
 import org.jboss.ejb3.ProxyFactory;
 import org.jboss.ejb3.ProxyFactoryHelper;
-import org.jboss.ejb3.SpecificationInterfaceType;
 import org.jboss.ejb3.annotation.RemoteBinding;
 import org.jboss.ejb3.remoting.IsLocalProxyFactoryInterceptor;
 import org.jboss.ejb3.remoting.RemoteProxyFactory;
+import org.jboss.ejb3.session.BaseSessionRemoteProxy;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.logging.Logger;
 import org.jboss.remoting.InvokerLocator;
@@ -51,68 +52,33 @@
  *
  * @version $Revision$
  */
-public class StatefulRemoteProxyFactory extends BaseStatefulProxyFactory implements RemoteProxyFactory
+public class StatefulRemoteProxyFactory extends BaseStatefulRemoteProxyFactory implements RemoteProxyFactory
 {
    private static final Logger log = Logger.getLogger(StatefulRemoteProxyFactory.class);
    
 //   public static final String FACTORY_ATTRIBUTE = ",element=ProxyFactory";
    
    private static final String STACK_NAME_STATEFUL_SESSION_CLIENT_INTERCEPTORS = "StatefulSessionClientInterceptors";
-   
-   private RemoteBinding binding;
-   private InvokerLocator locator;
 
    public StatefulRemoteProxyFactory(SessionContainer container, RemoteBinding binding)
    {
-      super(container, binding.jndiBinding());
-      
-      this.binding = binding;
+      super(container, binding);
    }
    
-   /**
-    * Defines the access type for this Proxies created by this Factory
-    * 
-    * @return
-    */
-   @Override
-   protected ProxyAccessType getProxyAccessType(){
-      return ProxyAccessType.REMOTE;
-   }
-   
-   protected void validateEjb21Views()
-   { 
-      // Obtain Container
-      SessionContainer container = this.getContainer();
-      
-      // Obtain @RemoteHome
-      RemoteHome remoteHome = container.getAnnotation(RemoteHome.class);
-
-      // Ensure that if EJB 2.1 Components are defined, they're complete
-      this.validateEjb21Views(remoteHome == null ? null : remoteHome.value(), ProxyFactoryHelper
-            .getRemoteInterfaces(container));
-
-   }
-   
    protected boolean bindHomeAndBusinessTogether(SessionContainer container)
    {
-      return ProxyFactoryHelper.getHomeJndiName(container).equals(ProxyFactoryHelper.getRemoteBusinessJndiName(container));
+      String homeJndiName = ProxyFactoryHelper.getHomeJndiName(container);
+      String remoteBusinessJndiName = ProxyFactoryHelper.getRemoteBusinessJndiName(container);
+      return homeJndiName.equals(remoteBusinessJndiName);
    }
 
-   public void init() throws Exception
-   {
-      super.init();
-      String clientBindUrl = ProxyFactoryHelper.getClientBindUrl(binding);
-      locator = new InvokerLocator(clientBindUrl);
-   }
-
+   @Override
    public void start() throws Exception
    {
-      init();
-
       super.start();
       Class<?>[] interfaces = {ProxyFactory.class};
       String targetId = getTargetId();
-      String clientBindUrl = ProxyFactoryHelper.getClientBindUrl(binding);
+      String clientBindUrl = ProxyFactoryHelper.getClientBindUrl(this.getBinding());
       Object factoryProxy = createPojiProxy(targetId, interfaces, clientBindUrl);
       log.debug("Binding proxy factory for " + getContainer().getEjbName() + " in JNDI at " + jndiName + PROXY_FACTORY_NAME + " with client bind url " + clientBindUrl);
       try
@@ -128,17 +94,18 @@
       assert !Dispatcher.singleton.isRegistered(targetId) : targetId + " is already registered";
       Dispatcher.singleton.registerTarget(targetId, this);
 
-      SessionContainer statefulContainer = (SessionContainer) getContainer();
-      RemoteHome remoteHome = (RemoteHome) statefulContainer.resolveAnnotation(RemoteHome.class);
+      SessionContainer statefulContainer = this.getContainer();
+      RemoteHome remoteHome = statefulContainer.getAnnotation(RemoteHome.class);
       if (remoteHome != null && !bindHomeAndBusinessTogether(statefulContainer))
       {
          Object homeProxy = createHomeProxy(remoteHome.value());
-         String homeJndiName = ProxyFactoryHelper.getHomeJndiName(getContainer());
+         String homeJndiName = ProxyFactoryHelper.getHomeJndiName(this.getContainer());
          log.debug("Binding home proxy at " + homeJndiName);
-         Util.rebind(getContainer().getInitialContext(), homeJndiName, homeProxy);
+         Util.rebind(this.getContainer().getInitialContext(), homeJndiName, homeProxy);
       }
    }
 
+   @Override
    public void stop() throws Exception
    {
       Util.unbind(getContainer().getInitialContext(), jndiName + PROXY_FACTORY_NAME);
@@ -153,20 +120,20 @@
       super.stop();
    }
 
-
    public Object createHomeProxy(Class<?> homeInterface)
    {
       try
       {
-         Object containerId = getContainer().getObjectName().getCanonicalName();
          String stackName = StatefulRemoteProxyFactory.STACK_NAME_STATEFUL_SESSION_CLIENT_INTERCEPTORS;
+         RemoteBinding binding = this.getBinding();
          if (binding.interceptorStack() != null && !binding.interceptorStack().trim().equals(""))
          {
             stackName = binding.interceptorStack();
          }
          AdviceStack stack = AspectManager.instance().getAdviceStack(stackName);
          if (stack == null) throw new RuntimeException("unable to find interceptor stack: " + stackName);
-         StatefulHomeRemoteProxy proxy = new StatefulHomeRemoteProxy(getContainer(), stack.createInterceptors(getContainer().getAdvisor(), null), locator);
+         StatefulHomeRemoteProxy proxy = new StatefulHomeRemoteProxy(getContainer(), stack.createInterceptors(
+               getContainer().getAdvisor(), null), this.getLocator());
 
          setEjb21Objects(proxy);
          Class<?>[] intfs = {homeInterface};
@@ -178,50 +145,20 @@
       }
    }
    
-   public Object createProxy()
+   @Override
+   protected void setEjb21Objects(BaseSessionRemoteProxy proxy)
    {
-      Object id = getContainer().createSession();
-      return this.createProxy(id);
+      proxy.setHandle(this.createHandle());
+      proxy.setHomeHandle(getHomeHandle());
+      proxy.setEjbMetaData(getEjbMetaData());
    }
-   public Object createEjb21Proxy()
-   {
-      Object id = getContainer().createSession();
-      return this.createEjb21Proxy(id);
-   }
-
-   protected StatefulHandleImpl getHandle()
-   {
-      StatefulHandleImpl handle = new StatefulHandleImpl();
-      handle.jndiName = jndiName;
-
-      return handle;
-   }
-
-   public Object createProxy(Object id)
-   {
-      return this.createProxy(id,SpecificationInterfaceType.EJB30_BUSINESS);
-   }
    
-   public Object createEjb21Proxy(Object id)
+   @Override
+   String getStackNameInterceptors()
    {
-      return this.createProxy(id,SpecificationInterfaceType.EJB21);
+      return StatefulRemoteProxyFactory.STACK_NAME_STATEFUL_SESSION_CLIENT_INTERCEPTORS;
    }
    
-   private Object createProxy(Object id,SpecificationInterfaceType type)
-   {
-      String stackName = StatefulRemoteProxyFactory.STACK_NAME_STATEFUL_SESSION_CLIENT_INTERCEPTORS;
-      if (binding.interceptorStack() != null && !binding.interceptorStack().trim().equals(""))
-      {
-         stackName = binding.interceptorStack();
-      }
-      AdviceStack stack = AspectManager.instance().getAdviceStack(stackName);
-      if (stack == null) throw new RuntimeException("unable to find interceptor stack: " + stackName);
-      StatefulRemoteProxy proxy = new StatefulRemoteProxy(getContainer(), stack.createInterceptors(getContainer().getAdvisor(), null), locator, id);
-      this.setEjb21Objects(proxy);
-      return type.equals(SpecificationInterfaceType.EJB21) ? this.constructEjb21Proxy(proxy) : this
-            .constructBusinessProxy(proxy);
-   }
-   
    /**
     * @return unique name for this proxy factory
     */

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessClusterProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -185,7 +185,7 @@
       return proxy;
    }
 
-   protected StatelessHandleImpl getHandle()
+   protected StatelessHandleImpl createHandle()
    {
       StatelessHandleImpl handle = new StatelessHandleImpl();
       handle.jndiName = binding.jndiBinding();

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -50,6 +50,7 @@
 import org.jboss.ejb3.annotation.RemoteBindings;
 import org.jboss.ejb3.remoting.RemoteProxyFactory;
 import org.jboss.ejb3.session.SessionContainer;
+import org.jboss.ejb3.stateful.BaseStatefulRemoteProxyFactory;
 import org.jboss.ejb3.timerservice.TimedObjectInvoker;
 import org.jboss.ejb3.timerservice.TimerServiceFactory;
 import org.jboss.logging.Logger;
@@ -103,7 +104,7 @@
    }
    
    @Override
-   protected RemoteProxyFactory createRemoteProxyFactory(RemoteBinding binding)
+   protected RemoteProxyFactory createProxyFactory(RemoteBinding binding)
    {
       Clustered clustered = getAnnotation(Clustered.class);
       if(clustered != null)

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessLocalProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -160,7 +160,7 @@
       return constructProxy(new StatelessLocalProxy(getContainer()));
    }
 
-   protected StatelessHandleImpl getHandle()
+   protected StatelessHandleImpl createHandle()
    {
       StatelessHandleImpl handle = new StatelessHandleImpl();
       LocalBinding remoteBinding = (LocalBinding) getContainer().resolveAnnotation(LocalBinding.class);

Modified: projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/core/src/main/java/org/jboss/ejb3/stateless/StatelessRemoteProxyFactory.java	2008-04-07 13:30:49 UTC (rev 71760)
@@ -158,7 +158,7 @@
       }
    }
 
-   protected StatelessHandleImpl getHandle()
+   protected StatelessHandleImpl createHandle()
    {
       StatelessHandleImpl handle = new StatelessHandleImpl();
       RemoteBinding remoteBinding = (RemoteBinding) getContainer().resolveAnnotation(RemoteBinding.class);

Modified: projects/ejb3/branches/ejbthree1253/ext-api/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/ext-api/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/ext-api/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:01 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:38 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/ext-api-impl/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/ext-api-impl/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/ext-api-impl/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:01 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:38 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/injection/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/injection/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/injection/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:06 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:56 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/interceptors/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/interceptors/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/interceptors/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:02 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:42 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/locator/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/locator/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/locator/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:06 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:57 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/metadata/.project
===================================================================
--- projects/ejb3/trunk/metadata/.project	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/metadata/.project	2008-04-07 13:30:49 UTC (rev 71760)
@@ -11,4 +11,4 @@
   <natures>
     <nature>org.eclipse.jdt.core.javanature</nature>
   </natures>
-</projectDescription>
+</projectDescription>
\ No newline at end of file

Modified: projects/ejb3/branches/ejbthree1253/metadata/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/metadata/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/metadata/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:01 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:40 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Modified: projects/ejb3/branches/ejbthree1253/pool/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/pool/.settings/org.eclipse.jdt.core.prefs	2008-04-07 12:46:36 UTC (rev 71759)
+++ projects/ejb3/branches/ejbthree1253/pool/.settings/org.eclipse.jdt.core.prefs	2008-04-07 13:30:49 UTC (rev 71760)
@@ -1,5 +1,5 @@
-#Fri Mar 14 21:02:06 EDT 2008
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+#Mon Apr 07 15:27:57 CEST 2008
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5




More information about the jboss-cvs-commits mailing list