List of usage examples for org.springframework.transaction.support TransactionTemplate TransactionTemplate
public TransactionTemplate(PlatformTransactionManager transactionManager,
TransactionDefinition transactionDefinition)
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()))); } }); }