package org.infinispan.transaction.tm; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.NotSupportedException; import javax.transaction.RollbackException; import javax.transaction.SystemException; import javax.transaction.UserTransaction; /** * A {@link UserTransaction} implementation that uses {@link EmbeddedTransactionManager}. * <p> * This implementation does not support transaction timeout and it does not cancel long running transactions. * <p> * See {@link EmbeddedBaseTransactionManager} for more details about its implementation. * * @author Bela Ban * @author Pedro Ruivo * @see EmbeddedBaseTransactionManager * @since 9.0 */ public class EmbeddedUserTransaction implements UserTransaction { private final EmbeddedTransactionManager tm; EmbeddedUserTransaction(EmbeddedTransactionManager tm) { this.tm = tm; } @Override public void begin() throws NotSupportedException, SystemException { tm.begin(); } @Override public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException { tm.commit(); } @Override public void rollback() throws IllegalStateException, SystemException { tm.rollback(); } @Override public void setRollbackOnly() throws IllegalStateException, SystemException { tm.setRollbackOnly(); } @Override public int getStatus() throws SystemException { return tm.getStatus(); } @Override public void setTransactionTimeout(int seconds) throws SystemException { throw new SystemException("not supported"); } }