22
22
import javax .sql .DataSource ;
23
23
24
24
import liquibase .integration .spring .SpringLiquibase ;
25
- import org .flywaydb .core .Flyway ;
26
25
import org .quartz .Calendar ;
27
26
import org .quartz .JobDetail ;
28
27
import org .quartz .Scheduler ;
29
28
import org .quartz .Trigger ;
30
29
31
30
import org .springframework .beans .factory .ObjectProvider ;
32
- import org .springframework .beans .factory .config .BeanFactoryPostProcessor ;
33
31
import org .springframework .boot .autoconfigure .AbstractDependsOnBeanFactoryPostProcessor ;
34
32
import org .springframework .boot .autoconfigure .AutoConfigureAfter ;
35
33
import org .springframework .boot .autoconfigure .EnableAutoConfiguration ;
@@ -163,6 +161,7 @@ public QuartzDataSourceInitializer quartzDataSourceInitializer(DataSource dataSo
163
161
QuartzProperties properties ) {
164
162
DataSource dataSourceToUse = getDataSource (dataSource , quartzDataSource );
165
163
return new QuartzDataSourceInitializer (dataSourceToUse , resourceLoader , properties );
164
+
166
165
}
167
166
168
167
/**
@@ -171,64 +170,37 @@ public QuartzDataSourceInitializer quartzDataSourceInitializer(DataSource dataSo
171
170
* bean(s).
172
171
*/
173
172
@ Configuration
174
- protected static class SchedulerQuartzDataSourceInitializerDependencyConfiguration
175
- extends AbstractSchedulerDependsOnBeanFactoryPostProcessor {
173
+ static class QuartzSchedulerDependencyConfiguration {
176
174
177
- SchedulerQuartzDataSourceInitializerDependencyConfiguration () {
178
- super (QuartzDataSourceInitializer .class );
175
+ @ Bean
176
+ public static SchedulerDependsOnBeanFactoryPostProcessor quartzSchedulerDataSourceInitializerDependsOnBeanFactoryPostProcessor () {
177
+ return new SchedulerDependsOnBeanFactoryPostProcessor (QuartzDataSourceInitializer .class );
179
178
}
180
179
181
- }
182
-
183
- /**
184
- * Additional configuration to ensure that {@link SchedulerFactoryBean} and
185
- * {@link Scheduler} beans depend on the {@link SpringLiquibase} bean(s).
186
- */
187
- @ Configuration
188
- @ ConditionalOnClass (SpringLiquibase .class )
189
- @ ConditionalOnBean (SpringLiquibase .class )
190
- protected static class SchedulerSpringLiquibaseDependencyConfiguration
191
- extends AbstractSchedulerDependsOnBeanFactoryPostProcessor {
192
-
193
- SchedulerSpringLiquibaseDependencyConfiguration () {
194
- super (SpringLiquibase .class );
180
+ @ Bean
181
+ @ ConditionalOnBean (FlywayMigrationInitializer .class )
182
+ public static SchedulerDependsOnBeanFactoryPostProcessor quartzSchedulerFilywayDependsOnBeanFactoryPostProcessor () {
183
+ return new SchedulerDependsOnBeanFactoryPostProcessor (FlywayMigrationInitializer .class );
195
184
}
196
185
197
- }
198
-
199
- /**
200
- * Additional configuration to ensure that {@link SchedulerFactoryBean} and
201
- * {@link Scheduler} beans depend on the {@link FlywayMigrationInitializer}
202
- * bean(s).
203
- */
204
- @ Configuration
205
- @ ConditionalOnClass (Flyway .class )
206
- @ ConditionalOnBean (FlywayMigrationInitializer .class )
207
- protected static class SchedulerFlywayMigrationInitializerDependencyConfiguration
208
- extends AbstractSchedulerDependsOnBeanFactoryPostProcessor {
209
-
210
- SchedulerFlywayMigrationInitializerDependencyConfiguration () {
211
- super (FlywayMigrationInitializer .class );
186
+ @ Bean
187
+ @ ConditionalOnBean (SpringLiquibase .class )
188
+ public static SchedulerDependsOnBeanFactoryPostProcessor quartzSchedulerLiquibaseDependsOnBeanFactoryPostProcessor () {
189
+ return new SchedulerDependsOnBeanFactoryPostProcessor (SpringLiquibase .class );
212
190
}
213
191
214
192
}
215
193
216
- /**
217
- * {@link BeanFactoryPostProcessor} that can be used to declare that all
218
- * {@link Scheduler} and {@link SchedulerFactoryBean} beans should "depend on" one
219
- * or more specific beans.
220
- */
221
- protected abstract static class AbstractSchedulerDependsOnBeanFactoryPostProcessor
222
- extends AbstractDependsOnBeanFactoryPostProcessor {
223
-
224
- /**
225
- * Create an instance with dependency types.
226
- * @param dependencyTypes dependency types
227
- */
228
- protected AbstractSchedulerDependsOnBeanFactoryPostProcessor (Class <?>... dependencyTypes ) {
229
- super (Scheduler .class , SchedulerFactoryBean .class , dependencyTypes );
230
- }
194
+ }
195
+
196
+ /**
197
+ * {@link AbstractDependsOnBeanFactoryPostProcessor} for Quartz {@link Scheduler} and
198
+ * {@link SchedulerFactoryBean}.
199
+ */
200
+ private static class SchedulerDependsOnBeanFactoryPostProcessor extends AbstractDependsOnBeanFactoryPostProcessor {
231
201
202
+ SchedulerDependsOnBeanFactoryPostProcessor (Class <?>... dependencyTypes ) {
203
+ super (Scheduler .class , SchedulerFactoryBean .class , dependencyTypes );
232
204
}
233
205
234
206
}
0 commit comments