[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