djencks 2004/07/18 18:32:21
Modified: modules/core/src/java/org/openejb/entity/bmp
BMPContainerBuilder.java BMPInstanceContext.java
BMPInstanceContextFactory.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.9 +9 -2
openejb/modules/core/src/java/org/openejb/entity/bmp/BMPContainerBuilder.java
Index: BMPContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/bmp/BMPContainerBuilder.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- BMPContainerBuilder.java 7 Jul 2004 22:17:33 -0000 1.8
+++ BMPContainerBuilder.java 18 Jul 2004 22:32:21 -0000 1.9
@@ -50,10 +50,16 @@
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
+import javax.ejb.TimedObject;
+import javax.ejb.Timer;
+import javax.management.ObjectName;
+
import org.openejb.AbstractContainerBuilder;
import org.openejb.EJBComponentType;
import org.openejb.InstanceContextFactory;
import org.openejb.InterceptorBuilder;
+import org.openejb.transaction.TransactionPolicy;
+import org.openejb.transaction.ContainerPolicy;
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.InterfaceMethodSignature;
import org.openejb.dispatch.MethodHelper;
@@ -99,11 +105,12 @@
// build the pool
InstancePool pool = createInstancePool(instanceFactory);
+ ObjectName timerName = getTimerName(beanClass);
if (buildContainer) {
return createContainer(signatures, contextFactory, interceptorBuilder,
pool);
} else {
- return createConfiguration(classLoader, signatures, contextFactory,
interceptorBuilder, pool);
+ return createConfiguration(classLoader, signatures, contextFactory,
interceptorBuilder, pool, timerName);
}
}
1.6 +5 -4
openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContext.java
Index: BMPInstanceContext.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContext.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- BMPInstanceContext.java 7 Jul 2004 22:17:33 -0000 1.5
+++ BMPInstanceContext.java 18 Jul 2004 22:32:21 -0000 1.6
@@ -52,9 +52,10 @@
import javax.ejb.EntityBean;
import org.apache.geronimo.core.service.Interceptor;
+import org.openejb.dispatch.SystemMethodIndices;
import org.openejb.entity.EntityInstanceContext;
import org.openejb.proxy.EJBProxyFactory;
-import org.openejb.dispatch.SystemMethodIndices;
+import org.openejb.timer.TimerServiceImpl;
/**
*
@@ -63,8 +64,8 @@
*/
public final class BMPInstanceContext extends EntityInstanceContext {
- public BMPInstanceContext(Object containerId, EJBProxyFactory proxyFactory,
EntityBean instance, Interceptor lifecycleInterceptorChain, SystemMethodIndices
systemMethodIndices, Set unshareableResources, Set
applicationManagedSecurityResources) throws Exception {
- super(containerId, proxyFactory, instance, lifecycleInterceptorChain,
systemMethodIndices, unshareableResources, applicationManagedSecurityResources);
+ public BMPInstanceContext(Object containerId, EJBProxyFactory proxyFactory,
EntityBean instance, Interceptor lifecycleInterceptorChain, SystemMethodIndices
systemMethodIndices, Set unshareableResources, Set
applicationManagedSecurityResources, TimerServiceImpl timerService) throws Exception {
+ super(containerId, proxyFactory, instance, lifecycleInterceptorChain,
systemMethodIndices, unshareableResources, applicationManagedSecurityResources,
timerService);
}
}
1.8 +13 -5
openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContextFactory.java
Index: BMPInstanceContextFactory.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContextFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- BMPInstanceContextFactory.java 7 Jul 2004 22:17:33 -0000 1.7
+++ BMPInstanceContextFactory.java 18 Jul 2004 22:32:21 -0000 1.8
@@ -58,6 +58,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;
@@ -74,7 +75,9 @@
private final Set applicationManagedSecurityResources;
private transient EJBProxyFactory proxyFactory;
private transient Interceptor systemChain;
- private SystemMethodIndices systemMethodIndices;
+ private transient SystemMethodIndices systemMethodIndices;
+ private TimerServiceImpl timerService;
+
public BMPInstanceContextFactory(Object containerId, Class beanClass, Set
unshareableResources, Set applicationManagedSecurityResources) {
this.containerId = containerId;
@@ -91,14 +94,19 @@
this.systemChain = systemChain;
}
- public void setSignatures(InterfaceMethodSignature[] signatures) {
+ public SystemMethodIndices setSignatures(InterfaceMethodSignature[] signatures)
{
systemMethodIndices =
SystemMethodIndices.createSystemMethodIndices(signatures, "setEntityContext",
EntityContext.class.getName(), "unsetEntityContext");
+ return systemMethodIndices;
+ }
+
+ public void setTimerService(TimerServiceImpl timerService) {
+ this.timerService = timerService;
}
public InstanceContext newInstance() throws Exception {
if (proxyFactory == null) {
- throw new IllegalStateException("ProxyFacory has not been set");
+ throw new IllegalStateException("ProxyFactory has not been set");
}
- return new BMPInstanceContext(containerId, proxyFactory, (EntityBean)
factory.newInstance(), systemChain, systemMethodIndices, unshareableResources,
applicationManagedSecurityResources);
+ return new BMPInstanceContext(containerId, proxyFactory, (EntityBean)
factory.newInstance(), systemChain, systemMethodIndices, unshareableResources,
applicationManagedSecurityResources, timerService);
}
}