dain        2005/03/01 18:34:29

  Modified:    modules/core/src/java/org/openejb/mdb EndpointHandler.java
                        MDBContainer.java MDBContext.java
                        MDBInstanceContext.java
                        MDBInstanceContextFactory.java
                        MDBInstanceInterceptor.java
  Log:

  Changed to use new TransactionManagerContext methods managing bean 
transactions
  Fixed improper handling of bean transactions in StatefulInstanceInterceptor
  Removed excessive handling of bean transactions in the SFSB and SLSB vops
  
  Revision  Changes    Path
  1.6       +7 -14     
openejb/modules/core/src/java/org/openejb/mdb/EndpointHandler.java
  
  Index: EndpointHandler.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/EndpointHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EndpointHandler.java      25 Feb 2005 23:06:11 -0000      1.5
  +++ EndpointHandler.java      1 Mar 2005 23:34:18 -0000       1.6
  @@ -49,21 +49,17 @@
   
   import java.lang.reflect.Method;
   import java.util.Map;
  -
   import javax.ejb.EJBException;
   import javax.resource.ResourceException;
   import javax.transaction.xa.XAResource;
  -import javax.transaction.Transaction;
   
   import net.sf.cglib.proxy.MethodInterceptor;
   import net.sf.cglib.proxy.MethodProxy;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.geronimo.core.service.InvocationResult;
  -import org.apache.geronimo.transaction.context.InheritableTransactionContext;
   import org.apache.geronimo.transaction.context.TransactionContext;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
  -import org.apache.geronimo.transaction.context.ContainerTransactionContext;
   import org.apache.geronimo.transaction.manager.NamedXAResource;
   import org.openejb.EJBInterfaceType;
   import org.openejb.EJBInvocation;
  @@ -174,7 +170,7 @@
           EJBInvocation invocation = new 
EJBInvocationImpl(EJBInterfaceType.LOCAL, null, methodIndex, args);
   
           // set the transaction context
  -        TransactionContext transactionContext = 
TransactionContext.getContext();
  +        TransactionContext transactionContext = 
transactionContextManager.getContext();
           if (transactionContext == null) {
               throw new IllegalStateException("Transaction context has not 
been set");
           }
  @@ -287,7 +283,7 @@
               }
   
               // restore the adapter transaction is possible
  -            TransactionContext.setContext(adapterTransaction);
  +            transactionContextManager.setContext(adapterTransaction);
           }
           adapterClassLoader = null;
           beanTransaction = null;
  @@ -309,7 +305,7 @@
               boolean transactionRequired = 
container.isDeliveryTransacted(methodIndex);
   
               // if the adapter gave us a transaction and we are required, 
just move on
  -            if (transactionRequired && adapterTransaction instanceof 
InheritableTransactionContext) {
  +            if (transactionRequired && adapterTransaction != null && 
adapterTransaction.isInheritable()) {
                   return;
               }
   
  @@ -323,7 +319,7 @@
                   // start a new container transaction
                   beanTransaction = 
transactionContextManager.newContainerTransactionContext();
                   if (xaResource != null) {
  -                    ((ContainerTransactionContext) 
beanTransaction).getTransaction().enlistResource(xaResource);
  +                    beanTransaction.enlistResource(xaResource);
                   }
               } else {
                   // enter an unspecified transaction context
  @@ -360,11 +356,8 @@
                   try {
                       //TODO is this delist necessary???????
                       //check we are really in a transaction.
  -                    if (xaResource != null && beanTransaction instanceof 
ContainerTransactionContext) {
  -                        Transaction transaction = 
((ContainerTransactionContext) beanTransaction).getTransaction();
  -                        if (transaction != null) {
  -                            transaction.delistResource(xaResource, 
XAResource.TMSUSPEND);
  -                        }
  +                    if (xaResource != null && 
beanTransaction.isInheritable() && beanTransaction.isActive()) {
  +                        beanTransaction.delistResource(xaResource, 
XAResource.TMSUSPEND);
                       }
                   } catch (Throwable t) {
                       beanTransaction.setRollbackOnly();
  
  
  
  1.25      +2 -2      
openejb/modules/core/src/java/org/openejb/mdb/MDBContainer.java
  
  Index: MDBContainer.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/MDBContainer.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- MDBContainer.java 14 Feb 2005 18:32:30 -0000      1.24
  +++ MDBContainer.java 1 Mar 2005 23:34:18 -0000       1.25
  @@ -75,8 +75,8 @@
   import org.apache.geronimo.timer.PersistenceException;
   import org.apache.geronimo.timer.ThreadPooledTimer;
   import org.apache.geronimo.transaction.TrackedConnectionAssociator;
  -import org.apache.geronimo.transaction.UserTransactionImpl;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
  +import org.apache.geronimo.transaction.context.UserTransactionImpl;
   import org.apache.geronimo.transaction.manager.NamedXAResource;
   import org.apache.geronimo.transaction.manager.WrapperNamedXAResource;
   import org.openejb.TwoChains;
  
  
  
  1.8       +2 -2      
openejb/modules/core/src/java/org/openejb/mdb/MDBContext.java
  
  Index: MDBContext.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/MDBContext.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- MDBContext.java   14 Feb 2005 18:32:30 -0000      1.7
  +++ MDBContext.java   1 Mar 2005 23:34:20 -0000       1.8
  @@ -57,7 +57,7 @@
   import javax.transaction.UserTransaction;
   import javax.xml.rpc.handler.MessageContext;
   
  -import org.apache.geronimo.transaction.UserTransactionImpl;
  +import org.apache.geronimo.transaction.context.UserTransactionImpl;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
   import org.openejb.EJBContextImpl;
   import org.openejb.EJBInstanceContext;
  
  
  
  1.13      +2 -2      
openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceContext.java
  
  Index: MDBInstanceContext.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- MDBInstanceContext.java   25 Feb 2005 23:06:11 -0000      1.12
  +++ MDBInstanceContext.java   1 Mar 2005 23:34:20 -0000       1.13
  @@ -52,8 +52,8 @@
   import javax.ejb.MessageDrivenBean;
   
   import org.apache.geronimo.core.service.Interceptor;
  -import org.apache.geronimo.transaction.UserTransactionImpl;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
  +import org.apache.geronimo.transaction.context.UserTransactionImpl;
   import org.openejb.AbstractInstanceContext;
   import org.openejb.EJBOperation;
   import org.openejb.EJBInvocation;
  
  
  
  1.6       +2 -2      
openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceContextFactory.java
  
  Index: MDBInstanceContextFactory.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceContextFactory.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MDBInstanceContextFactory.java    5 Oct 2004 07:04:01 -0000       1.5
  +++ MDBInstanceContextFactory.java    1 Mar 2005 23:34:21 -0000       1.6
  @@ -53,7 +53,7 @@
   import javax.ejb.MessageDrivenContext;
   
   import org.apache.geronimo.transaction.InstanceContext;
  -import org.apache.geronimo.transaction.UserTransactionImpl;
  +import org.apache.geronimo.transaction.context.UserTransactionImpl;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
   import org.apache.geronimo.core.service.Interceptor;
   import org.openejb.EJBInstanceFactory;
  
  
  
  1.3       +5 -3      
openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceInterceptor.java
  
  Index: MDBInstanceInterceptor.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/mdb/MDBInstanceInterceptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MDBInstanceInterceptor.java       25 Feb 2005 23:06:11 -0000      1.2
  +++ MDBInstanceInterceptor.java       1 Mar 2005 23:34:21 -0000       1.3
  @@ -54,6 +54,7 @@
   import org.apache.geronimo.core.service.Invocation;
   import org.apache.geronimo.core.service.InvocationResult;
   import org.apache.geronimo.transaction.InstanceContext;
  +import org.apache.geronimo.transaction.context.TransactionContext;
   
   
   /**
  @@ -85,7 +86,8 @@
           // initialize the context and set it into the invocation
           ejbInvocation.setEJBInstanceContext(ctx);
   
  -        InstanceContext oldContext = 
ejbInvocation.getTransactionContext().beginInvocation(ctx);
  +        TransactionContext transactionContext = 
ejbInvocation.getTransactionContext();
  +        InstanceContext oldContext = transactionContext.beginInvocation(ctx);
           try {
               InvocationResult result = next.invoke(invocation);
               return result;
  @@ -94,7 +96,7 @@
               ctx.die();
               throw t;
           } finally {
  -            ejbInvocation.getTransactionContext().endInvocation(oldContext);
  +            transactionContext.endInvocation(oldContext);
   
               // remove the reference to the context from the invocation
               ejbInvocation.setEJBInstanceContext(null);
  
  
  

Reply via email to