26
26
import java .util .function .Supplier ;
27
27
import java .util .stream .Collectors ;
28
28
29
- import javax .persistence .EntityManagerFactory ;
30
29
import javax .sql .DataSource ;
31
30
32
31
import org .flywaydb .core .Flyway ;
33
32
import org .flywaydb .core .api .MigrationVersion ;
34
33
import org .flywaydb .core .api .callback .Callback ;
35
34
import org .flywaydb .core .api .configuration .FluentConfiguration ;
36
35
import org .flywaydb .core .api .migration .JavaMigration ;
37
- import org .jooq .DSLContext ;
38
36
39
37
import org .springframework .beans .factory .ObjectProvider ;
40
38
import org .springframework .boot .autoconfigure .AutoConfigureAfter ;
45
43
import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
46
44
import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
47
45
import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayDataSourceCondition ;
48
- import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayDslContextDependsOnPostProcessor ;
49
- import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayEntityManagerFactoryDependsOnPostProcessor ;
50
- import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayJdbcOperationsDependsOnPostProcessor ;
51
- import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayNamedParameterJdbcOperationsDependencyConfiguration ;
52
46
import org .springframework .boot .autoconfigure .jdbc .DataSourceAutoConfiguration ;
53
47
import org .springframework .boot .autoconfigure .jdbc .DataSourceProperties ;
54
- import org .springframework .boot .autoconfigure .jdbc .JdbcOperationsDependsOnPostProcessor ;
55
48
import org .springframework .boot .autoconfigure .jdbc .JdbcTemplateAutoConfiguration ;
56
- import org .springframework .boot .autoconfigure .jdbc .NamedParameterJdbcOperationsDependsOnPostProcessor ;
57
- import org .springframework .boot .autoconfigure .jooq .DslContextDependsOnPostProcessor ;
58
- import org .springframework .boot .autoconfigure .orm .jpa .EntityManagerFactoryDependsOnPostProcessor ;
59
49
import org .springframework .boot .autoconfigure .orm .jpa .HibernateJpaAutoConfiguration ;
60
50
import org .springframework .boot .context .properties .ConfigurationPropertiesBinding ;
61
51
import org .springframework .boot .context .properties .EnableConfigurationProperties ;
62
52
import org .springframework .boot .context .properties .PropertyMapper ;
63
53
import org .springframework .boot .jdbc .DatabaseDriver ;
54
+ import org .springframework .boot .jdbc .init .DataSourceInitializationDependencyConfigurer ;
64
55
import org .springframework .context .annotation .Bean ;
65
56
import org .springframework .context .annotation .Conditional ;
66
57
import org .springframework .context .annotation .Configuration ;
67
58
import org .springframework .context .annotation .Import ;
68
59
import org .springframework .core .convert .TypeDescriptor ;
69
60
import org .springframework .core .convert .converter .GenericConverter ;
70
61
import org .springframework .core .io .ResourceLoader ;
71
- import org .springframework .jdbc .core .JdbcOperations ;
72
- import org .springframework .jdbc .core .namedparam .NamedParameterJdbcOperations ;
73
62
import org .springframework .jdbc .support .JdbcUtils ;
74
63
import org .springframework .jdbc .support .MetaDataAccessException ;
75
- import org .springframework .orm .jpa .AbstractEntityManagerFactoryBean ;
76
- import org .springframework .orm .jpa .LocalContainerEntityManagerFactoryBean ;
77
64
import org .springframework .util .CollectionUtils ;
78
65
import org .springframework .util .ObjectUtils ;
79
66
import org .springframework .util .StringUtils ;
100
87
@ ConditionalOnProperty (prefix = "spring.flyway" , name = "enabled" , matchIfMissing = true )
101
88
@ AutoConfigureAfter ({ DataSourceAutoConfiguration .class , JdbcTemplateAutoConfiguration .class ,
102
89
HibernateJpaAutoConfiguration .class })
103
- @ Import ({ FlywayEntityManagerFactoryDependsOnPostProcessor .class , FlywayJdbcOperationsDependsOnPostProcessor .class ,
104
- FlywayNamedParameterJdbcOperationsDependencyConfiguration .class , FlywayDslContextDependsOnPostProcessor .class })
90
+ @ Import (DataSourceInitializationDependencyConfigurer .class )
105
91
public class FlywayAutoConfiguration {
106
92
107
93
@ Bean
@@ -118,10 +104,6 @@ public FlywaySchemaManagementProvider flywayDefaultDdlModeProvider(ObjectProvide
118
104
@ Configuration (proxyBeanMethods = false )
119
105
@ ConditionalOnMissingBean (Flyway .class )
120
106
@ EnableConfigurationProperties ({ DataSourceProperties .class , FlywayProperties .class })
121
- @ Import ({ FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor .class ,
122
- FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor .class ,
123
- FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor .class ,
124
- FlywayMigrationInitializerDslContextDependsOnPostProcessor .class })
125
107
public static class FlywayConfiguration {
126
108
127
109
@ Bean
@@ -325,122 +307,6 @@ public FlywayMigrationInitializer flywayInitializer(Flyway flyway,
325
307
326
308
}
327
309
328
- /**
329
- * Post processor to ensure that {@link EntityManagerFactory} beans depend on any
330
- * {@link FlywayMigrationInitializer} beans.
331
- */
332
- @ ConditionalOnClass (LocalContainerEntityManagerFactoryBean .class )
333
- @ ConditionalOnBean (AbstractEntityManagerFactoryBean .class )
334
- static class FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor
335
- extends EntityManagerFactoryDependsOnPostProcessor {
336
-
337
- FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor () {
338
- super (FlywayMigrationInitializer .class );
339
- }
340
-
341
- }
342
-
343
- /**
344
- * Post processor to ensure that {@link JdbcOperations} beans depend on any
345
- * {@link FlywayMigrationInitializer} beans.
346
- */
347
- @ ConditionalOnClass (JdbcOperations .class )
348
- @ ConditionalOnBean (JdbcOperations .class )
349
- static class FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor
350
- extends JdbcOperationsDependsOnPostProcessor {
351
-
352
- FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor () {
353
- super (FlywayMigrationInitializer .class );
354
- }
355
-
356
- }
357
-
358
- /**
359
- * Post processor to ensure that {@link NamedParameterJdbcOperations} beans depend on
360
- * any {@link FlywayMigrationInitializer} beans.
361
- */
362
- @ ConditionalOnClass (NamedParameterJdbcOperations .class )
363
- @ ConditionalOnBean (NamedParameterJdbcOperations .class )
364
- static class FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor
365
- extends NamedParameterJdbcOperationsDependsOnPostProcessor {
366
-
367
- FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor () {
368
- super (FlywayMigrationInitializer .class );
369
- }
370
-
371
- }
372
-
373
- /**
374
- * Post processor to ensure that {@link DSLContext} beans depend on any
375
- * {@link FlywayMigrationInitializer} beans.
376
- */
377
- @ ConditionalOnClass (DSLContext .class )
378
- @ ConditionalOnBean (DSLContext .class )
379
- static class FlywayMigrationInitializerDslContextDependsOnPostProcessor extends DslContextDependsOnPostProcessor {
380
-
381
- FlywayMigrationInitializerDslContextDependsOnPostProcessor () {
382
- super (FlywayMigrationInitializer .class );
383
- }
384
-
385
- }
386
-
387
- /**
388
- * Post processor to ensure that {@link EntityManagerFactory} beans depend on any
389
- * {@link Flyway} beans.
390
- */
391
- @ ConditionalOnClass (LocalContainerEntityManagerFactoryBean .class )
392
- @ ConditionalOnBean (AbstractEntityManagerFactoryBean .class )
393
- static class FlywayEntityManagerFactoryDependsOnPostProcessor extends EntityManagerFactoryDependsOnPostProcessor {
394
-
395
- FlywayEntityManagerFactoryDependsOnPostProcessor () {
396
- super (Flyway .class );
397
- }
398
-
399
- }
400
-
401
- /**
402
- * Post processor to ensure that {@link JdbcOperations} beans depend on any
403
- * {@link Flyway} beans.
404
- */
405
- @ ConditionalOnClass (JdbcOperations .class )
406
- @ ConditionalOnBean (JdbcOperations .class )
407
- static class FlywayJdbcOperationsDependsOnPostProcessor extends JdbcOperationsDependsOnPostProcessor {
408
-
409
- FlywayJdbcOperationsDependsOnPostProcessor () {
410
- super (Flyway .class );
411
- }
412
-
413
- }
414
-
415
- /**
416
- * Post processor to ensure that {@link NamedParameterJdbcOperations} beans depend on
417
- * any {@link Flyway} beans.
418
- */
419
- @ ConditionalOnClass (NamedParameterJdbcOperations .class )
420
- @ ConditionalOnBean (NamedParameterJdbcOperations .class )
421
- protected static class FlywayNamedParameterJdbcOperationsDependencyConfiguration
422
- extends NamedParameterJdbcOperationsDependsOnPostProcessor {
423
-
424
- public FlywayNamedParameterJdbcOperationsDependencyConfiguration () {
425
- super (Flyway .class );
426
- }
427
-
428
- }
429
-
430
- /**
431
- * Post processor to ensure that {@link DSLContext} beans depend on any {@link Flyway}
432
- * beans.
433
- */
434
- @ ConditionalOnClass (DSLContext .class )
435
- @ ConditionalOnBean (DSLContext .class )
436
- protected static class FlywayDslContextDependsOnPostProcessor extends DslContextDependsOnPostProcessor {
437
-
438
- public FlywayDslContextDependsOnPostProcessor () {
439
- super (Flyway .class );
440
- }
441
-
442
- }
443
-
444
310
private static class LocationResolver {
445
311
446
312
private static final String VENDOR_PLACEHOLDER = "{vendor}" ;
0 commit comments