djencks 2004/07/18 18:32:25
Modified: modules/core/src/java/org/openejb/sfsb BusinessMethod.java
CreateMethod.java RemoveMethod.java
StatefulContainerBuilder.java
StatefulInstanceContext.java
StatefulInstanceContextFactory.java
StatefulInstanceInterceptor.java
StatefulInterceptorBuilder.java
Log:
Add timer support to session and mdbs. (entities still todo). Adapt to
TransactionContextManager. Adapt to deploying with external plan.
Revision Changes Path
1.3 +2 -2
openejb/modules/core/src/java/org/openejb/sfsb/BusinessMethod.java
Index: BusinessMethod.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/BusinessMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BusinessMethod.java 21 Mar 2004 21:26:36 -0000 1.2
+++ BusinessMethod.java 18 Jul 2004 22:32:24 -0000 1.3
@@ -48,7 +48,7 @@
package org.openejb.sfsb;
import org.apache.geronimo.core.service.InvocationResult;
-import org.apache.geronimo.transaction.TransactionContext;
+import org.apache.geronimo.transaction.context.TransactionContext;
import org.openejb.EJBInvocation;
import org.openejb.EJBOperation;
1.3 +2 -2 openejb/modules/core/src/java/org/openejb/sfsb/CreateMethod.java
Index: CreateMethod.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/CreateMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CreateMethod.java 21 Mar 2004 21:26:36 -0000 1.2
+++ CreateMethod.java 18 Jul 2004 22:32:24 -0000 1.3
@@ -54,7 +54,7 @@
import org.apache.geronimo.core.service.InvocationResult;
import org.apache.geronimo.core.service.SimpleInvocationResult;
-import org.apache.geronimo.transaction.TransactionContext;
+import org.apache.geronimo.transaction.context.TransactionContext;
import net.sf.cglib.reflect.FastClass;
import org.openejb.EJBInstanceContext;
1.3 +2 -2 openejb/modules/core/src/java/org/openejb/sfsb/RemoveMethod.java
Index: RemoveMethod.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/RemoveMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RemoveMethod.java 21 Mar 2004 21:26:36 -0000 1.2
+++ RemoveMethod.java 18 Jul 2004 22:32:24 -0000 1.3
@@ -48,7 +48,7 @@
package org.openejb.sfsb;
import org.apache.geronimo.core.service.InvocationResult;
-import org.apache.geronimo.transaction.TransactionContext;
+import org.apache.geronimo.transaction.context.TransactionContext;
import org.openejb.EJBInvocation;
import org.openejb.EJBOperation;
1.8 +3 -2
openejb/modules/core/src/java/org/openejb/sfsb/StatefulContainerBuilder.java
Index: StatefulContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/StatefulContainerBuilder.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- StatefulContainerBuilder.java 7 Jul 2004 22:17:35 -0000 1.7
+++ StatefulContainerBuilder.java 18 Jul 2004 22:32:24 -0000 1.8
@@ -96,7 +96,8 @@
if (buildContainer) {
return createContainer(signatures, contextFactory, interceptorBuilder,
pool);
} else {
- return createConfiguration(classLoader, signatures, contextFactory,
interceptorBuilder, pool);
+ //stateful has no timers
+ return createConfiguration(classLoader, signatures, contextFactory,
interceptorBuilder, pool, null);
}
}
1.6 +3 -2
openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceContext.java
Index: StatefulInstanceContext.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceContext.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StatefulInstanceContext.java 7 Jul 2004 22:17:35 -0000 1.5
+++ StatefulInstanceContext.java 18 Jul 2004 22:32:24 -0000 1.6
@@ -71,7 +71,8 @@
private boolean dead = false;
public StatefulInstanceContext(Object containerId, EJBProxyFactory
proxyFactory, SessionBean instance, Object id, UserTransactionImpl userTransaction,
SystemMethodIndices systemMethodIndices, Interceptor systemChain, Set
unshareableResources, Set applicationManagedSecurityResources) {
- super(systemMethodIndices, systemChain, unshareableResources,
applicationManagedSecurityResources, instance, proxyFactory);
+ //currently stateful beans have no timer service.
+ super(systemMethodIndices, systemChain, unshareableResources,
applicationManagedSecurityResources, instance, proxyFactory, null);
this.containerId = containerId;
this.id = id;
statefulContext = new StatefulSessionContext(this, userTransaction);
1.8 +9 -2
openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceContextFactory.java
Index: StatefulInstanceContextFactory.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceContextFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- StatefulInstanceContextFactory.java 7 Jul 2004 22:17:35 -0000 1.7
+++ StatefulInstanceContextFactory.java 18 Jul 2004 22:32:24 -0000 1.8
@@ -60,6 +60,7 @@
import org.openejb.EJBInstanceFactory;
import org.openejb.EJBInstanceFactoryImpl;
import org.openejb.InstanceContextFactory;
+import org.openejb.timer.TimerServiceImpl;
import org.openejb.dispatch.InterfaceMethodSignature;
import org.openejb.dispatch.SystemMethodIndices;
import org.openejb.proxy.EJBProxyFactory;
@@ -95,8 +96,14 @@
this.systemChain = systemChain;
}
- public void setSignatures(InterfaceMethodSignature[] signatures) {
+ public SystemMethodIndices setSignatures(InterfaceMethodSignature[] signatures)
{
systemMethodIndices =
SystemMethodIndices.createSystemMethodIndices(signatures, "setSessionContext",
SessionContext.class.getName(), "unsetSessionContext");
+ //perhaps this should be null, stateful doesn't have timers.
+ return systemMethodIndices;
+ }
+
+ public void setTimerService(TimerServiceImpl timerService) {
+ //stateful beans have no timers.
}
public InstanceContext newInstance() throws Exception {
1.3 +3 -3
openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceInterceptor.java
Index: StatefulInstanceInterceptor.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/StatefulInstanceInterceptor.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StatefulInstanceInterceptor.java 21 Mar 2004 21:26:36 -0000 1.2
+++ StatefulInstanceInterceptor.java 18 Jul 2004 22:32:24 -0000 1.3
@@ -53,7 +53,7 @@
import org.apache.geronimo.core.service.Interceptor;
import org.apache.geronimo.core.service.Invocation;
import org.apache.geronimo.core.service.InvocationResult;
-import org.apache.geronimo.transaction.TransactionContext;
+import org.apache.geronimo.transaction.context.TransactionContext;
import org.openejb.EJBInvocation;
import org.openejb.cache.InstanceCache;
@@ -91,7 +91,7 @@
assert ctx.getInstance() != null: "Got a context with no instance
assigned";
id = ctx.getId();
cache.putActive(id, ctx);
-
+
TransactionContext transactionContext =
ejbInvocation.getTransactionContext();
transactionContext.associate(ctx);
} else {
1.5 +3 -3
openejb/modules/core/src/java/org/openejb/sfsb/StatefulInterceptorBuilder.java
Index: StatefulInterceptorBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/sfsb/StatefulInterceptorBuilder.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StatefulInterceptorBuilder.java 7 Jul 2004 22:17:35 -0000 1.4
+++ StatefulInterceptorBuilder.java 18 Jul 2004 22:32:24 -0000 1.5
@@ -67,7 +67,7 @@
public class StatefulInterceptorBuilder extends AbstractInterceptorBuilder {
public TwoChains buildInterceptorChains() {
- if (transactionManager == null) {
+ if (transactionContextManager == null) {
throw new IllegalStateException("Transaction manager must be set before
building the interceptor chain");
}
if (instancePool == null) {
@@ -94,7 +94,7 @@
firstInterceptor = new
PolicyContextHandlerEJBInterceptor(firstInterceptor);
}
firstInterceptor = new StatefulInstanceInterceptor(firstInterceptor,
containerId, instanceFactory, instanceCache);
- firstInterceptor = new TransactionContextInterceptor(firstInterceptor,
transactionManager, transactionPolicyManager);
+ firstInterceptor = new TransactionContextInterceptor(firstInterceptor,
transactionContextManager, transactionPolicyManager);
firstInterceptor = new SystemExceptionInterceptor(firstInterceptor,
ejbName);
return new TwoChains(firstInterceptor, systemChain);
}