[jboss-cvs] jboss-seam/src/main/org/jboss/seam/interceptors ...

Gavin King gavin.king at jboss.com
Sat Dec 16 05:03:45 EST 2006


  User: gavin   
  Date: 06/12/16 05:03:45

  Modified:    src/main/org/jboss/seam/interceptors 
                        TransactionInterceptor.java
  Log:
  JBSEAM-595
  
  Revision  Changes    Path
  1.10      +16 -4     jboss-seam/src/main/org/jboss/seam/interceptors/TransactionInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: TransactionInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/interceptors/TransactionInterceptor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- TransactionInterceptor.java	1 Nov 2006 02:54:02 -0000	1.9
  +++ TransactionInterceptor.java	16 Dec 2006 10:03:45 -0000	1.10
  @@ -1,6 +1,7 @@
   package org.jboss.seam.interceptors;
   
   import java.lang.reflect.AnnotatedElement;
  +import java.lang.reflect.Method;
   
   import org.jboss.seam.annotations.AroundInvoke;
   import org.jboss.seam.annotations.Interceptor;
  @@ -26,17 +27,28 @@
            }
   
            @Override
  -         protected boolean isTransactional()
  +         protected boolean isNewTransactionRequired(boolean transactionActive)
            {
  -            return isTransactional( invocation.getMethod() ) || 
  -                  isTransactional( getComponent().getBeanClass() );
  +            return isNewTransactionRequired( invocation.getMethod(), getComponent().getBeanClass(), transactionActive );
            }
   
  -         private boolean isTransactional(AnnotatedElement element)
  +         private boolean isNewTransactionRequired(Method method, Class beanClass, boolean transactionActive)
  +         {
  +            return isTransactionAnnotationPresent(method) ? 
  +                  isNewTransactionRequired(method, transactionActive) :
  +                  isTransactionAnnotationPresent(beanClass) && isNewTransactionRequired(beanClass, transactionActive);
  +         }
  +
  +         private boolean isTransactionAnnotationPresent(AnnotatedElement element)
            {
               return element.isAnnotationPresent(Transactional.class);
            }
            
  +         private boolean isNewTransactionRequired(AnnotatedElement element, boolean transactionActive)
  +         {
  +            return element.getAnnotation(Transactional.class).value().isNewTransactionRequired(transactionActive);
  +         }
  +         
         }.workInTransaction();      
      }
   
  
  
  



More information about the jboss-cvs-commits mailing list