You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/04/17 00:37:28 UTC
svn commit: r529421 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful:
StatefulContainer.java StatefulInstanceManager.java
Author: dblevins
Date: Mon Apr 16 15:37:23 2007
New Revision: 529421
URL: http://svn.apache.org/viewvc?view=rev&rev=529421
Log:
Stubbed out putting stateful session cache into the DeploymentInfo
Need to do the same thing in the stateless container for its pool
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=529421&r1=529420&r2=529421
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Mon Apr 16 15:37:23 2007
@@ -216,18 +216,20 @@
undeploy((CoreDeploymentInfo) info);
}
- private synchronized void undeploy(CoreDeploymentInfo deploymentInfo) {
+ private synchronized void undeploy(CoreDeploymentInfo deploymentInfo) throws OpenEJBException {
deploymentsById.remove(deploymentInfo.getDeploymentID());
deploymentInfo.setContainer(null);
deploymentInfo.setContainerData(null);
+ instanceManager.undeploy(deploymentInfo);
}
- private synchronized void deploy(CoreDeploymentInfo deploymentInfo) {
+ private synchronized void deploy(CoreDeploymentInfo deploymentInfo) throws OpenEJBException {
Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
deploymentInfo.setContainerData(new Data(new Index<Method, MethodType>(methods)));
deploymentsById.put(deploymentInfo.getDeploymentID(), deploymentInfo);
deploymentInfo.setContainer(this);
+ instanceManager.deploy(deploymentInfo);
}
/**
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java?view=diff&rev=529421&r1=529420&r2=529421
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulInstanceManager.java Mon Apr 16 15:37:23 2007
@@ -21,6 +21,7 @@
import org.apache.openejb.InvalidateReferenceException;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.SystemException;
+import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.core.BaseContext;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.core.CoreUserTransaction;
@@ -96,6 +97,15 @@
}
}
+ public void deploy(DeploymentInfo deploymentInfo) throws OpenEJBException {
+ deploymentInfo.set(Data.class, new Data());
+ }
+
+ public void undeploy(DeploymentInfo deploymentInfo) throws OpenEJBException {
+ deploymentInfo.set(Data.class, null);
+ }
+
+
public Transaction getBeanTransaction(Object primaryKey) throws OpenEJBException {
BeanEntry entry = getBeanEntry(primaryKey);
return entry.beanTransaction;
@@ -204,7 +214,7 @@
// add to index
BeanEntry entry = new BeanEntry(bean, primaryKey, timeOut);
- beanIndex.put(primaryKey, entry);
+ getBeanIndex().put(primaryKey, entry);
return bean;
}
@@ -230,7 +240,7 @@
}
// look for entry in index
- BeanEntry entry = beanIndex.get(primaryKey);
+ BeanEntry entry = getBeanIndex().get(primaryKey);
// if we didn't find the bean in the index, try to activate it
if (entry == null) {
@@ -248,7 +258,7 @@
if (queueEntry != null) {
// if bean is timed out, destroy it
if (entry.isTimedOut()) {
- entry = beanIndex.remove(entry.primaryKey);
+ entry = getBeanIndex().remove(entry.primaryKey);
handleTimeout(entry, callContext);
throw new InvalidateReferenceException(new NoSuchObjectException("Stateful SessionBean has timed-out"));
}
@@ -308,7 +318,7 @@
}
// add it to the index
- beanIndex.put(primaryKey, entry);
+ getBeanIndex().put(primaryKey, entry);
return entry.bean;
}
@@ -351,7 +361,7 @@
throw new SystemException("Invalid arguments");
}
- BeanEntry entry = beanIndex.get(primaryKey);
+ BeanEntry entry = getBeanIndex().get(primaryKey);
if (entry == null) {
entry = activate(primaryKey);
if (entry == null) {
@@ -378,7 +388,7 @@
public Object freeInstance(Object primaryKey) throws SystemException {
BeanEntry entry = null;
- entry = beanIndex.remove(primaryKey);// remove frm index
+ entry = getBeanIndex().remove(primaryKey);// remove frm index
if (entry == null) {
entry = activate(primaryKey);
} else {
@@ -406,7 +416,7 @@
if (currentEntry == null) {
break;
}
- beanIndex.remove(currentEntry.primaryKey);
+ getBeanIndex().remove(currentEntry.primaryKey);
if (currentEntry.isTimedOut()) {
handleTimeout(currentEntry, threadContext);
} else {
@@ -458,7 +468,7 @@
protected InvalidateReferenceException destroy(BeanEntry entry, Exception t) throws SystemException {
- beanIndex.remove(entry.primaryKey);// remove frm index
+ getBeanIndex().remove(entry.primaryKey);// remove frm index
lruQueue.remove(entry);// remove from queue
if (entry.beanTransaction != null) {
try {
@@ -484,13 +494,30 @@
if (primaryKey == null) {
throw new SystemException(new NullPointerException("The primary key is null. Cannot get the bean entry"));
}
- BeanEntry entry = beanIndex.get(primaryKey);
+ BeanEntry entry = getBeanIndex().get(primaryKey);
if (entry == null) {
Object bean = this.obtainInstance(primaryKey, ThreadContext.getThreadContext());
this.poolInstance(primaryKey, bean);
- entry = beanIndex.get(primaryKey);
+ entry = getBeanIndex().get(primaryKey);
}
return entry;
+ }
+
+ private Hashtable<Object, BeanEntry> getBeanIndex() {
+ // TODO:
+// ThreadContext threadContext = null;
+// DeploymentInfo deployment = threadContext.getDeploymentInfo();
+// StatefulInstanceManager.Data data = deployment.get(StatefulInstanceManager.Data.class);
+// return data.getBeanIndex();
+ return beanIndex;
+ }
+
+ private static class Data {
+ private final Hashtable<Object, BeanEntry> beanIndex = new Hashtable<Object, BeanEntry>();
+
+ public Hashtable<Object, BeanEntry> getBeanIndex() {
+ return beanIndex;
+ }
}
class BeanEntryQueue {