Merge branch '2.1.x'
Closes gh-17546
This commit is contained in:
@@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
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.jdbc.DataSourceAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
||||
@@ -92,6 +93,7 @@ public class QuartzAutoConfiguration {
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnSingleCandidate(DataSource.class)
|
||||
@ConditionalOnProperty(prefix = "spring.quartz", name = "job-store-type", havingValue = "jdbc")
|
||||
protected static class JdbcStoreTypeConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -100,13 +102,11 @@ public class QuartzAutoConfiguration {
|
||||
@QuartzDataSource ObjectProvider<DataSource> quartzDataSource,
|
||||
ObjectProvider<PlatformTransactionManager> transactionManager) {
|
||||
return (schedulerFactoryBean) -> {
|
||||
if (properties.getJobStoreType() == JobStoreType.JDBC) {
|
||||
DataSource dataSourceToUse = getDataSource(dataSource, quartzDataSource);
|
||||
schedulerFactoryBean.setDataSource(dataSourceToUse);
|
||||
PlatformTransactionManager txManager = transactionManager.getIfUnique();
|
||||
if (txManager != null) {
|
||||
schedulerFactoryBean.setTransactionManager(txManager);
|
||||
}
|
||||
DataSource dataSourceToUse = getDataSource(dataSource, quartzDataSource);
|
||||
schedulerFactoryBean.setDataSource(dataSourceToUse);
|
||||
PlatformTransactionManager txManager = transactionManager.getIfUnique();
|
||||
if (txManager != null) {
|
||||
schedulerFactoryBean.setTransactionManager(txManager);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -102,6 +102,19 @@ class QuartzAutoConfigurationTests {
|
||||
.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
|
||||
void withDataSourceNoTransactionManager() {
|
||||
this.contextRunner.withUserConfiguration(QuartzJobsConfiguration.class)
|
||||
|
||||
Reference in New Issue
Block a user