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

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

Introduction

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

Prototype

public TransactionTemplate(PlatformTransactionManager transactionManager) 

Source Link

Document

Construct a new TransactionTemplate using the given transaction manager.

Usage

From source file:com.hmsinc.epicenter.tools.geocoder.FacilityGeocoder.java

/**
 * @param args//from   w  w w  .j av a2 s  .  c o  m
 */
@SuppressWarnings("unchecked")
public static void main(String[] args) {

    if (args.length == 5) {

        System.setProperty("db.driver", args[0]);
        System.setProperty("db.url", args[1]);
        System.setProperty("db.type", args[2]);
        System.setProperty("db.user", args[3]);
        System.setProperty("db.password", args[4]);

        appContext = new ClassPathXmlApplicationContext(CONTEXT_FILES);

        final ProviderRepository providerRepository = (ProviderRepository) appContext
                .getBean("providerRepository");
        Validate.notNull(providerRepository);

        final Geocoder geocoder = (Geocoder) appContext.getBean("geocoder");
        Validate.notNull(geocoder);

        final PlatformTransactionManager tm = (PlatformTransactionManager) appContext
                .getBean("transactionManager");
        Validate.notNull(tm);

        final TransactionTemplate template = new TransactionTemplate(tm);

        List<Facility> facilities = (List<Facility>) template.execute(new TransactionCallback() {

            /*
             * (non-Javadoc)
             * 
             * @see org.springframework.transaction.support.TransactionCallback#doInTransaction(org.springframework.transaction.TransactionStatus)
             */
            public List<Facility> doInTransaction(TransactionStatus status) {
                return providerRepository.getList(Facility.class);
            }

        });

        for (final Facility facility : facilities) {
            if (facility.getGeometry() == null && facility.getAddress1() != null && facility.getCity() != null
                    && facility.getState() != null && facility.getZipcode() != null) {
                template.execute(new TransactionCallbackWithoutResult() {

                    /*
                     * (non-Javadoc)
                     * 
                     * @see org.springframework.transaction.support.TransactionCallbackWithoutResult#doInTransactionWithoutResult(org.springframework.transaction.TransactionStatus)
                     */
                    @Override
                    protected void doInTransactionWithoutResult(TransactionStatus status) {

                        System.out.println(facility.toString());
                        final Geometry geom = geocoder.geocode(facility.getAddress1(), facility.getCity(),
                                facility.getState(), facility.getZipcode());
                        if (geom != null) {
                            facility.setGeometry(geom);
                            providerRepository.update(facility);
                        }
                    }
                });

            }

        }

    } else {
        usage();
    }

}

From source file:org.openvpms.component.business.service.archetype.rule.ActSimpleRules.java

/**
 * Creates and saves a new act in a new transaction.
 * On return the supplied act will have a new unsaved relationship to the
 * new act.//from   ww w  . ja v  a  2s.com
 *
 * @param act     the act
 * @param service the archetype service
 * @param manager the transaction manager
 * @see ArchetypeRuleServiceTestCase#testTransactionIsolation
 */
public static void insertNewActInIsolation(Act act, final IArchetypeService service,
        PlatformTransactionManager manager) {
    final Act related = (Act) service.create("act.simple");

    TransactionTemplate template = new TransactionTemplate(manager);
    template.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);

    // save the new act in a new transaction, suspending any current
    // transaction
    template.execute(new TransactionCallback() {
        public Object doInTransaction(TransactionStatus status) {
            service.save(related);
            return null;
        }
    });

    ActRelationship relationship = (ActRelationship) service.create("actRelationship.simple");
    relationship.setName("a simple relationship");
    relationship.setSource(related.getObjectReference());
    relationship.setTarget(act.getObjectReference());

    related.addActRelationship(relationship);
    act.addActRelationship(relationship);
}

From source file:fi.hsl.parkandride.config.TestConfiguration.java

@Bean
public TransactionTemplate transactionTemplate(PlatformTransactionManager manager) {
    return new TransactionTemplate(manager);
}

From source file:net.chrisrichardson.foodToGo.ui.domain.servlets.InitializeDatabaseServlet.java

public void init(ServletConfig sc) throws ServletException {
    super.init(sc);
    HibernateTransactionManager tm = (HibernateTransactionManager) getBean("myTransactionManager",
            HibernateTransactionManager.class);
    TransactionTemplate tt = new TransactionTemplate(tm);
    tt.execute(new TransactionCallback() {

        public Object doInTransaction(TransactionStatus status) {
            HibernateTemplate hibernateTemplate = (HibernateTemplate) getBean("HibernateTemplate",
                    HibernateTemplate.class);
            hibernateTemplate.save(RestaurantMother.makeRestaurant());
            return null;
        }/*from   ww  w  .java2s  .  c  o m*/
    });
}

From source file:org.activiti.spring.SpringTransactionInterceptor.java

@SuppressWarnings("unchecked")
public <T> T execute(final Command<T> command) {
    TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setPropagationBehavior(transactionPropagation);
    T result = (T) transactionTemplate.execute(new TransactionCallback() {
        public Object doInTransaction(TransactionStatus status) {
            return next.execute(command);
        }//w ww  . ja  v a 2 s.c  om
    });
    return result;
}

From source file:com.apress.prospringintegration.springenterprise.stocks.transactions.template.TransactionalConfig.java

@Bean
public TransactionTemplate transactionTemplate() throws Exception {
    return new TransactionTemplate(transactionManager());
}

From source file:com.dinstone.jtds.programmatic.ProgrammaticTransactionServiceComponent.java

public void updateUserInfo(final UserInfo user) throws Exception {
    TransactionTemplate transactionTemplate = new TransactionTemplate(txManager);
    transactionTemplate.setName("ProgrammaticTransactionService");

    transactionTemplate.execute(new TransactionCallbackWithoutResult() {

        @Override//  w w  w. j  a  v a2s  .  co  m
        protected void doInTransactionWithoutResult(TransactionStatus status) {
            doUpdate(user);
            findUserInfo(user);
            deException(user);
        }

    });

}

From source file:org.springextensions.neodatis.NeoDatisTransactionManagerTest.java

@Test
public void testTransactionCommit() throws Exception {
    final ODB odb = Mockito.mock(ODB.class);
    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());

    tmpl.execute(new TransactionCallbackWithoutResult() {
        @Override/*from   ww w .j av  a 2  s  .c om*/
        protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
            Assert.assertTrue(TransactionSynchronizationManager.hasResource(odb));
            NeoDatisTemplate neoDatisTemplate = new NeoDatisTemplate(odb);
            neoDatisTemplate.store(null);
        }
    });

    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)).commit();

}

From source file:py.una.pol.karaku.test.util.DatabaseUtils.java

/**
 * Ejecuta el DDL pasado, una vez por valor en el parmetro params.
 *
 * <p>/*from  w w  w.  j  a v  a2 s  .  c o  m*/
 * Ejemplo de uso: Supongamos que deseamos crear una lista de secuencias,
 * entonces utilizamos el siguiente cdigo:
 *
 * <pre>
 * String[] secuencias = new String[] { &quot;seq1&quot;, &quot;seq2&quot;, &quot;seq3&quot; };
 * DatabaseUtils.executeDDL(&quot;Create sequence %d&quot;, context, secuencias);
 * </pre>
 *
 * Lo mismo ejecuta los siguientes comandos:
 *
 * <pre>
 * Create sequence seq1;
 * Create sequence seq2;
 * Create sequence seq3;
 * </pre>
 *
 * <h1>No se debe ejecutar este mtodo dentro de una transaccin, pues el
 * mismo la comitea</h1>
 *
 * @param testContext
 * @param sequences
 */
public static void executeDDL(final String ddl, ApplicationContext testContext, final String[] params) {

    final HibernateTransactionManager tm = getTransactionManager(testContext);
    final TransactionTemplate tt = new TransactionTemplate(tm);
    tt.execute(new TransactionCallbackWithoutResult() {

        @Override
        protected void doInTransactionWithoutResult(TransactionStatus status) {

            for (String s : params) {
                if (StringUtils.isInvalid(s)) {
                    continue;
                }

                SQLQuery sql = tm.getSessionFactory().getCurrentSession().createSQLQuery(String.format(ddl, s));
                sql.executeUpdate();
            }

        }
    });
}

From source file:org.springextensions.db4o.Db4oTransactionManagerTest.java

@Test
public void testTransactionCommit() throws Exception {
    final ExtObjectContainer container = mock(ExtObjectContainer.class);
    when(container.identity()).thenReturn(null);

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

    tt.execute(new TransactionCallbackWithoutResult() {
        protected void doInTransactionWithoutResult(TransactionStatus status) {
            Assert.assertTrue(TransactionSynchronizationManager.hasResource(container), "Has thread session");
            Db4oTemplate template = new Db4oTemplate(container);
            template.identity();//from w  w w.  j  ava2  s.c  o m
        }
    });

    Assert.assertTrue(!TransactionSynchronizationManager.hasResource(container), "Has no container");
    Assert.assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(),
            "JTA synchronizations not active");

    verify(container).commit();
}