@Override public void populate(Connection connection) throws SQLException, ScriptException { for (DatabasePopulator populator : this.populators) { populator.populate(connection); } }
/** * Execute the given {@link DatabasePopulator} against the given {@link DataSource}. * @param populator the {@code DatabasePopulator} to execute * @param dataSource the {@code DataSource} to execute against * @throws DataAccessException if an error occurs, specifically a {@link ScriptException} */ public static void execute(DatabasePopulator populator, DataSource dataSource) throws DataAccessException { Assert.notNull(populator, "DatabasePopulator must not be null"); Assert.notNull(dataSource, "DataSource must not be null"); try { Connection connection = DataSourceUtils.getConnection(dataSource); try { populator.populate(connection); } finally { DataSourceUtils.releaseConnection(connection, dataSource); } } catch (Throwable ex) { if (ex instanceof ScriptException) { throw (ScriptException) ex; } throw new UncategorizedScriptException("Failed to execute database script", ex); } }
@Test public void constructWithVarargs() throws SQLException { CompositeDatabasePopulator populator = new CompositeDatabasePopulator(mockedDatabasePopulator1, mockedDatabasePopulator2); populator.populate(mockedConnection); verify(mockedDatabasePopulator1, times(1)).populate(mockedConnection); verify(mockedDatabasePopulator2, times(1)).populate(mockedConnection); }
@Test public void constructWithCollection() throws SQLException { Set<DatabasePopulator> populators = new LinkedHashSet<>(); populators.add(mockedDatabasePopulator1); populators.add(mockedDatabasePopulator2); CompositeDatabasePopulator populator = new CompositeDatabasePopulator(populators); populator.populate(mockedConnection); verify(mockedDatabasePopulator1, times(1)).populate(mockedConnection); verify(mockedDatabasePopulator2, times(1)).populate(mockedConnection); }
@Test public void addPopulators() throws SQLException { CompositeDatabasePopulator populator = new CompositeDatabasePopulator(); populator.addPopulators(mockedDatabasePopulator1, mockedDatabasePopulator2); populator.populate(mockedConnection); verify(mockedDatabasePopulator1,times(1)).populate(mockedConnection); verify(mockedDatabasePopulator2, times(1)).populate(mockedConnection); }
@Test public void setPopulatorsWithMultiple() throws SQLException { CompositeDatabasePopulator populator = new CompositeDatabasePopulator(); populator.setPopulators(mockedDatabasePopulator1, mockedDatabasePopulator2); // multiple populator.populate(mockedConnection); verify(mockedDatabasePopulator1, times(1)).populate(mockedConnection); verify(mockedDatabasePopulator2, times(1)).populate(mockedConnection); }
@Test public void setPopulatorsForOverride() throws SQLException { CompositeDatabasePopulator populator = new CompositeDatabasePopulator(); populator.setPopulators(mockedDatabasePopulator1); populator.setPopulators(mockedDatabasePopulator2); // override populator.populate(mockedConnection); verify(mockedDatabasePopulator1, times(0)).populate(mockedConnection); verify(mockedDatabasePopulator2, times(1)).populate(mockedConnection); }
/** * See SPR-9457 */ @Test public void usesBoundConnectionIfAvailable() throws SQLException { TransactionSynchronizationManager.initSynchronization(); Connection connection = DataSourceUtils.getConnection(db); DatabasePopulator populator = mock(DatabasePopulator.class); DatabasePopulatorUtils.execute(populator, db); verify(populator).populate(connection); }
public void populate(Connection connection) throws SQLException { for (DatabasePopulator populator : this.populators) { populator.populate(connection); } }
@Override public void populate(Connection connection) throws SQLException, ScriptException { for (DatabasePopulator populator : this.populators) { populator.populate(connection); } }
/** * Execute the given DatabasePopulator against the given DataSource. * @param populator the DatabasePopulator to execute * @param dataSource the DataSource to execute against */ public static void execute(DatabasePopulator populator, DataSource dataSource) { Assert.notNull(populator, "DatabasePopulator must be provided"); Assert.notNull(dataSource, "DataSource must be provided"); try { Connection connection = DataSourceUtils.getConnection(dataSource); try { populator.populate(connection); } finally { if (connection != null) { DataSourceUtils.releaseConnection(connection, dataSource); } } } catch (Exception ex) { throw new DataAccessResourceFailureException("Failed to execute database script", ex); } }
/** * Execute the given {@link DatabasePopulator} against the given {@link DataSource}. * @param populator the {@code DatabasePopulator} to execute * @param dataSource the {@code DataSource} to execute against * @throws DataAccessException if an error occurs, specifically a {@link ScriptException} */ public static void execute(DatabasePopulator populator, DataSource dataSource) throws DataAccessException { Assert.notNull(populator, "DatabasePopulator must not be null"); Assert.notNull(dataSource, "DataSource must not be null"); try { Connection connection = DataSourceUtils.getConnection(dataSource); try { populator.populate(connection); } finally { DataSourceUtils.releaseConnection(connection, dataSource); } } catch (Throwable ex) { if (ex instanceof ScriptException) { throw (ScriptException) ex; } throw new UncategorizedScriptException("Failed to execute database script", ex); } }