private StatefulSessionContainer createStatefulSessionContainer(SessionMetaData bean, DeploymentUnit unit)
throws Exception
{
ConfigurationMetaData conf = bean.getContainerConfiguration();
StatefulSessionContainer container = new StatefulSessionContainer();
int transType = bean.isContainerManagedTx() ? CMT : BMT;
initializeContainer(container, conf, bean, transType, unit);
if (bean.getHome() != null || bean.getServiceEndpoint() != null)
{
createProxyFactories(bean, container);
}
ClassLoader cl = unit.getClassLoader();
container.setInstanceCache(createInstanceCache(conf, cl));
StatefulSessionInstancePool ip = new StatefulSessionInstancePool();
ip.importXml(conf.getContainerPoolConf());
container.setInstancePool(ip);
container.setPersistenceManager((StatefulSessionPersistenceManager) cl.loadClass(conf.getPersistenceManager())
.newInstance());
container.setLockManager(createBeanLockManager(container, false, conf.getLockClass(), cl));
return container;
}