User: fleury
Date: 00/05/31 12:04:53
Modified: src/main/org/jboss/ejb StatefulSessionContainer.java
Log:
The Stateful Container
Revision Changes Path
1.4 +91 -3 jboss/src/main/org/jboss/ejb/StatefulSessionContainer.java
Index: StatefulSessionContainer.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/StatefulSessionContainer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- StatefulSessionContainer.java 2000/05/30 18:32:16 1.3
+++ StatefulSessionContainer.java 2000/05/31 19:04:53 1.4
@@ -31,7 +31,7 @@
*
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class StatefulSessionContainer
extends Container
@@ -93,12 +93,100 @@
}
// Container implementation --------------------------------------
- public void start()
+ public void init()
throws Exception
{
- super.start();
+ // Associate thread with classloader
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(getClassLoader());
+
+ // Call default init
+ super.init();
+
+ // Init container invoker
+ containerInvoker.init();
+
+ // Init instance cache
+ instanceCache.init();
+
+ // Init persistence
+ persistenceManager.init();
+
setupBeanMapping();
setupHomeMapping();
+
+ // Reset classloader
+ Thread.currentThread().setContextClassLoader(oldCl);
+ }
+
+ public void start()
+ throws Exception
+ {
+ // Associate thread with classloader
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(getClassLoader());
+
+ // Call default start
+ super.start();
+
+ // Start container invoker
+ containerInvoker.start();
+
+ // Start instance cache
+ instanceCache.start();
+
+ // Start persistence
+ persistenceManager.start();
+
+ // Reset classloader
+ Thread.currentThread().setContextClassLoader(oldCl);
+ // super.start();
+ // setupBeanMapping();
+ // setupHomeMapping();
+ }
+
+ public void stop() {
+
+ // Associate thread with classloader
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(getClassLoader());
+
+ // Call default stop
+ super.stop();
+
+ // Stop container invoker
+ containerInvoker.stop();
+
+ // Stop instance cache
+ instanceCache.stop();
+
+ // Stop persistence
+ persistenceManager.stop();
+
+ // Reset classloader
+ Thread.currentThread().setContextClassLoader(oldCl);
+ }
+
+ public void destroy()
+ {
+ // Associate thread with classloader
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(getClassLoader());
+
+ // Call default destroy
+ super.destroy();
+
+ // Destroy container invoker
+ containerInvoker.destroy();
+
+ // Destroy instance cache
+ instanceCache.destroy();
+
+ // Destroy persistence
+ persistenceManager.destroy();
+
+ // Reset classloader
+ Thread.currentThread().setContextClassLoader(oldCl);
}
public Object invokeHome(Method method, Object[] args)