/** * Obtain the DataSource for actual use. * @return the DataSource (never {@code null}) * @throws IllegalStateException in case of no DataSource set * @since 5.0 */ protected DataSource obtainDataSource() { DataSource dataSource = getDataSource(); Assert.state(dataSource != null, "No DataSource set"); return dataSource; }
@Override public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); } }
@Autowired public void setTransactionManager(DataSourceTransactionManager transactionManager) { this.dataSourceFromTxManager = transactionManager.getDataSource(); }
public TransactionalJdbcIdempotentChecker(DataSourceTransactionManager transactionManager, String tableName, KeyExtractor extractor) { super(extractor); this.transactionManager = transactionManager; this.idempotentChecker = new JdbcIdempotentChecker(transactionManager.getDataSource(), tableName, extractor); }
@Test public void testConfigurationWithDataSourceAndNoTransactionManager() throws Exception { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BatchConfigurationWithDataSourceAndNoTransactionManager.class); Assert.assertTrue(applicationContext.containsBean("transactionManager")); PlatformTransactionManager platformTransactionManager = applicationContext.getBean(PlatformTransactionManager.class); Object targetObject = AopTestUtils.getTargetObject(platformTransactionManager); Assert.assertTrue(targetObject instanceof DataSourceTransactionManager); DataSourceTransactionManager dataSourceTransactionManager = (DataSourceTransactionManager) targetObject; Assert.assertEquals(applicationContext.getBean(DataSource.class), dataSourceTransactionManager.getDataSource()); Assert.assertSame(getTransactionManagerSetOnJobRepository(applicationContext.getBean(JobRepository.class)), dataSourceTransactionManager); }
@Test public void testConfigurationWithDataSourceAndNoTransactionManager() throws Exception { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BatchConfigurationWithDataSourceAndNoTransactionManager.class); BatchConfigurer batchConfigurer = applicationContext.getBean(BatchConfigurer.class); PlatformTransactionManager platformTransactionManager = batchConfigurer.getTransactionManager(); Assert.assertTrue(platformTransactionManager instanceof DataSourceTransactionManager); DataSourceTransactionManager dataSourceTransactionManager = AopTestUtils.getTargetObject(platformTransactionManager); Assert.assertEquals(applicationContext.getBean(DataSource.class), dataSourceTransactionManager.getDataSource()); Assert.assertSame(getTransactionManagerSetOnJobRepository(applicationContext.getBean(JobRepository.class)), platformTransactionManager); }
public Object getResourceFactory() { return getDataSource(); }
@Override public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); } }
public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); } }
public void setTransactionManager(DataSourceTransactionManager transactionManager) { this.transactionManager = transactionManager; DataSource dataSource = transactionManager.getDataSource(); jdbcTemplate = new JdbcTemplate(dataSource); }
public class DboDao { private DataSourceTransactionManager transactionManager; private JdbcTemplate jdbcTemplate; public DboDao() { // TODO Auto-generated constructor stub super(); // problem exists here, as transactionManager is not set yet and // you are using Setter Based injection so `NPE` // you can move this code in setter method of transactionManager, to make it work. DataSource datatSource = transactionManager.getDataSource(); jdbcTemplate = new JdbcTemplate(datatSource); }.............
/** Sets the connection pool provider and initializes the tables in the dbms if missing */ public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; DataSourceTransactionManager dsTransactionManager = new DataSourceTransactionManager(dataSource); this.tt = new TransactionTemplate(dsTransactionManager); this.jt = new SimpleJdbcTemplate(dsTransactionManager.getDataSource()); }
@Override protected Connection getConnectionFromTransactionManager() { try { Connection result = transactionManager.getDataSource().getConnection(); TransactionSynchronizationManager.bindResource(transactionManager.getDataSource(), new ConnectionHolder(result)); return result; } catch (final SQLException ex) { throw new ShardingException("Could not open JDBC Connection before transaction", ex); } } }
/** * Returns a "fake" datasource to avoid spring checks failure when pool are not initialized. Returns the current datasource otherwise. * * @return the data source */ @Override public DataSource getDataSource( ) { if ( _bInit ) { return super.getDataSource( ); } /** * Empty datasource */ return new EmptyDataSource( ); }
@Override public void unbindResource() { ConnectionHolder holder = (ConnectionHolder) TransactionSynchronizationManager.unbindResource(transactionManager.getDataSource()); DataSourceUtils.releaseConnection(holder.getConnection(), transactionManager.getDataSource()); }
TransactionSynchronizationManager.bindResource(getDataSource(), txObject.getConnectionHolder());