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

Gavin King gavin.king at jboss.com
Fri Jun 22 16:53:42 EDT 2007


  User: gavin   
  Date: 07/06/22 16:53:42

  Modified:    src/main/org/jboss/seam/transaction       UTTransaction.java
                        package-info.java
  Added:       src/main/org/jboss/seam/transaction       ETTransaction.java
                        EntityTransaction.java HTransaction.java
                        HibernateTransaction.java
  Log:
  support for Hibernate and JPA tx management
  
  Revision  Changes    Path
  1.2       +1 -1      jboss-seam/src/main/org/jboss/seam/transaction/UTTransaction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UTTransaction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/UTTransaction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- UTTransaction.java	30 May 2007 20:16:00 -0000	1.1
  +++ UTTransaction.java	22 Jun 2007 20:53:42 -0000	1.2
  @@ -7,7 +7,7 @@
   import javax.transaction.SystemException;
   
   /**
  - * Wraps EJBContext transaction management in a
  + * Wraps JTA transaction management in a
    * UserTransaction interface.
    * 
    * @author Mike Youngstrom
  
  
  
  1.2       +1 -1      jboss-seam/src/main/org/jboss/seam/transaction/package-info.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: package-info.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/package-info.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- package-info.java	22 Jun 2007 09:18:45 -0000	1.1
  +++ package-info.java	22 Jun 2007 20:53:42 -0000	1.2
  @@ -3,7 +3,7 @@
    * 
    * @see Transaction
    */
  - at Namespace(value="http://jboss.com/products/seam/theme", prefix="org.jboss.seam.theme")
  + at Namespace(value="http://jboss.com/products/seam/transaction", prefix="org.jboss.seam.transaction")
   package org.jboss.seam.transaction;
   
   import org.jboss.seam.annotations.Namespace;
  
  
  
  1.1      date: 2007/06/22 20:53:42;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/transaction/ETTransaction.java
  
  Index: ETTransaction.java
  ===================================================================
  package org.jboss.seam.transaction;
  
  import javax.transaction.HeuristicMixedException;
  import javax.transaction.HeuristicRollbackException;
  import javax.transaction.NotSupportedException;
  import javax.transaction.RollbackException;
  import javax.transaction.Status;
  import javax.transaction.SystemException;
  
  /**
   * Wraps JPA transaction management in a
   * UserTransaction interface.
   * 
   * @author Mike Youngstrom
   * @author Gavin King
   * 
   */
  class ETTransaction extends UserTransaction
  {
     
     private javax.persistence.EntityTransaction delegate;
  
     ETTransaction(javax.persistence.EntityTransaction delegate)
     {
        this.delegate = delegate;
     }
     
     public void begin() throws NotSupportedException, SystemException
     {
        delegate.begin();
     }
  
     public void commit() throws RollbackException, HeuristicMixedException,
              HeuristicRollbackException, SecurityException, IllegalStateException, SystemException
     {
        delegate.commit();
     }
  
     public int getStatus() throws SystemException
     {
        return delegate.isActive() ? Status.STATUS_ACTIVE : Status.STATUS_NO_TRANSACTION;
     }
  
     public void rollback() throws IllegalStateException, SecurityException, SystemException
     {
        delegate.rollback();
     }
  
     public void setRollbackOnly() throws IllegalStateException, SystemException
     {
        delegate.setRollbackOnly();
     }
  
     public void setTransactionTimeout(int timeout) throws SystemException
     {
        throw new UnsupportedOperationException();
     }
  
  }
  
  
  
  1.1      date: 2007/06/22 20:53:42;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/transaction/EntityTransaction.java
  
  Index: EntityTransaction.java
  ===================================================================
  package org.jboss.seam.transaction;
  
  import static org.jboss.seam.annotations.Install.FRAMEWORK;
  
  import javax.naming.NamingException;
  import javax.persistence.EntityManager;
  
  import org.jboss.seam.ScopeType;
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Unwrap;
  import org.jboss.seam.annotations.intercept.BypassInterceptors;
  import org.jboss.seam.core.Expressions.ValueExpression;
  
  /**
   * Support for JPA EntityTransaction API
   * 
   * @author Gavin King
   * 
   */
  @Name("org.jboss.seam.transaction.transaction")
  @Scope(ScopeType.STATELESS)
  @Install(value=false, precedence=FRAMEWORK)
  @BypassInterceptors
  public class EntityTransaction extends Transaction
  {
  
     private ValueExpression<EntityManager> entityManager;
     
     @Unwrap
     @Override
     public UserTransaction getTransaction() throws NamingException
     {
        EntityManager em = entityManager.getValue();
        if ( em==null )
        {
           return createNoTransaction();
        }
        else
        {
           return createETTransaction(em);
        }
     }
  
     protected UserTransaction createETTransaction(EntityManager em)
     {
        return new ETTransaction( em.getTransaction() );
     }
  
     public ValueExpression<EntityManager> getEntityManager()
     {
        return entityManager;
     }
  
     public void setEntityManager(ValueExpression<EntityManager> entityManager)
     {
        this.entityManager = entityManager;
     }
  
  }
  
  
  
  1.1      date: 2007/06/22 20:53:42;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/transaction/HTransaction.java
  
  Index: HTransaction.java
  ===================================================================
  package org.jboss.seam.transaction;
  
  import javax.transaction.HeuristicMixedException;
  import javax.transaction.HeuristicRollbackException;
  import javax.transaction.NotSupportedException;
  import javax.transaction.RollbackException;
  import javax.transaction.Status;
  import javax.transaction.SystemException;
  
  /**
   * Wraps Hibernate transaction management in a
   * UserTransaction interface.
   * 
   * @author Gavin King
   * 
   */
  class HTransaction extends UserTransaction
  {
     
     private org.hibernate.Transaction delegate;
  
     HTransaction(org.hibernate.Transaction delegate)
     {
        this.delegate = delegate;
     }
     
     public void begin() throws NotSupportedException, SystemException
     {
        delegate.begin();
     }
  
     public void commit() throws RollbackException, HeuristicMixedException,
              HeuristicRollbackException, SecurityException, IllegalStateException, SystemException
     {
        delegate.commit();
     }
  
     public int getStatus() throws SystemException
     {
        return delegate.isActive() ? Status.STATUS_ACTIVE : Status.STATUS_NO_TRANSACTION;
     }
  
     public void rollback() throws IllegalStateException, SecurityException, SystemException
     {
        delegate.rollback();
     }
  
     public void setRollbackOnly() throws IllegalStateException, SystemException
     {
        delegate.rollback();
     }
  
     public void setTransactionTimeout(int timeout) throws SystemException
     {
        throw new UnsupportedOperationException();
     }
  
  }
  
  
  
  1.1      date: 2007/06/22 20:53:42;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/transaction/HibernateTransaction.java
  
  Index: HibernateTransaction.java
  ===================================================================
  package org.jboss.seam.transaction;
  
  import static org.jboss.seam.annotations.Install.FRAMEWORK;
  
  import javax.naming.NamingException;
  
  import org.hibernate.Session;
  import org.jboss.seam.ScopeType;
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Unwrap;
  import org.jboss.seam.annotations.intercept.BypassInterceptors;
  import org.jboss.seam.core.Expressions.ValueExpression;
  
  /**
   * Support for Hibernate Transaction API
   * 
   * @author Gavin King
   * 
   */
  @Name("org.jboss.seam.transaction.transaction")
  @Scope(ScopeType.STATELESS)
  @Install(value=false, precedence=FRAMEWORK)
  @BypassInterceptors
  public class HibernateTransaction extends Transaction
  {
  
     private ValueExpression<Session> session;
     
     @Unwrap
     @Override
     public UserTransaction getTransaction() throws NamingException
     {
        Session s = session.getValue();
        if ( s==null )
        {
           return createNoTransaction();
        }
        else
        {
           return createHTransaction(s);
        }
     }
  
     protected UserTransaction createHTransaction(Session session)
     {
        return new HTransaction( session.getTransaction() );
     }
  
     public ValueExpression<Session> getSession()
     {
        return session;
     }
  
     public void setSession(ValueExpression<Session> entityManager)
     {
        this.session = entityManager;
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list