@Test public void basicTransactionManagerTest() { String testName = getTestName(); Serializable s = generateId(mainObject); mainObject.setId(Long.valueOf(s.toString())); cache.put(s, mainObject); Serializable s2 = generateId(subObject); subObject.setId(Long.valueOf(s2.toString())); cache.put(s2, subObject);
@Test public void testSingleSessionCommandServiceAndJtaTransactionManagerTogether() { // Initialize drools environment stuff Environment env = createEnvironment(context); KieBase kbase = initializeKnowledgeBase(simpleRule); StatefulKnowledgeSession commandKSession = InfinispanKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); PersistableRunner commandService = (PersistableRunner) ((CommandBasedStatefulKnowledgeSession) commandKSession).getRunner(); InfinispanPersistenceContextManager jpm = (InfinispanPersistenceContextManager) getValueOfField("jpm", commandService); jpm.getApplicationScopedPersistenceContext(); @SuppressWarnings("unchecked") Cache<String, EntityHolder> cache = (Cache<String, EntityHolder>) getValueOfField("appScopedCache", jpm); TransactionTestObject mainObject = new TransactionTestObject(); mainObject.setName("mainCommand"); TransactionTestObject subObject = new TransactionTestObject(); subObject.setName("subCommand"); mainObject.setSubObject(subObject); HashMap<String, Object> emEnv = new HashMap<String, Object>(); emEnv.put(COMMAND_ENTITY_MANAGER_FACTORY, cm); emEnv.put(COMMAND_ENTITY_MANAGER, cache); TransactionTestCommand txTestCmd = new TransactionTestCommand(mainObject, subObject, emEnv); commandKSession.execute(txTestCmd); }
@Test public void basicTransactionRollbackTest() { Environment env = createEnvironment(context); //TransactionManager txm = (TransactionManager) env.get( EnvironmentName.TRANSACTION_MANAGER ); javax.transaction.TransactionManager tm = (javax.transaction.TransactionManager) env.get( EnvironmentName.TRANSACTION_MANAGER ); TransactionManager txm = new JtaTransactionManager( env.get( EnvironmentName.TRANSACTION ), env.get( EnvironmentName.TRANSACTION_SYNCHRONIZATION_REGISTRY ), tm ); // Create linked transactionTestObjects TransactionTestObject mainObject = new TransactionTestObject(); mainObject.setName("main"); TransactionTestObject subObject = new TransactionTestObject(); subObject.setName("sub"); mainObject.setSubObject(subObject); Cache<Serializable, Object> cache = cm.getCache("jbpm-configured-cache"); try { boolean notTxOwner = txm.begin(); Serializable s = generateId(mainObject); mainObject.setId(Long.valueOf(s.toString())); cache.put(s, mainObject); txm.rollback(notTxOwner); } catch ( Exception e ) { fail("There should not be an exception thrown here: " + e.getMessage()); } }