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