use of javax.transaction.TransactionManager in project hibernate-orm by hibernate.
the class BitronixJtaPlatform method locateTransactionManager.
@Override
protected TransactionManager locateTransactionManager() {
try {
Class transactionManagerServicesClass = serviceRegistry().getService(ClassLoaderService.class).classForName(TM_CLASS_NAME);
final Method getTransactionManagerMethod = transactionManagerServicesClass.getMethod("getTransactionManager");
return (TransactionManager) getTransactionManagerMethod.invoke(null);
} catch (Exception e) {
throw new JtaPlatformException("Could not locate Bitronix TransactionManager", e);
}
}
use of javax.transaction.TransactionManager in project hibernate-orm by hibernate.
the class AbstractBasicJtaTestScenarios method explicitJoinOutsideTxnTest.
@Test
@SuppressWarnings("EmptyCatchBlock")
public void explicitJoinOutsideTxnTest() throws Exception {
// pre conditions
final TransactionManager tm = JtaPlatformStandardTestingImpl.INSTANCE.transactionManager();
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
final JtaTransactionCoordinatorImpl transactionCoordinator = buildTransactionCoordinator(false);
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
// try to force a join, should fail...
try {
transactionCoordinator.explicitJoin();
fail("Expecting explicitJoin() call outside of transaction to fail");
} catch (TransactionRequiredForJoinException expected) {
}
}
use of javax.transaction.TransactionManager in project hibernate-orm by hibernate.
the class AbstractBasicJtaTestScenarios method rollbackBmtUsageTest.
@Test
public void rollbackBmtUsageTest() throws Exception {
final JtaTransactionCoordinatorImpl transactionCoordinator = buildTransactionCoordinator(true);
// pre conditions
final TransactionManager tm = JtaPlatformStandardTestingImpl.INSTANCE.transactionManager();
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
assertFalse(transactionCoordinator.isSynchronizationRegistered());
// begin the transaction
transactionCoordinator.getTransactionDriverControl().begin();
assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
assertTrue(transactionCoordinator.isSynchronizationRegistered());
// create and add a local Synchronization
SynchronizationCollectorImpl localSync = new SynchronizationCollectorImpl();
transactionCoordinator.getLocalSynchronizations().registerSynchronization(localSync);
// rollback the transaction
transactionCoordinator.getTransactionDriverControl().rollback();
// post conditions
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
assertFalse(transactionCoordinator.isSynchronizationRegistered());
assertEquals(0, localSync.getBeforeCompletionCount());
assertEquals(0, localSync.getSuccessfulCompletionCount());
assertEquals(1, localSync.getFailedCompletionCount());
}
use of javax.transaction.TransactionManager in project hibernate-orm by hibernate.
the class AbstractBasicJtaTestScenarios method assureMultipleJoinCallsNoOp.
@Test
public void assureMultipleJoinCallsNoOp() throws Exception {
// pre conditions
final TransactionManager tm = JtaPlatformStandardTestingImpl.INSTANCE.transactionManager();
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
// begin the transaction
tm.begin();
assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
final JtaTransactionCoordinatorImpl transactionCoordinator = buildTransactionCoordinator(false);
// no auto-join now
assertFalse(transactionCoordinator.isJoined());
transactionCoordinator.explicitJoin();
assertTrue(transactionCoordinator.isJoined());
transactionCoordinator.explicitJoin();
transactionCoordinator.explicitJoin();
transactionCoordinator.explicitJoin();
transactionCoordinator.explicitJoin();
assertTrue(transactionCoordinator.isJoined());
// create and add a local Synchronization
SynchronizationCollectorImpl localSync = new SynchronizationCollectorImpl();
transactionCoordinator.getLocalSynchronizations().registerSynchronization(localSync);
// commit the transaction
tm.commit();
// post conditions
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
assertFalse(transactionCoordinator.isSynchronizationRegistered());
assertEquals(1, localSync.getBeforeCompletionCount());
assertEquals(1, localSync.getSuccessfulCompletionCount());
assertEquals(0, localSync.getFailedCompletionCount());
}
use of javax.transaction.TransactionManager in project hibernate-orm by hibernate.
the class AbstractBasicJtaTestScenarios method testMarkRollbackOnly.
@Test
@SuppressWarnings("EmptyCatchBlock")
public void testMarkRollbackOnly() throws Exception {
JtaTransactionCoordinatorImpl transactionCoordinator = new JtaTransactionCoordinatorImpl(transactionCoordinatorBuilder, owner, true, JtaPlatformStandardTestingImpl.INSTANCE, preferUserTransactions(), true);
// pre conditions
final TransactionManager tm = JtaPlatformStandardTestingImpl.INSTANCE.transactionManager();
assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
assertEquals(TransactionStatus.NOT_ACTIVE, transactionCoordinator.getTransactionDriverControl().getStatus());
transactionCoordinator.getTransactionDriverControl().begin();
assertEquals(TransactionStatus.ACTIVE, transactionCoordinator.getTransactionDriverControl().getStatus());
transactionCoordinator.getTransactionDriverControl().markRollbackOnly();
assertEquals(TransactionStatus.MARKED_ROLLBACK, transactionCoordinator.getTransactionDriverControl().getStatus());
try {
transactionCoordinator.getTransactionDriverControl().commit();
} catch (TransactionException expected) {
} finally {
assertEquals(TransactionStatus.NOT_ACTIVE, transactionCoordinator.getTransactionDriverControl().getStatus());
}
}
Aggregations