use of com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple in project narayana by jbosstm.
the class TerminationTest method test.
@Test
public void test() {
boolean commit = true;
Control myControl = null;
ORB myORB = null;
RootOA myOA = null;
try {
myORB = ORB.getInstance("test");
myOA = OA.getRootOA(myORB);
myORB.initORB(new String[] {}, null);
myOA.initOA();
ORBManager.setORB(myORB);
ORBManager.setPOA(myOA);
TransactionFactoryImple theOTS = new TransactionFactoryImple();
System.out.println("Creating transaction with 2 second timeout.");
myControl = theOTS.create(2);
assertNotNull(myControl);
Terminator handle = myControl.get_terminator();
try {
System.out.println("Sleeping for 5 seconds.");
Thread.sleep(5000);
} catch (Exception e) {
}
if (handle != null) {
System.out.print("Attempting to ");
if (commit)
System.out.println("commit transaction. Should fail!");
else
System.out.println("rollback transaction. Should fail!.");
if (commit)
handle.commit(true);
else
handle.rollback();
assertFalse(commit);
System.out.println("\nNow attempting to destroy transaction. Should fail!");
OTSManager.destroyControl(myControl);
} else
System.err.println("No transaction terminator!");
} catch (UserException e) {
System.err.println("Caught UserException: " + e);
} catch (SystemException e) {
System.err.println("Caught SystemException: " + e);
try {
Coordinator coord = myControl.get_coordinator();
Status s = coord.get_status();
System.err.println("Transaction status: " + com.arjuna.ats.jts.utils.Utility.stringStatus(s));
coord = null;
} catch (Exception ex) {
}
}
try {
CurrentImple current = OTSImpleManager.current();
FakeCheckedAction act = new FakeCheckedAction();
current.set_timeout(2);
current.setCheckedAction(act);
assertEquals(act, current.getCheckedAction());
System.out.println("\nNow creating current transaction with 2 second timeout.");
current.begin();
myControl = current.get_control();
try {
System.out.println("Sleeping for 5 seconds.");
Thread.sleep(5000);
} catch (Exception e) {
}
System.out.print("Attempting to ");
if (commit)
System.out.println("commit transaction. Should fail!");
else
System.out.println("rollback transaction. Should fail!.");
if (commit)
current.commit(true);
else
current.rollback();
assertFalse(commit);
assertTrue(act.called);
} catch (UserException e) {
System.err.println("Caught UserException: " + e);
System.out.println("Test did not completed successfully.");
} catch (SystemException e) {
System.err.println("Caught SystemException: " + e);
try {
Coordinator coord = myControl.get_coordinator();
Status s = coord.get_status();
System.err.println("Transaction status: " + com.arjuna.ats.jts.utils.Utility.stringStatus(s));
myControl = null;
coord = null;
} catch (Exception ex) {
}
System.out.println("Test completed successfully.");
}
myOA.destroy();
myORB.shutdown();
}
use of com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple in project narayana by jbosstm.
the class TransactionFactoryUnitTest method testBasic.
@Test
public void testBasic() throws Exception {
TransactionFactoryImple factory = new TransactionFactoryImple("test");
arjPropertyManager.getCoordinatorEnvironmentBean().setEnableStatistics(true);
try {
factory.numberOfTransactions(TransactionType.TransactionTypeActive);
// fail();
} catch (final Inactive ex) {
} catch (final NoTransaction ex) {
}
ControlImple tx = factory.createLocal(1000);
assertTrue(tx != null);
org.omg.CosTransactions.otid_t[] txId = null;
try {
txId = factory.numberOfTransactions(TransactionType.TransactionTypeActive);
} catch (final Throwable ex) {
fail();
}
try {
if (factory.getChildTransactions(txId[0]) != null)
fail();
} catch (final Throwable ex) {
fail();
}
org.omg.CosTransactions.Status status = factory.getCurrentStatus(txId[0]);
assertTrue(status == org.omg.CosTransactions.Status.StatusActive);
assertTrue(factory.getStatus(txId[0]) == org.omg.CosTransactions.Status.StatusActive);
Control proxy = factory.createProxy(tx.get_coordinator(), tx.get_terminator());
assertTrue(proxy != null);
Control propagated = factory.createPropagatedControl(tx.get_coordinator());
assertTrue(propagated != null);
assertTrue(Utility.getUid(proxy).equals(Utility.getUid(propagated)));
GlobalTransactionInfo info = factory.getGlobalInfo();
assertTrue(info != null);
assertEquals(info.totalNumberOfTransactions, 1);
assertEquals(info.numberOfHeuristics, 0);
factory.numberOfTransactions(TransactionType.TransactionTypeUnresolved);
try {
tx.getImplHandle().rollback();
} catch (final Throwable ex) {
}
}
use of com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple in project narayana by jbosstm.
the class TransactionFactoryUnitTest method testInfo.
@Test
public void testInfo() throws Exception {
TransactionFactoryImple factory = new TransactionFactoryImple("test");
ControlImple tx = factory.createLocal(1000);
TransactionInfo info = factory.getTransactionInfo(Utility.uidToOtid(tx.get_uid()));
assertEquals(info.currentDepth, 1);
assertEquals(info.timeout, 0);
assertEquals(info.numberOfThreads, 0);
try {
tx.getImplHandle().rollback();
} catch (final Throwable ex) {
}
}
use of com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple in project narayana by jbosstm.
the class TransactionFactoryUnitTest method testCompare.
@Test
public void testCompare() throws Exception {
TransactionFactoryImple factory = new TransactionFactoryImple("test");
ControlImple tx = factory.createLocal(1000);
Control proxy = factory.getTransaction(Utility.uidToOtid(tx.get_uid()));
assertTrue(Utility.getUid(proxy).equals(tx.get_uid()));
try {
tx.getImplHandle().rollback();
} catch (final Throwable ex) {
}
}
use of com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple in project narayana by jbosstm.
the class HelperUnitTest method test.
@Test
public void test() throws Exception {
Helper help = new Helper();
TransactionFactoryImple factory = new TransactionFactoryImple("test");
ControlImple tx = factory.createLocal(1000);
assertTrue(Helper.localAction(tx.getControl()) != null);
assertEquals(Helper.localControl(tx.getControl()), tx);
assertTrue(Helper.getUidCoordinator(tx.get_coordinator()) != null);
assertTrue(Helper.getUidCoordinator(tx.getControl()) != null);
assertTrue(Helper.isUidCoordinator(tx.get_coordinator()));
}
Aggregations