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,
        TransactionDefinition transactionDefinition) 

Source Link

Document

Construct a new TransactionTemplate using the given transaction manager, taking its default settings from the given transaction definition.

Usage

From source file:com.github.akiraly.db4j.CommonDbConfig.java

@Bean
public TransactionTemplate transactionTemplate(PlatformTransactionManager transactionManager) {
    DefaultTransactionDefinition td = new DefaultTransactionDefinition();
    td.setTimeout(30);//from   ww  w  .  j  a  v  a  2 s.  c  o  m
    return new TransactionTemplate(transactionManager, td);
}

From source file:cherry.sqlapp.service.sqltool.exec.ExecQueryServiceImpl.java

@Override
public PageSet query(String databaseName, final String sql, final Map<String, ?> paramMap,
        final Consumer consumer) {

    final DataSource dataSource = dataSourceDef.getDataSource(databaseName);
    PlatformTransactionManager txMgr = new DataSourceTransactionManager(dataSource);
    DefaultTransactionDefinition txDef = new DefaultTransactionDefinition();
    txDef.setReadOnly(true);/*from ww  w. j ava 2 s  . com*/

    TransactionOperations txOp = new TransactionTemplate(txMgr, txDef);
    return txOp.execute(new TransactionCallback<PageSet>() {
        @Override
        public PageSet doInTransaction(TransactionStatus status) {
            try {

                long numOfItems = extractor.extract(dataSource, sql, paramMap, consumer, new NoneLimiter());
                PageSet pageSet = paginator.paginate(0L, numOfItems, (numOfItems <= 0L ? 1L : numOfItems));

                return pageSet;
            } catch (IOException ex) {
                throw new IllegalStateException(ex);
            }
        }
    });
}

From source file:cherry.sqlapp.service.sqltool.exec.ExecQueryServiceImpl.java

@Override
public PageSet query(String databaseName, final QueryBuilder queryBuilder, final Map<String, ?> paramMap,
        final long pageNo, final long pageSz, final Consumer consumer) {

    final DataSource dataSource = dataSourceDef.getDataSource(databaseName);
    PlatformTransactionManager txMgr = new DataSourceTransactionManager(dataSource);
    DefaultTransactionDefinition txDef = new DefaultTransactionDefinition();
    txDef.setReadOnly(true);/*from   ww  w. jav a  2  s  . co m*/

    TransactionOperations txOp = new TransactionTemplate(txMgr, txDef);
    return txOp.execute(new TransactionCallback<PageSet>() {
        @Override
        public PageSet doInTransaction(TransactionStatus status) {
            try {

                long count = count(dataSource, queryBuilder.buildCount(), paramMap);
                PageSet pageSet = paginator.paginate(pageNo, count, pageSz);

                long numOfItems = extractor.extract(dataSource,
                        queryBuilder.build(pageSz, pageSet.getCurrent().getFrom()), paramMap, consumer,
                        new NoneLimiter());
                if (numOfItems != pageSet.getCurrent().getCount()) {
                    throw new IllegalStateException();
                }

                return pageSet;
            } catch (IOException ex) {
                throw new IllegalStateException(ex);
            }
        }
    });
}

From source file:org.dalesbred.integration.spring.SpringTransactionManager.java

private <T> T execute(@NotNull TransactionCallback<T> callback, @NotNull Dialect dialect,
        @NotNull DefaultTransactionDefinition df) {
    TransactionTemplate tt = new TransactionTemplate(platformTransactionManager, df);
    return tt.execute(status -> {
        try {//  w  w  w . j  a va2 s.c o  m
            Connection connection = DataSourceUtils.getConnection(dataSource);
            try {
                return callback.execute(new SpringTransactionContext(status, connection));
            } finally {
                DataSourceUtils.releaseConnection(connection, dataSource);
            }
        } catch (SQLException e) {
            throw dialect.convertException(e);
        }
    });
}

From source file:com.mothsoft.alexis.engine.predictive.OpenNLPMaxentModelExecutorTask.java

public void setTransactionManager(final PlatformTransactionManager transactionManager) {
    final TransactionDefinition transactionDefinition = new DefaultTransactionDefinition(
            DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
    this.transactionTemplate = new TransactionTemplate(transactionManager, transactionDefinition);
}

From source file:org.wildfly.camel.test.jms.TransactedJMSIntegrationTest.java

@Before
public void setUp() throws Exception {
    JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();
    jtaTransactionManager.setTransactionManager(transactionManager);
    jtaTransactionManager.setUserTransaction(userTransaction);

    TransactionTemplate template = new TransactionTemplate(jtaTransactionManager,
            new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED));

    SpringTransactionPolicy transactionPolicy = new SpringTransactionPolicy();
    transactionPolicy.setTransactionTemplate(template);
    transactionPolicy.setTransactionManager(jtaTransactionManager);

    initialctx.bind("PROPAGATION_REQUIRED", transactionPolicy);
    initialctx.bind("transactionManager", jtaTransactionManager);

    jmsComponent = JmsComponent.jmsComponentTransacted(connectionFactory, jtaTransactionManager);
}

From source file:alfio.manager.system.DataMigrator.java

@Autowired
public DataMigrator(EventMigrationRepository eventMigrationRepository, EventRepository eventRepository,
        TicketCategoryRepository ticketCategoryRepository, @Value("${alfio.version}") String currentVersion,
        @Value("${alfio.build-ts}") String buildTimestamp, PlatformTransactionManager transactionManager,
        ConfigurationRepository configurationRepository, NamedParameterJdbcTemplate jdbc) {
    this.eventMigrationRepository = eventMigrationRepository;
    this.eventRepository = eventRepository;
    this.ticketCategoryRepository = ticketCategoryRepository;
    this.configurationRepository = configurationRepository;
    this.jdbc = jdbc;
    this.currentVersion = parseVersion(currentVersion);
    this.currentVersionAsString = currentVersion;
    this.buildTimestamp = ZonedDateTime.parse(buildTimestamp);
    this.transactionTemplate = new TransactionTemplate(transactionManager,
            new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW));
}

From source file:alfio.manager.AdminReservationManager.java

public Result<Triple<TicketReservation, List<Ticket>, Event>> confirmReservation(String eventName,
        String reservationId, String username) {
    DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
    TransactionTemplate template = new TransactionTemplate(transactionManager, definition);
    return template.execute(status -> {
        try {/*from   ww  w  . j  a v  a  2s .  c  om*/
            Result<Triple<TicketReservation, List<Ticket>, Event>> result = eventRepository
                    .findOptionalByShortName(eventName).flatMap(e -> optionally(() -> {
                        eventManager.checkOwnership(e, username, e.getOrganizationId());
                        return e;
                    }))
                    .map(event -> ticketReservationRepository.findOptionalReservationById(reservationId)
                            .filter(r -> r.getStatus() == TicketReservationStatus.PENDING
                                    || r.getStatus() == TicketReservationStatus.STUCK)
                            .map(r -> performConfirmation(reservationId, event, r))
                            .orElseGet(() -> Result.error(ErrorCode.ReservationError.UPDATE_FAILED)))
                    .orElseGet(() -> Result.error(ErrorCode.ReservationError.NOT_FOUND));
            if (!result.isSuccess()) {
                log.debug("Reservation confirmation failed for eventName: {} reservationId: {}, username: {}",
                        eventName, reservationId, username);
                status.setRollbackOnly();
            }
            return result;
        } catch (Exception e) {
            log.error("Error during confirmation of reservation eventName: {} reservationId: {}, username: {}",
                    eventName, reservationId, username);
            status.setRollbackOnly();
            return Result.error(singletonList(ErrorCode.custom("", e.getMessage())));
        }
    });
}

From source file:alfio.manager.AdminReservationRequestManager.java

private Result<Triple<TicketReservation, List<Ticket>, Event>> processReservation(
        AdminReservationRequest request, Pair<Event, User> p) {
    DefaultTransactionDefinition definition = new DefaultTransactionDefinition(
            TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionTemplate template = new TransactionTemplate(transactionManager, definition);
    return template.execute(status -> {
        try {/*from  w ww. j  ava  2s  .c  o  m*/
            String eventName = p.getLeft().getShortName();
            String username = p.getRight().getUsername();
            Result<Triple<TicketReservation, List<Ticket>, Event>> result = adminReservationManager
                    .createReservation(request.getBody(), eventName, username)
                    .flatMap(r -> adminReservationManager.confirmReservation(eventName, r.getLeft().getId(),
                            username));
            if (!result.isSuccess()) {
                status.setRollbackOnly();
            }
            return result;
        } catch (Exception ex) {
            status.setRollbackOnly();
            return Result.error(singletonList(ErrorCode.custom("", ex.getMessage())));
        }
    });
}

From source file:alfio.manager.AdminReservationManager.java

public Result<Boolean> updateReservation(String eventName, String reservationId,
        AdminReservationModification adminReservationModification, String username) {
    DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
    TransactionTemplate template = new TransactionTemplate(transactionManager, definition);
    return template.execute(status -> {
        try {//from w  w  w.  j  a v  a 2 s.c  o m
            Result<Boolean> result = eventRepository.findOptionalByShortName(eventName)
                    .flatMap(e -> optionally(() -> {
                        eventManager.checkOwnership(e, username, e.getOrganizationId());
                        return e;
                    }))
                    .map(event -> ticketReservationRepository.findOptionalReservationById(reservationId)
                            .map(r -> performUpdate(reservationId, event, r, adminReservationModification))
                            .orElseGet(() -> Result.error(ErrorCode.ReservationError.UPDATE_FAILED)))
                    .orElseGet(() -> Result.error(ErrorCode.ReservationError.NOT_FOUND));
            if (!result.isSuccess()) {
                log.debug(
                        "Application error detected eventName: {} reservationId: {}, username: {}, reservation: {}",
                        eventName, reservationId, username,
                        AdminReservationModification.summary(adminReservationModification));
                status.setRollbackOnly();
            }
            return result;
        } catch (Exception e) {
            log.error(
                    "Error during update of reservation eventName: {} reservationId: {}, username: {}, reservation: {}",
                    eventName, reservationId, username,
                    AdminReservationModification.summary(adminReservationModification));
            status.setRollbackOnly();
            return Result.error(singletonList(ErrorCode.custom("", e.getMessage())));
        }
    });
}