Commit 43f8a71a authored by Dave Syer's avatar Dave Syer

Ensure JdbcTemplate and DB initializer still work when user supplies DataSource

parent f43cf1db
...@@ -64,7 +64,6 @@ import org.springframework.util.StringUtils; ...@@ -64,7 +64,6 @@ import org.springframework.util.StringUtils;
*/ */
@Configuration @Configuration
@ConditionalOnClass(EmbeddedDatabaseType.class /* Spring JDBC */) @ConditionalOnClass(EmbeddedDatabaseType.class /* Spring JDBC */)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration implements EnvironmentAware { public class DataSourceAutoConfiguration implements EnvironmentAware {
private static Log logger = LogFactory.getLog(DataSourceAutoConfiguration.class); private static Log logger = LogFactory.getLog(DataSourceAutoConfiguration.class);
...@@ -138,16 +137,19 @@ public class DataSourceAutoConfiguration implements EnvironmentAware { ...@@ -138,16 +137,19 @@ public class DataSourceAutoConfiguration implements EnvironmentAware {
} }
@Conditional(DataSourceAutoConfiguration.EmbeddedDatabaseCondition.class) @Conditional(DataSourceAutoConfiguration.EmbeddedDatabaseCondition.class)
@ConditionalOnMissingBean(DataSource.class)
@Import(EmbeddedDataSourceConfiguration.class) @Import(EmbeddedDataSourceConfiguration.class)
protected static class EmbeddedConfiguration { protected static class EmbeddedConfiguration {
} }
@Conditional(DataSourceAutoConfiguration.TomcatDatabaseCondition.class) @Conditional(DataSourceAutoConfiguration.TomcatDatabaseCondition.class)
@ConditionalOnMissingBean(DataSource.class)
@Import(TomcatDataSourceConfiguration.class) @Import(TomcatDataSourceConfiguration.class)
protected static class TomcatConfiguration { protected static class TomcatConfiguration {
} }
@Conditional(DataSourceAutoConfiguration.BasicDatabaseCondition.class) @Conditional(DataSourceAutoConfiguration.BasicDatabaseCondition.class)
@ConditionalOnMissingBean(DataSource.class)
@Import(CommonsDataSourceConfiguration.class) @Import(CommonsDataSourceConfiguration.class)
protected static class DbcpConfiguration { protected static class DbcpConfiguration {
} }
......
...@@ -75,6 +75,17 @@ public class DataSourceAutoConfigurationTests { ...@@ -75,6 +75,17 @@ public class DataSourceAutoConfigurationTests {
assertNotNull(jdbcTemplate.getDataSource()); assertNotNull(jdbcTemplate.getDataSource());
} }
@Test
public void testJdbcTemplateExistsWithCustomDataSource() throws Exception {
this.context.register(TestDataSourceConfiguration.class,
DataSourceAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
JdbcTemplate jdbcTemplate = this.context.getBean(JdbcTemplate.class);
assertNotNull(jdbcTemplate);
assertTrue(jdbcTemplate.getDataSource() instanceof BasicDataSource);
}
@Test @Test
public void testNamedParameterJdbcTemplateExists() throws Exception { public void testNamedParameterJdbcTemplateExists() throws Exception {
this.context.register(DataSourceAutoConfiguration.class, this.context.register(DataSourceAutoConfiguration.class,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment