4343import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
4444import org .springframework .boot .autoconfigure .data .jpa .EntityManagerFactoryDependsOnPostProcessor ;
4545import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayDataSourceCondition ;
46+ import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayEntityManagerFactoryDependsOnPostProcessor ;
47+ import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayJdbcOperationsDependsOnPostProcessor ;
48+ import org .springframework .boot .autoconfigure .flyway .FlywayAutoConfiguration .FlywayNamedParameterJdbcOperationsDependencyConfiguration ;
4649import org .springframework .boot .autoconfigure .jdbc .DataSourceAutoConfiguration ;
4750import org .springframework .boot .autoconfigure .jdbc .DataSourceProperties ;
4851import org .springframework .boot .autoconfigure .jdbc .JdbcOperationsDependsOnPostProcessor ;
5659import org .springframework .context .annotation .Bean ;
5760import org .springframework .context .annotation .Conditional ;
5861import org .springframework .context .annotation .Configuration ;
62+ import org .springframework .context .annotation .Import ;
5963import org .springframework .core .convert .TypeDescriptor ;
6064import org .springframework .core .convert .converter .GenericConverter ;
6165import org .springframework .core .io .ResourceLoader ;
9094@ ConditionalOnProperty (prefix = "spring.flyway" , name = "enabled" , matchIfMissing = true )
9195@ AutoConfigureAfter ({ DataSourceAutoConfiguration .class , JdbcTemplateAutoConfiguration .class ,
9296 HibernateJpaAutoConfiguration .class })
97+ @ Import ({ FlywayEntityManagerFactoryDependsOnPostProcessor .class , FlywayJdbcOperationsDependsOnPostProcessor .class ,
98+ FlywayNamedParameterJdbcOperationsDependencyConfiguration .class })
9399public class FlywayAutoConfiguration {
94100
95101 @ Bean
@@ -106,6 +112,9 @@ public FlywaySchemaManagementProvider flywayDefaultDdlModeProvider(ObjectProvide
106112 @ Configuration (proxyBeanMethods = false )
107113 @ ConditionalOnMissingBean (Flyway .class )
108114 @ EnableConfigurationProperties ({ DataSourceProperties .class , FlywayProperties .class })
115+ @ Import ({ FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor .class ,
116+ FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor .class ,
117+ FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor .class })
109118 public static class FlywayConfiguration {
110119
111120 @ Bean
@@ -257,91 +266,85 @@ public FlywayMigrationInitializer flywayInitializer(Flyway flyway,
257266 return new FlywayMigrationInitializer (flyway , migrationStrategy .getIfAvailable ());
258267 }
259268
260- /**
261- * Additional configuration to ensure that {@link EntityManagerFactory} beans
262- * depend on any {@link FlywayMigrationInitializer} beans.
263- */
264- @ Configuration (proxyBeanMethods = false )
265- @ ConditionalOnClass (LocalContainerEntityManagerFactoryBean .class )
266- @ ConditionalOnBean (AbstractEntityManagerFactoryBean .class )
267- protected static class FlywayInitializerJpaDependencyConfiguration
268- extends EntityManagerFactoryDependsOnPostProcessor {
269-
270- public FlywayInitializerJpaDependencyConfiguration () {
271- super (FlywayMigrationInitializer .class );
272- }
269+ }
270+
271+ /**
272+ * Post processor to ensure that {@link EntityManagerFactory} beans depend on any
273+ * {@link FlywayMigrationInitializer} beans.
274+ */
275+ @ ConditionalOnClass (LocalContainerEntityManagerFactoryBean .class )
276+ @ ConditionalOnBean (AbstractEntityManagerFactoryBean .class )
277+ static class FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor
278+ extends EntityManagerFactoryDependsOnPostProcessor {
273279
280+ FlywayMigrationInitializerEntityManagerFactoryDependsOnPostProcessor () {
281+ super (FlywayMigrationInitializer .class );
274282 }
275283
276- /**
277- * Additional configuration to ensure that {@link JdbcOperations} beans depend on
278- * any {@link FlywayMigrationInitializer} beans.
279- */
280- @ Configuration (proxyBeanMethods = false )
281- @ ConditionalOnClass (JdbcOperations .class )
282- @ ConditionalOnBean (JdbcOperations .class )
283- protected static class FlywayInitializerJdbcOperationsDependencyConfiguration
284- extends JdbcOperationsDependsOnPostProcessor {
285-
286- public FlywayInitializerJdbcOperationsDependencyConfiguration () {
287- super (FlywayMigrationInitializer .class );
288- }
284+ }
285+
286+ /**
287+ * Post processor to ensure that {@link JdbcOperations} beans depend on any
288+ * {@link FlywayMigrationInitializer} beans.
289+ */
290+ @ ConditionalOnClass (JdbcOperations .class )
291+ @ ConditionalOnBean (JdbcOperations .class )
292+ static class FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor
293+ extends JdbcOperationsDependsOnPostProcessor {
289294
295+ FlywayMigrationInitializerJdbcOperationsDependsOnPostProcessor () {
296+ super (FlywayMigrationInitializer .class );
290297 }
291298
292- /**
293- * Additional configuration to ensure that {@link NamedParameterJdbcOperations}
294- * beans depend on any {@link FlywayMigrationInitializer} beans.
295- */
296- @ Configuration (proxyBeanMethods = false )
297- @ ConditionalOnClass (NamedParameterJdbcOperations .class )
298- @ ConditionalOnBean (NamedParameterJdbcOperations .class )
299- protected static class FlywayInitializerNamedParameterJdbcOperationsDependencyConfiguration
300- extends NamedParameterJdbcOperationsDependsOnPostProcessor {
301-
302- public FlywayInitializerNamedParameterJdbcOperationsDependencyConfiguration () {
303- super (FlywayMigrationInitializer .class );
304- }
299+ }
305300
301+ /**
302+ * Post processor to ensure that {@link NamedParameterJdbcOperations} beans depend on
303+ * any {@link FlywayMigrationInitializer} beans.
304+ */
305+ @ ConditionalOnClass (NamedParameterJdbcOperations .class )
306+ @ ConditionalOnBean (NamedParameterJdbcOperations .class )
307+ static class FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor
308+ extends NamedParameterJdbcOperationsDependsOnPostProcessor {
309+
310+ FlywayMigrationInitializerNamedParameterJdbcOperationsDependsOnPostProcessor () {
311+ super (FlywayMigrationInitializer .class );
306312 }
307313
308314 }
309315
310316 /**
311- * Additional configuration to ensure that {@link EntityManagerFactory} beans depend
312- * on any {@link Flyway} beans.
317+ * Post processor to ensure that {@link EntityManagerFactory} beans depend on any
318+ * {@link Flyway} beans.
313319 */
314- @ Configuration (proxyBeanMethods = false )
315320 @ ConditionalOnClass (LocalContainerEntityManagerFactoryBean .class )
316321 @ ConditionalOnBean (AbstractEntityManagerFactoryBean .class )
317- protected static class FlywayJpaDependencyConfiguration extends EntityManagerFactoryDependsOnPostProcessor {
322+ static class FlywayEntityManagerFactoryDependsOnPostProcessor extends EntityManagerFactoryDependsOnPostProcessor {
318323
319- public FlywayJpaDependencyConfiguration () {
324+ FlywayEntityManagerFactoryDependsOnPostProcessor () {
320325 super (Flyway .class );
321326 }
322327
323328 }
324329
325330 /**
326- * Additional configuration to ensure that {@link JdbcOperations} beans depend on any
331+ * Post processor to ensure that {@link JdbcOperations} beans depend on any
327332 * {@link Flyway} beans.
328333 */
329- @ Configuration (proxyBeanMethods = false )
330334 @ ConditionalOnClass (JdbcOperations .class )
331335 @ ConditionalOnBean (JdbcOperations .class )
332- protected static class FlywayJdbcOperationsDependencyConfiguration extends JdbcOperationsDependsOnPostProcessor {
336+ static class FlywayJdbcOperationsDependsOnPostProcessor extends JdbcOperationsDependsOnPostProcessor {
333337
334- public FlywayJdbcOperationsDependencyConfiguration () {
338+ FlywayJdbcOperationsDependsOnPostProcessor () {
335339 super (Flyway .class );
336340 }
337341
338342 }
339343
340344 /**
341- * Additional configuration to ensure that {@link NamedParameterJdbcOperations} beans
342- * depend on any {@link Flyway} beans.
345+ * Post processor to ensure that {@link NamedParameterJdbcOperations} beans depend on
346+ * any {@link Flyway} beans.
343347 */
344- @ Configuration (proxyBeanMethods = false )
345348 @ ConditionalOnClass (NamedParameterJdbcOperations .class )
346349 @ ConditionalOnBean (NamedParameterJdbcOperations .class )
347350 protected static class FlywayNamedParameterJdbcOperationsDependencyConfiguration
0 commit comments