djencks 2004/07/20 19:40:02 Modified: modules/core/src/java/org/openejb/entity/cmp CMPContainerBuilder.java CMPInstanceContext.java CMPInstanceContextFactory.java Log:
Extend timer service to entity beans Revision Changes Path 1.21 +12 -1 openejb/modules/core/src/java/org/openejb/entity/cmp/CMPContainerBuilder.java Index: CMPContainerBuilder.java =================================================================== RCS file: /home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/cmp/CMPContainerBuilder.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- CMPContainerBuilder.java 18 Jul 2004 22:32:22 -0000 1.20 +++ CMPContainerBuilder.java 20 Jul 2004 23:40:02 -0000 1.21 @@ -55,6 +55,8 @@ import java.util.Map; import javax.management.ObjectName; +import javax.ejb.TimedObject; +import javax.ejb.Timer; import org.apache.geronimo.deployment.DeploymentException; import org.apache.geronimo.kernel.ClassLoading; @@ -67,6 +69,7 @@ import org.openejb.dispatch.MethodHelper; import org.openejb.dispatch.MethodSignature; import org.openejb.dispatch.VirtualOperation; +import org.openejb.dispatch.EJBTimeoutOperation; import org.openejb.entity.BusinessMethod; import org.openejb.entity.dispatch.EJBLoadOperation; import org.openejb.entity.dispatch.EJBStoreOperation; @@ -397,6 +400,14 @@ // create a VirtualOperation for the method (if the method is understood) String name = beanMethod.getName(); + + if (TimedObject.class.isAssignableFrom(beanClass)) { + MethodSignature signature = new MethodSignature("ejbTimeout", new Class[]{Timer.class}); + vopMap.put( + MethodHelper.translateToInterface(signature) + , EJBTimeoutOperation.INSTANCE); + } + MethodSignature signature = new MethodSignature(beanMethod); if (name.startsWith("ejbCreate")) { 1.12 +3 -3 openejb/modules/core/src/java/org/openejb/entity/cmp/CMPInstanceContext.java Index: CMPInstanceContext.java =================================================================== RCS file: /home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/cmp/CMPInstanceContext.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- CMPInstanceContext.java 18 Jul 2004 22:32:22 -0000 1.11 +++ CMPInstanceContext.java 20 Jul 2004 23:40:02 -0000 1.12 @@ -59,7 +59,7 @@ import org.openejb.dispatch.SystemMethodIndices; import org.openejb.entity.EntityInstanceContext; import org.openejb.proxy.EJBProxyFactory; -import org.openejb.timer.TimerServiceImpl; +import org.openejb.timer.BasicTimerService; import org.tranql.cache.CacheRow; import org.tranql.cache.CacheRowState; import org.tranql.cache.FaultHandler; @@ -79,7 +79,7 @@ private CacheRow cacheRow; private TransactionContext transactionContext; - public CMPInstanceContext(Object containerId, EJBProxyFactory proxyFactory, InstanceOperation[] itable, FaultHandler loadFault, IdentityTransform primaryKeyTransform, CMPInstanceContextFactory contextFactory, Interceptor lifecycleInterceptorChain, SystemMethodIndices systemMethodIndices, Set unshareableResources, Set applicationManagedSecurityResources, TimerServiceImpl timerService) throws Exception { + public CMPInstanceContext(Object containerId, EJBProxyFactory proxyFactory, InstanceOperation[] itable, FaultHandler loadFault, IdentityTransform primaryKeyTransform, CMPInstanceContextFactory contextFactory, Interceptor lifecycleInterceptorChain, SystemMethodIndices systemMethodIndices, Set unshareableResources, Set applicationManagedSecurityResources, BasicTimerService timerService) throws Exception { super(containerId, proxyFactory, null, lifecycleInterceptorChain, systemMethodIndices, unshareableResources, applicationManagedSecurityResources, timerService); this.itable = itable; this.loadFault = loadFault; 1.12 +4 -4 openejb/modules/core/src/java/org/openejb/entity/cmp/CMPInstanceContextFactory.java Index: CMPInstanceContextFactory.java =================================================================== RCS file: /home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/cmp/CMPInstanceContextFactory.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- CMPInstanceContextFactory.java 18 Jul 2004 22:32:23 -0000 1.11 +++ CMPInstanceContextFactory.java 20 Jul 2004 23:40:02 -0000 1.12 @@ -69,7 +69,7 @@ import net.sf.cglib.proxy.NoOp; import net.sf.cglib.reflect.FastClass; import org.openejb.InstanceContextFactory; -import org.openejb.timer.TimerServiceImpl; +import org.openejb.timer.BasicTimerService; import org.openejb.dispatch.MethodHelper; import org.openejb.dispatch.MethodSignature; import org.openejb.dispatch.InterfaceMethodSignature; @@ -96,7 +96,7 @@ private transient EJBProxyFactory proxyFactory; private transient Interceptor systemChain; private transient SystemMethodIndices systemMethodIndices; - private transient TimerServiceImpl timerService; + private transient BasicTimerService timerService; public CMPInstanceContextFactory(Object containerId, IdentityTransform primaryKeyTransform, FaultHandler loadFault, Class beanClass, Map imap, Set unshareableResources, Set applicationManagedSecurityResources) throws ClassNotFoundException { this.containerId = containerId; @@ -139,7 +139,7 @@ return systemMethodIndices; } - public void setTimerService(TimerServiceImpl timerService) { + public void setTimerService(BasicTimerService timerService) { this.timerService = timerService; }