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);
       }
   }
  
  
  

Reply via email to