List of usage examples for org.springframework.transaction.support TransactionCallbackWithoutResult TransactionCallbackWithoutResult
TransactionCallbackWithoutResult
From source file:org.springextensions.neodatis.NeoDatisTransactionManagerTest.java
@Test public void testTransactionRollback() { final ODB odb = Mockito.mock(ODB.class); Mockito.when(odb.store(Mockito.isNull())).thenThrow(new RuntimeException()); PlatformTransactionManager tm = new NeoDatisTransactionManager(odb); TransactionTemplate tmpl = new TransactionTemplate(tm); Assert.assertFalse("Should not have a resource", TransactionSynchronizationManager.hasResource(odb)); Assert.assertFalse("There should no active synchronizations", TransactionSynchronizationManager.isSynchronizationActive()); try {/* w w w . ja va 2s . c o m*/ tmpl.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) { Assert.assertTrue(TransactionSynchronizationManager.hasResource(odb)); NeoDatisTemplate neoDatisTemplate = new NeoDatisTemplate(odb); neoDatisTemplate.store(null); } }); } catch (RuntimeException e) { // is ok } Assert.assertFalse("Should not have a resource", TransactionSynchronizationManager.hasResource(odb)); Assert.assertFalse("There should no active synchronizations", TransactionSynchronizationManager.isSynchronizationActive()); Mockito.verify(odb, Mockito.times(1)).rollback(); }
From source file:net.cpollet.jixture.tests.integration.hibernate3.BaseTestDatabaseTestSupport.java
@Test public void noCommitDatabaseTestSupportDoesNotCommit() { noCommitDatabaseTestSupport.addFixtures(Arrays.<Fixture>asList(new MappingFixture(createUser()))); noCommitDatabaseTestSupport.loadFixtures(); assertDatabaseContainsUser();//from w w w . j a va 2s .c o m executeInNewTransaction(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { assertDatabaseDoesNotContainUser(); } }); }
From source file:com.github.akiraly.db4j.uow.UowCascadePersistenceUuidTest.java
@Test(timeout = 5000) public void testCascadePersistenceOnUowWithUuid() { final String uow1User = "u200"; final Uow uow1 = new Uow(uow1User); EntityWithLongId<Uow> uowWithId1 = uowDaoFactory.newDao().lazyPersist(uow1); AuditedFoo auditedFoo = new AuditedFoo("bar", uowWithId1); EntityWithUuid<AuditedFoo> auditedFooWithId = transactionTemplate.execute(s -> { AuditedFooUuidDao auditedFooUuidDao = auditedFooUuidDaoFactory.newDao(uowDaoFactory.newDao()); Assert.assertEquals(0, auditedFooUuidDao.count()); EntityWithUuid<AuditedFoo> result = auditedFooUuidDao.lazyPersist(auditedFoo); Assert.assertNotNull(result.getId()); Assert.assertTrue(uowWithId1.getId() > 0); Assert.assertEquals(1, auditedFooUuidDao.count()); return result; });/*from w ww. jav a 2 s. com*/ transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { UowDao uowDao = uowDaoFactory.newDao(); AuditedFooUuidDao auditedFooUuidDao = auditedFooUuidDaoFactory.newDao(uowDao); Assert.assertEquals(1, auditedFooUuidDao.count()); AuditedFoo fooLoaded = auditedFooUuidDao.lazyFind(auditedFooWithId.getId()).getEntity(); Assert.assertNotNull(fooLoaded.getCreateUow().getEntity()); Assert.assertEquals(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); // TODO: make this work again - caching: // Assert.assertSame(fooLoaded.getCreateUow().getEntity(), // fooLoaded.getUpdateUow().getEntity()); EntityWithLongId<Uow> uow1Loaded = uowDao.lazyFind(uowWithId1.getId()); Assert.assertEquals(uow1User, uow1Loaded.getEntity().getUser()); Assert.assertEquals(fooLoaded.getCreateUow(), uow1Loaded); // TODO: make this work again - caching: // Assert.assertSame(fooLoaded.getCreateUow().getEntity(), // uow1Loaded.getEntity()); } }); final String uow2User = "u250"; Uow uow2 = new Uow(uow2User); EntityWithLongId<Uow> uowWithId2 = uowDaoFactory.newDao().lazyPersist(uow2); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { AuditedFooUuidDao auditedFooUuidDao = auditedFooUuidDaoFactory.newDao(uowDaoFactory.newDao()); EntityWithUuid<AuditedFoo> fooLoaded = auditedFooUuidDao.lazyFind(auditedFooWithId.getId()); assertEquals("bar", fooLoaded.getEntity().getBar()); AuditedFoo auditedFoo2 = fooLoaded.getEntity().updateBar("newBar", uowWithId2); auditedFooUuidDao.update(auditedFooWithId.getId(), auditedFoo2); } }); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { AuditedFooUuidDao auditedFooUuidDao = auditedFooUuidDaoFactory.newDao(uowDaoFactory.newDao()); EntityWithUuid<AuditedFoo> fooWithIdLoaded = auditedFooUuidDao.lazyFind(auditedFooWithId.getId()); AuditedFoo fooLoaded = fooWithIdLoaded.getEntity(); Assert.assertNotNull(fooLoaded.getCreateUow()); Assert.assertNotSame(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); Assert.assertNotEquals(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); Assert.assertEquals(uow1User, fooLoaded.getCreateUow().getEntity().getUser()); Assert.assertEquals(uowWithId1, fooLoaded.getCreateUow()); Assert.assertEquals(uow2User, fooLoaded.getUpdateUow().getEntity().getUser()); Assert.assertEquals(uowWithId2, fooLoaded.getUpdateUow()); assertEquals("newBar", fooLoaded.getBar()); } }); }
From source file:app.web.AbstractCrudController.java
@RequestMapping(value = { "/create", "/edit" }, method = RequestMethod.POST) public String sendForm(@Valid final T form, BindingResult bindingResult) { if (bindingResult.hasErrors()) { Class<T> clazz = getTypeClass(); return clazz.getSimpleName().toLowerCase() + "/form"; // stay on the same view so we can display the validation errors }// w w w.j av a 2s . c om if (form.isPersistent()) { new TransactionTemplate(transactionManager).execute(new TransactionCallbackWithoutResult() { protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) { form.update(); } }); } else { form.save(); // no need for a transaction? } // FIXME: find out why the item must be called "form" return "redirect:."; }
From source file:ch.tatool.app.service.impl.DataServiceImpl.java
/** * Save a session without finishing it.//from www. j a v a 2 s . co m */ public void saveSession(final ModuleSession moduleSession) { final ModuleImpl moduleImpl = (ModuleImpl) moduleSession.getModule(); moduleImpl.getTransactionTemplate().execute(new TransactionCallbackWithoutResult() { public void doInTransactionWithoutResult(TransactionStatus status) { moduleImpl.getSessionDAO().saveSession(moduleImpl, moduleSession); } }); }
From source file:com.github.akiraly.db4j.uow.UowCascadePersistenceTest.java
@Test(timeout = 5000) public void testCascadePersistenceOnUow() { final String uow1User = "u200"; final Uow uow1 = new Uow(uow1User); EntityWithLongId<Uow> uowWithId1 = fieldNotNull(uowDaoFactory, "uowDaoFactory").newDao().lazyPersist(uow1); AuditedFoo auditedFoo = new AuditedFoo("bar", uowWithId1); EntityWithLongId<AuditedFoo> auditedFooWithId = transactionTemplate.execute(s -> { AuditedFooDao auditedFooDao = auditedFooDaoFactory.newDao(uowDaoFactory.newDao()); Assert.assertEquals(0, auditedFooDao.count()); EntityWithLongId<AuditedFoo> result = auditedFooDao.lazyPersist(auditedFoo); Assert.assertEquals(1, result.getId()); Assert.assertTrue(uowWithId1.getId() > 0); Assert.assertEquals(1, auditedFooDao.count()); return result; });/*from w w w. j a v a 2s .c om*/ transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { UowDao uowDao = uowDaoFactory.newDao(); AuditedFooDao auditedFooDao = auditedFooDaoFactory.newDao(uowDao); Assert.assertEquals(1, auditedFooDao.count()); AuditedFoo fooLoaded = auditedFooDao.lazyFind(auditedFooWithId.getId()).getEntity(); Assert.assertNotNull(fooLoaded.getCreateUow().getEntity()); Assert.assertEquals(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); // TODO: make this work again - caching: // Assert.assertSame(fooLoaded.getCreateUow().getEntity(), // fooLoaded.getUpdateUow().getEntity()); EntityWithLongId<Uow> uow1Loaded = uowDao.lazyFind(uowWithId1.getId()); Assert.assertEquals(uow1User, uow1Loaded.getEntity().getUser()); Assert.assertEquals(fooLoaded.getCreateUow(), uow1Loaded); // TODO: make this work again - caching: // Assert.assertSame(fooLoaded.getCreateUow().getEntity(), // uow1Loaded.getEntity()); } }); final String uow2User = "u250"; Uow uow2 = new Uow(uow2User); EntityWithLongId<Uow> uowWithId2 = uowDaoFactory.newDao().lazyPersist(uow2); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { AuditedFooDao auditedFooDao = auditedFooDaoFactory.newDao(uowDaoFactory.newDao()); EntityWithLongId<AuditedFoo> fooLoaded = auditedFooDao.lazyFind(auditedFooWithId.getId()); assertEquals("bar", fooLoaded.getEntity().getBar()); AuditedFoo auditedFoo2 = fooLoaded.getEntity().updateBar("newBar", uowWithId2); auditedFooDao.update(auditedFooWithId.getId(), auditedFoo2); } }); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { AuditedFooDao auditedFooDao = auditedFooDaoFactory.newDao(uowDaoFactory.newDao()); EntityWithLongId<AuditedFoo> fooWithIdLoaded = auditedFooDao.lazyFind(auditedFooWithId.getId()); AuditedFoo fooLoaded = fooWithIdLoaded.getEntity(); Assert.assertNotNull(fooLoaded.getCreateUow()); Assert.assertNotSame(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); Assert.assertNotEquals(fooLoaded.getCreateUow(), fooLoaded.getUpdateUow()); Assert.assertEquals(uow1User, fooLoaded.getCreateUow().getEntity().getUser()); Assert.assertEquals(uowWithId1, fooLoaded.getCreateUow()); Assert.assertEquals(uow2User, fooLoaded.getUpdateUow().getEntity().getUser()); Assert.assertEquals(uowWithId2, fooLoaded.getUpdateUow()); assertEquals("newBar", fooLoaded.getBar()); } }); }
From source file:org.springextensions.db4o.Db4oTransactionManagerTest.java
@Test public void testTransactionRollback() throws Exception { final ExtObjectContainer container = mock(ExtObjectContainer.class); when(container.identity()).thenReturn(null); when(container.ext()).thenReturn(container); PlatformTransactionManager tm = new Db4oTransactionManager(container); TransactionTemplate tt = new TransactionTemplate(tm); Assert.assertTrue(!TransactionSynchronizationManager.hasResource(container), "Has no container"); Assert.assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active"); try {/*from w ww . ja v a 2s . c o m*/ tt.execute(new TransactionCallbackWithoutResult() { protected void doInTransactionWithoutResult(TransactionStatus status) { Assert.assertTrue(TransactionSynchronizationManager.hasResource(container), "Has thread session"); Db4oTemplate template = new Db4oTemplate(container); template.execute(new Db4oCallback() { public Object doInDb4o(ObjectContainer cont) { cont.ext().identity(); throw new RuntimeException(); } }); } }); } catch (RuntimeException e) { // it's okay } Assert.assertTrue(!TransactionSynchronizationManager.hasResource(container), "Has no container"); Assert.assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active"); verify(container).rollback(); }
From source file:com.dianping.lion.service.impl.ConfigReleaseServiceImpl.java
@Override public void executeSetTask(int projectId, int envId, String[] features, String[] keys, final boolean push2App) { List<ConfigSetTask> configSetTasks = configReleaseDao.getSetTask(projectId, envId, features, keys); for (final ConfigSetTask configSetTask : configSetTasks) { try {/*from ww w. ja v a2s .c om*/ this.transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { if (configSetTask.isDelete()) { Config config = configService.findConfigByKey(configSetTask.getKey()); if (config != null) { //???(context or instance?) } } else { configService.setConfigValue(configSetTask.getProjectId(), configSetTask.getEnvId(), configSetTask.getKey(), "", configSetTask.getContext(), configSetTask.getValue(), push2App ? ConfigSetType.RegisterAndPush : ConfigSetType.Register); } } }); } catch (RuntimeException e) { logger.error("Failed to execute configSet tasks while set config[" + configSetTask.getKey() + "], interrupt this execution.", e); throw new RuntimeBusinessException("Error happend when set config[" + configSetTask.getKey() + "], retry or contact lion " + "administrator.", e); } } }