Skip to content

Commit 7f420d1

Browse files
committed
Polish contribution
Closes gh-9411
1 parent db060c8 commit 7f420d1

File tree

6 files changed

+31
-90
lines changed

6 files changed

+31
-90
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/quartz/QuartzAutoConfiguration.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
import org.quartz.Trigger;
3030

3131
import org.springframework.beans.factory.ObjectProvider;
32+
import org.springframework.boot.autoconfigure.AbstractDependsOnBeanFactoryPostProcessor;
3233
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3334
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
3435
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3536
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
36-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3737
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
3838
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
3939
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
@@ -130,12 +130,22 @@ private void customize(SchedulerFactoryBean schedulerFactoryBean) {
130130

131131
@Configuration
132132
@ConditionalOnSingleCandidate(DataSource.class)
133-
@ConditionalOnProperty(prefix = "spring.quartz", name = "job-store-type", havingValue = "jdbc")
134133
protected static class JdbcStoreTypeConfiguration {
135134

136135
@Bean
137-
public static InitializerSchedulerDependencyPostProcessor initializerSchedulerDependencyPostProcessor() {
138-
return new InitializerSchedulerDependencyPostProcessor();
136+
public SchedulerFactoryBeanCustomizer dataSourceCustomizer(
137+
QuartzProperties properties, DataSource dataSource,
138+
ObjectProvider<PlatformTransactionManager> transactionManager) {
139+
return schedulerFactoryBean -> {
140+
if (properties.getJobStoreType() == JobStoreType.JDBC) {
141+
schedulerFactoryBean.setDataSource(dataSource);
142+
PlatformTransactionManager txManager = transactionManager
143+
.getIfUnique();
144+
if (txManager != null) {
145+
schedulerFactoryBean.setTransactionManager(txManager);
146+
}
147+
}
148+
};
139149
}
140150

141151
@Bean
@@ -146,22 +156,16 @@ public QuartzDatabaseInitializer quartzDatabaseInitializer(DataSource dataSource
146156
}
147157

148158
@Bean
149-
public SchedulerFactoryBeanCustomizer dataSourceCustomizer(DataSource dataSource,
150-
ObjectProvider<PlatformTransactionManager> transactionManager) {
151-
return schedulerFactoryBean -> {
152-
schedulerFactoryBean.setDataSource(dataSource);
153-
PlatformTransactionManager txManager = transactionManager.getIfUnique();
154-
if (txManager != null) {
155-
schedulerFactoryBean.setTransactionManager(txManager);
156-
}
157-
};
159+
public static DatabaseInitializerSchedulerDependencyPostProcessor databaseInitializerSchedulerDependencyPostProcessor() {
160+
return new DatabaseInitializerSchedulerDependencyPostProcessor();
158161
}
159162

160-
private static class InitializerSchedulerDependencyPostProcessor
161-
extends SchedulerDependsOnPostProcessor {
163+
private static class DatabaseInitializerSchedulerDependencyPostProcessor
164+
extends AbstractDependsOnBeanFactoryPostProcessor {
162165

163-
InitializerSchedulerDependencyPostProcessor() {
164-
super("quartzDatabaseInitializer");
166+
DatabaseInitializerSchedulerDependencyPostProcessor() {
167+
super(Scheduler.class, SchedulerFactoryBean.class,
168+
"quartzDatabaseInitializer");
165169
}
166170

167171
}

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/quartz/SchedulerDependsOnPostProcessor.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/quartz/QuartzAutoConfigurationTests.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,13 @@
5050
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
5151
import org.springframework.context.annotation.Bean;
5252
import org.springframework.context.annotation.Configuration;
53+
import org.springframework.context.annotation.Import;
5354
import org.springframework.core.env.Environment;
5455
import org.springframework.jdbc.core.JdbcTemplate;
5556
import org.springframework.scheduling.quartz.LocalDataSourceJobStore;
5657
import org.springframework.scheduling.quartz.LocalTaskExecutorThreadPool;
5758
import org.springframework.scheduling.quartz.QuartzJobBean;
59+
import org.springframework.util.Assert;
5860
import org.springframework.util.ObjectUtils;
5961

6062
import static org.assertj.core.api.Assertions.assertThat;
@@ -199,13 +201,10 @@ private void load(Class<?>[] configs, String... environment) {
199201
this.context = ctx;
200202
}
201203

204+
@Import(ComponentThatUsesScheduler.class)
205+
@Configuration
202206
protected static class BaseQuartzConfiguration {
203207

204-
@Bean
205-
public ComponentThatUsesScheduler component() {
206-
return new ComponentThatUsesScheduler();
207-
}
208-
209208
}
210209

211210
@Configuration
@@ -283,9 +282,13 @@ public SchedulerFactoryBeanCustomizer customizer() {
283282

284283
public static class ComponentThatUsesScheduler {
285284

286-
@Autowired
287285
private Scheduler scheduler;
288286

287+
public ComponentThatUsesScheduler(Scheduler scheduler) {
288+
Assert.notNull(scheduler, "Scheduler must not be null");
289+
this.scheduler = scheduler;
290+
}
291+
289292
}
290293

291294
public static class FooJob extends QuartzJobBean {

spring-boot-samples/spring-boot-sample-quartz/pom.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@
2323
<groupId>org.springframework.boot</groupId>
2424
<artifactId>spring-boot-starter-quartz</artifactId>
2525
</dependency>
26-
<dependency>
27-
<groupId>org.springframework.boot</groupId>
28-
<artifactId>spring-boot-starter-jdbc</artifactId>
29-
</dependency>
30-
<dependency>
31-
<groupId>com.h2database</groupId>
32-
<artifactId>h2</artifactId>
33-
</dependency>
3426
</dependencies>
3527
<build>
3628
<plugins>

spring-boot-samples/spring-boot-sample-quartz/src/main/java/sample/quartz/SampleQuartzApplication.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,21 @@
1818

1919
import org.quartz.JobBuilder;
2020
import org.quartz.JobDetail;
21-
import org.quartz.Scheduler;
2221
import org.quartz.SimpleScheduleBuilder;
2322
import org.quartz.Trigger;
2423
import org.quartz.TriggerBuilder;
2524

26-
import org.springframework.beans.factory.annotation.Autowired;
27-
import org.springframework.boot.CommandLineRunner;
2825
import org.springframework.boot.SpringApplication;
2926
import org.springframework.boot.autoconfigure.SpringBootApplication;
3027
import org.springframework.context.annotation.Bean;
3128

3229
@SpringBootApplication
33-
public class SampleQuartzApplication implements CommandLineRunner {
34-
35-
@Autowired
36-
private Scheduler scheduler;
30+
public class SampleQuartzApplication {
3731

3832
public static void main(String[] args) {
3933
SpringApplication.run(SampleQuartzApplication.class, args);
4034
}
4135

42-
@Override
43-
public void run(String... args) throws Exception {
44-
Trigger trigger = TriggerBuilder.newTrigger().forJob(sampleJobDetail())
45-
.withIdentity("startTrigger").usingJobData("name", "Boot").startNow()
46-
.build();
47-
48-
this.scheduler.scheduleJob(trigger);
49-
}
50-
5136
@Bean
5237
public JobDetail sampleJobDetail() {
5338
return JobBuilder.newJob(SampleJob.class).withIdentity("sampleJob")

spring-boot-samples/spring-boot-sample-quartz/src/main/resources/application.properties

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)