1 16 17 package org.springframework.transaction; 18 19 import org.springframework.transaction.support.AbstractPlatformTransactionManager; 20 import org.springframework.transaction.support.DefaultTransactionStatus; 21 22 26 class TestTransactionManager extends AbstractPlatformTransactionManager { 27 28 private static final Object TRANSACTION = "transaction"; 29 30 private final boolean existingTransaction; 31 32 private final boolean canCreateTransaction; 33 34 protected boolean begin = false; 35 36 protected boolean commit = false; 37 38 protected boolean rollback = false; 39 40 protected boolean rollbackOnly = false; 41 42 protected TestTransactionManager(boolean existingTransaction, boolean canCreateTransaction) { 43 this.existingTransaction = existingTransaction; 44 this.canCreateTransaction = canCreateTransaction; 45 setTransactionSynchronization(SYNCHRONIZATION_NEVER); 46 } 47 48 protected Object doGetTransaction() { 49 return TRANSACTION; 50 } 51 52 protected boolean isExistingTransaction(Object transaction) { 53 return existingTransaction; 54 } 55 56 protected void doBegin(Object transaction, TransactionDefinition definition) { 57 if (!TRANSACTION.equals(transaction)) { 58 throw new IllegalArgumentException ("Not the same transaction object"); 59 } 60 if (!this.canCreateTransaction) { 61 throw new CannotCreateTransactionException("Cannot create transaction"); 62 } 63 this.begin = true; 64 } 65 66 protected void doCommit(DefaultTransactionStatus status) { 67 if (!TRANSACTION.equals(status.getTransaction())) { 68 throw new IllegalArgumentException ("Not the same transaction object"); 69 } 70 this.commit = true; 71 } 72 73 protected void doRollback(DefaultTransactionStatus status) { 74 if (!TRANSACTION.equals(status.getTransaction())) { 75 throw new IllegalArgumentException ("Not the same transaction object"); 76 } 77 this.rollback = true; 78 } 79 80 protected void doSetRollbackOnly(DefaultTransactionStatus status) { 81 if (!TRANSACTION.equals(status.getTransaction())) { 82 throw new IllegalArgumentException ("Not the same transaction object"); 83 } 84 this.rollbackOnly = true; 85 } 86 87 } 88 | Popular Tags |