Example usage for org.springframework.transaction.support TransactionCallbackWithoutResult TransactionCallbackWithoutResult

List of usage examples for org.springframework.transaction.support TransactionCallbackWithoutResult TransactionCallbackWithoutResult

Introduction

In this page you can find the example usage for org.springframework.transaction.support TransactionCallbackWithoutResult TransactionCallbackWithoutResult.

Prototype

TransactionCallbackWithoutResult

Source Link

Usage

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);
        }
    }
}