Commit 73f7a931 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '2.1.x'

Closes gh-17546
parents 74d00354 e84477cf
...@@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter; ...@@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
...@@ -92,6 +93,7 @@ public class QuartzAutoConfiguration { ...@@ -92,6 +93,7 @@ public class QuartzAutoConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnSingleCandidate(DataSource.class) @ConditionalOnSingleCandidate(DataSource.class)
@ConditionalOnProperty(prefix = "spring.quartz", name = "job-store-type", havingValue = "jdbc")
protected static class JdbcStoreTypeConfiguration { protected static class JdbcStoreTypeConfiguration {
@Bean @Bean
...@@ -100,13 +102,11 @@ public class QuartzAutoConfiguration { ...@@ -100,13 +102,11 @@ public class QuartzAutoConfiguration {
@QuartzDataSource ObjectProvider<DataSource> quartzDataSource, @QuartzDataSource ObjectProvider<DataSource> quartzDataSource,
ObjectProvider<PlatformTransactionManager> transactionManager) { ObjectProvider<PlatformTransactionManager> transactionManager) {
return (schedulerFactoryBean) -> { return (schedulerFactoryBean) -> {
if (properties.getJobStoreType() == JobStoreType.JDBC) { DataSource dataSourceToUse = getDataSource(dataSource, quartzDataSource);
DataSource dataSourceToUse = getDataSource(dataSource, quartzDataSource); schedulerFactoryBean.setDataSource(dataSourceToUse);
schedulerFactoryBean.setDataSource(dataSourceToUse); PlatformTransactionManager txManager = transactionManager.getIfUnique();
PlatformTransactionManager txManager = transactionManager.getIfUnique(); if (txManager != null) {
if (txManager != null) { schedulerFactoryBean.setTransactionManager(txManager);
schedulerFactoryBean.setTransactionManager(txManager);
}
} }
}; };
} }
......
...@@ -102,6 +102,19 @@ class QuartzAutoConfigurationTests { ...@@ -102,6 +102,19 @@ class QuartzAutoConfigurationTests {
.withPropertyValues("spring.quartz.job-store-type=jdbc").run(assertDataSourceJobStore("dataSource")); .withPropertyValues("spring.quartz.job-store-type=jdbc").run(assertDataSourceJobStore("dataSource"));
} }
@Test
void withDataSourceAndInMemoryStoreDoesNotInitializeDataSource() {
this.contextRunner.withUserConfiguration(QuartzJobsConfiguration.class)
.withConfiguration(AutoConfigurations.of(DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class))
.withPropertyValues("spring.quartz.job-store-type=memory").run((context) -> {
JdbcTemplate jdbcTemplate = new JdbcTemplate(context.getBean("dataSource", DataSource.class));
assertThat(jdbcTemplate.queryForList("SHOW TABLES").stream()
.map((table) -> (String) table.get("TABLE_NAME")))
.noneMatch((name) -> name.startsWith("QRTZ"));
});
}
@Test @Test
void withDataSourceNoTransactionManager() { void withDataSourceNoTransactionManager() {
this.contextRunner.withUserConfiguration(QuartzJobsConfiguration.class) this.contextRunner.withUserConfiguration(QuartzJobsConfiguration.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